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 Zitieren
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. Zitieren
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: Zitieren
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 Zitieren
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 Zitieren
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... Zitieren
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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.