legolas_3 Geschrieben 2. März 2007 Geschrieben 2. März 2007 Hallo zusammen, ich arbeite mich gerade in das Thema "Socket-Programmierung" ein und habe vor für einen Intranet Webserver (Apache) einen Socket in PHP zu entwickeln. Und zwar soll der auf dem HTTP Port lauschen ob HTTP-Anfragen eingehen und wenn ja, Daten in ein Log-File auf einem Pfad des Servers speichern. Nur da stellt sich mir jetzt die Frage, wie binde ich das Script in den Webserver ein, damit jeder Request auf den Server abgehört wird? Ich könnte die PHP-Datei in jedes HTML bzw. PHP File includieren. Aber da bin ich denk ich auf dem falschen Dampfer, oder ??? Hoffe hier werde ich geholfen Viele Grüße, Christian
geloescht_JesterDay Geschrieben 2. März 2007 Geschrieben 2. März 2007 Nur da stellt sich mir jetzt die Frage, wie binde ich das Script in den Webserver ein, damit jeder Request auf den Server abgehört wird? Ich könnte die PHP-Datei in jedes HTML bzw. PHP File includieren. Aber da bin ich denk ich auf dem falschen Dampfer, oder ??? PHP wird nur dann ausgeführt, wenn es aufgerufen wird vom Server. Einen Server in PHP selbst kannst du also vergessen Mit dem Apache könntest du dir einen Virtuellen Server erstellen, und dann noch einen eigenen Handler. Also alle Anfragen auf den Port 80 (auf den der Apache dann hört) werden an Verzeichnis /srv/sockets/ weitergeleitet und für das Verzeichnis wird dein php-socket als Handler eingebunden. Apache's Handler Use - Apache HTTP Server Sollte gehen, aber nie probiert.
legolas_3 Geschrieben 2. März 2007 Autor Geschrieben 2. März 2007 Hey guter Tipp! Danke... Ich hab mir grad überlegt es würde doch auch so funktionieren: 1.) Ich programmier den PHP Server-Socket 2.) Setze PHP-Timeout auf unendlich 3.) Speicher Server-Socket in einem per .HTACCESS geschützen Bereich im /htdocs/ Verzeichnis 4.) Schreibe ein Script zum beenden des Sockets 5.) Das dann ebenfalls ins /htdocs/ Ich könnte das Server-Socket dann von einem entfernten Rechner aus starten und wieder beenden! Das würde doch funzen, oder ??? :confused:
Amstelchen Geschrieben 2. März 2007 Geschrieben 2. März 2007 dein ansatz ist lobenswert, aber weder stabil implementierbar, noch skalierbar, noch ressourcenschonend. IMHO erfindest du ausserdem das rad neu. setze auf eine bestehende servertechnologie auf, z.b. die von JesterDay vorgeschlagene lösung mittels apache(-modul) oder - falls zugelassen - einer anderen software - z.b. thttpd oder IIS mit einen ISAPI-filter. s'Amstel
Jaraz Geschrieben 2. März 2007 Geschrieben 2. März 2007 PHP wird nur dann ausgeführt, wenn es aufgerufen wird vom Server. Einen Server in PHP selbst kannst du also vergessen ; PHP hat auch einen Kommando Zeilen Interpreter. Einem Webserver in PHP zu schreiben ist also durchaus möglich. Auch ohne Apache. Gruß Jaraz
legolas_3 Geschrieben 2. März 2007 Autor Geschrieben 2. März 2007 dein ansatz ist lobenswert, aber weder stabil implementierbar, noch skalierbar, noch ressourcenschonend. IMHO erfindest du ausserdem das rad neu. setze auf eine bestehende servertechnologie auf, z.b. die von JesterDay vorgeschlagene lösung mittels apache(-modul) oder - falls zugelassen - einer anderen software - z.b. thttpd oder IIS mit einen ISAPI-filter. s'Amstel Das ist mir bewusst. Es soll auch nix produktives werden. Ich brauch nur nen Überblick darüber und es geht eher um Lerneffekte :-) Und da ich in PHP recht sicher bin und Java so gut wie gar nicht, hab ich mich halt für ersteres entschieden...
Jaraz Geschrieben 2. März 2007 Geschrieben 2. März 2007 Ich brauch nur nen Überblick darüber und es geht eher um Lerneffekte :-) Kannst dir das hier mal anschauen: eCodeBank.com - Emulating a Basic Web Server with Sockets in PHP Gruß Jaraz
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden