Re: php-cgi Port

From: Benjamin Thelen (CCGIS) <thelen(at)ccgis.de>
Date: Mon, 18 Aug 2003 19:02:41 +0200 (CEST)

> On 18.08.2003 17:00, Benjamin Thelen (CCGIS) wrote:
>
>>> On 15.08.2003 19:18, Benjamin Thelen (CCGIS) wrote:
>>>
>>>> Moin zusammen,
>>>
>>> Selber Moin, vor zwölf, echt und so munter, elend :-)
>>>
>>> [...]
>>>
>>>> Danach habe ich wie oben beschrieben, das php-binary eben nach
>>>> .../www/cgi-bin kopiert und es funktionierte auch.
>>>>
>>>> Mit dem php4-cgi Port geht das so aber nicht. Muss ich was anderes
>>>> machen oder ist meine Vorgehensweise doch richtig?
>>>>
>>>> Vielen Dank,
>>>> Benjamin
>>>>
>>>>
>>>> PS: Genau das gleiche Problem habe ich auf debian woody auch. Hier
>>>> gibt
>>>> es ein php4-cgi deb-Paket. Das habe ich nicht mit der oben
>>>> beschriebenen
>>>> Art und Weise ans laufen bekommen. Als Apache Modul, alles kein
>>>> Problem.
>>>> PHP läuft.
>>>
>>> Was steht denn in den /var/log/httpd-error.log und
>>> /var/log/httpd-suexec.log
>>> (je nach httpd.conf entsprechend anders)?
>>>
>>> So long,
>>> Jens
>>>
>>>
>>>
>>
>> Moin Jens,
>>
>> Wie vor zwölf?? War doch früher Abend!
>
> Tja, 'Moin' und mitten in der Nacht gelesen (ich) hat halt
> falschen Schluss gefolgert :-)
>
> Bitte immer die Liste CC'en!

Das war ein Versehen. Ich hätte mich wahrscheinlich recht lange gewundert,
wo meine Mail bleibt! :-)

>
>> Zu Deiner Frage:
>> Ich habe lediglich eine httpd-access.log und eine httpd-error.log?!
>> In der httpd-access.log steht nur, dass zugegriffen wurde, mehr nicht.
>>
>> Folgendes habe ich ausprobiert:
>>
>> 1. php-binary liegt im cgi-bin-Verzeichnis
>> (manuell kopiert von /usr/local/bin/ nach /usr/local/www/cgi-bin)
>
> Steht als erstes im PHP-Skript ein She-Bang für /usr/local/bin/php?
> Sollte in etwa so aussehen:
>
> #!/usr/local/bin/php

Es erscheint leider nachwievor die gleiche Fehlermeldung.

Mein PHP-Kollege meinte allerdings auch, dass das bei php nicht nötig
wäre. Es steht in keinem einzigen unserer Skripte.
Die Skripte funktionieren ja auch, wenn php4 als Apache-Modul installiert
ist und sie funkionieren auch auf dem FreeBSD 4.7 mit dem von mir
verbogenen mod_php4. Auf diesem Rechner läuft php4 definitiv als cgi, die
LoadModule Zeile in der httpd.conf ist auch auskommentiert.

>
>> httpd-error.log: kein Eintrag
>> Browser: "Parse error: parse error in /usr/local/www/cgi-bin-dist/php on
>> line 6930"
>
> Als was wird die Datei vom Browser erkannt?

Kann ich Dir so nicht sagen. Der Quelltext zeigt einfach nur folgendes an:
<br />
<b>Parse error</b>: parse error in <b>/usr/local/www/cgi-bin-dist/php</b>
on line <b>6930</b><br />

>
>> 2. php-binary liegt NICHT im cgi-bin-Verzeichnis
>> (sondern da wo es hininstalliert wurde: usr/local/bin)
>>
>> httpd-error.log: "script not found or unable to stat:
>> /usr/local/www/cgi-bin/php"
>> Browser: "The requested URL The requested URL
>> /cgi-bin/php/mapbender/welcome.php was not found on this server"
>>
>>
>> 3. Symbolischer Link auf /usr/bin/local/php
>> (War so eine Idee...:-()
>>
>> httpd-error.log: "Symbolic link not allowed: /usr/local/www/cgi-bin/php"
>>
>> Füge ich in der httpd.conf beim cgi-Verzeichnis ein FollowSymLinks
>> hinzu,
>> erhalte ich wieder die Fehlermeldung aus 1.
>>
>> Den Fehler aus 2. verstehe ich auch überhaupt nicht, da es natürlich
>> kein
>> "../cgi-bin/php/mapbender/" gibt. Es gibt "../data/mapbender/", da
>> liegen
>> die php-Skript.
>>
>
>> Ich habe auch noch mal das debian Package php4-cgi (äh, auf einem
>> debian-Rechner, natürlich) installiert. Interessanterweise befindet sich
>> nach der Installation ein php-binary im cgi-Verzeichnis. Zwar bekomme
>> ich
>> php-Skripte zum Download angeboten - was ich auch nicht verstehe - aber
>> das ist eine andere Baustelle.
>
> Der Apache weiss, dass das keine HTML-Dateien, sondern PHP-Skripte sind,
> und setzt den MIME-Type entsprechend. Dann weiss der Browser nix
> damit anzufangen und bietet das Speichern an.

Was ich nicht verstehe, ist dass so lange ich php als Apache Modul laufen
habe, beide Rechner, von denen ich hier gerade schreibe, php-Skripte
wunderbar ausführen und man diese auch im Browser angucken kann. Alles
funktioniert. Dann deinstalliere ich php4 (oder mod_php4) und installiere
php4-cgi und nix funktioniert mehr.
Im obigen Fall setzt doch dann offensichtlich der Webserver den MIME-Type
falsch (obwohl er ihn zuvor als php4 noch als Modul lief richtig setzte).
Das macht doch keinen Sinn?

Übrigens sind bei Rechner in der Lage php-Skripte lokal zu parsen! Also
sowas wie php -f file.php.

>
>> Ich schließe jedoch daraus und daraus, dass dass mit meinem
>> "umgebogenen"
>> mod_php4-Port bisher so funktionierte, dass sehr wohl ein php-binary im
>> cgi-Verzeichnis zu liegen hat. Richtig?
>
> Möglich, kommt auf Dein Skript an.

Muss ich passen. Verstehe ich nicht. Deine Aussage verstehe ich so, dass
es skriptabhängig ist?? Je nachdem wie ich das php-Skript schreibe muss
der "cgi-server" anders konfiguriert werden? Ich glaube, dann werde ich
zum Hirsch. :-)

Wie kann das denn so kompliziert sein mit dem dämlichen cgi? Das geht mir
einfach nicht ein. Installiere ich php4 als Apache-Modul funktioniert auf
beiden Rechner alles auf Anhieb.
Kann es denn sein, dass debian das anders handhabt und das php-binary gar
nicht unbedingt im cgi-Verzeichnis liegen muss? Aber irgendwie muss dem
Webserver das doch auch klar gemacht werden, woher er sein php-binary
bekommt...?

Gruß,
Benjamin

>
>> Wäre über jede weiter Hilfe sehr dankbar. Uns fällt hier nichts mehr ein
>> und ich schein irgendwie der einzige zu sein, der mit php-cgi Probleme
>> hat...
>
> Versuch's mal mit dem She-Bang.
>
> Jens
>
>
>

To Unsubscribe: send mail to majordomo.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 18 Aug 2003 - 19:07:36 CEST

search this site