Hi!
Den Webserver schreibe ich komplett in Java (1.4.2).
Ah.
Die Standardfunktionen funktionieren bereits, nur dass parsen von php files klappt nicht. Mittlerweile denke ich, dass das einlesen des QUERY_STRINGs oder der POST Daten in einem Script beim parsen mit php.exe überhaupt nicht geht. :(
Doch, Apache & Co. machen das ja auch irgendwie, und man gibt bei der CGI-Version ja nur den Pfad zur binary-File an, der werden dann die Daten übergeben, auf welche Weise auch immer, vermutlich über eine bidirektionale pipe. CGI ist ja standardisiert, das heißt das PHP im Prinzip mit jedem Webserver laufen müsste, der CGI unterstützt, und eben das musst Du mit Deinem Webserver hinbekommen.
Ich weiß jetzt allerdings nicht wie gut das mit Java geht. Die Übergabe von GET-Parametern passiert soweit ich das jetzt weiß wirklich über die Umgebungsvariablen, die man z.B. in PHP mit setenv() setzt, in Java kenne ich keine solche Funktion. Jedenfalls müsste PHP dann theoretisch diese Umegebunsvariable(QUEREY_STRING) automatisch analysieren und entsprechend den $_GET Array mit den Werten füllen. Vermutlich braucht PHP aber mehr als einen Wert um überhaupt was zu machen, ich würde schon alle Umgebungsvariablen setzen so wie
hier: http://hoohoo.ncsa.uiuc.edu/cgi/env.html
und hier: http://de3.php.net/manual/de/install.commandline.php#install.commandline.using-variables
beschrieben.
Ich denke dass es Sache des Servers ist den genauen Pfad des angeforderten Scriptes zusammenzusetzen(document-root + URL-Pfad), und soweit ich das weiß wird eben dieser absolute Pfad zum Script als Argument an den Interpreteraufruf angehängt, und nicht als Umgebungsvariable übermittelt.
Aber vielleicht solltest Du mal einen Blick in den Quelltext eines möglichst einfachen Webservers werfen, z.B. http://hoohoo.ncsa.uiuc.edu/docs/setup/Compilation.html#get_source bei mir bekomme ich das irgendwie gerade nicht entpackt, aber das sind nur 300 KB, da sollte man den Teil bzgl. CGI doch finden und dann siehst Du wie es geht, wenn auch vemtulich in einer anderen Sprache.
Grüße
Andreas