Erstellen Sie einen webserver in PHP (ohne Apache)

Ich habe gerade versucht diesen code:

<?php
set_time_limit(0);

$address = '176.9.117.136';
$port = 9000;

$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Could not bind to address');

while(1)
{
    socket_listen($sock);
    $client = socket_accept($sock);

    $input = socket_read($client, 1024);
    echo $input;

    $output = 'URL: http://ip-of-my-server:9000/
HTTP/1.1 200 OK
Date: Tue, 10 Jul 2012 16:58:23 GMT
Server: TestServer/1.0.0 (PHPServ)
Last-Modified: Fri, 06 Jul 2012 14:29:58 GMT
ETag: "13c008e-1b9-4c42a193de580"
Accept-Ranges: bytes
Content-Length: 441
Vary: Accept-Encoding
Content-Type: text/html

';
    socket_write($client, $output);

    socket_close($client);
}

socket_close($sock);
?>

Aber es gibt ein problem. Statt mit dem Inhalt von $output als der Header, den Apache-Webserver gibt seinen eigenen Header...

Ich weiß nicht, warum, weil ich das Skript ausführen, das über diesen Befehl: php webserv.php.

Jedoch es praktisch funktioniert, denn wenn ich das laden der Seite http://ip-of-my-server:9000/ aus meinem browser, zeigt er mir die gesendeten Header vom client auf den server, und gibt den Inhalt zurück, von $output an den client (browser).

Ich möchte mein eigener webserver nur PHP, wenn es möglich ist. Ich möchte nur wissen, wie es ohne Apache, so kann ich die Verwaltung meiner eigenen HTTP-Header.

Nur für den Fall, Sie waren sich nicht bewusst, PHP5.4 Schiffe mit einem eingebauten web-server, so dass Sie nicht haben, das zu tun diese Art der Sache ...
Dies scheint, wie das Rad neu erfinden. Ich versichere Ihnen, es gibt viele, viele Räder dort.
rdlowrey: ich weiß, dass, ja. Wug: Es ist einfach zu lernen... ich würde es nie verwenden es als Produktions-webserver. Ich will einfach nur, um meine eigene zu wissen, wie es funktioniert von A bis Z.
Sie haben eine Instanz von apache auf der selben Maschine? Vielleicht möchten Sie versuchen, deaktivieren Sie Sie und versuchen Sie es erneut...
Es ist Nanoweb und Birnen HTTP_Server für Referenz.

InformationsquelleAutor Yoone | 2012-07-10

Schreibe einen Kommentar