Servercommunity Foren-Übersicht Servercommunity
Das informative Forum für Fragen rund um Server
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Apache1.3 mit mod_php4 und php5 als CGI

 
Neues Thema eröffnen   Neue Antwort erstellen    Servercommunity Foren-Übersicht -> Webserver
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
cws



Anmeldedatum: 29.03.2005
Beiträge: 4

BeitragVerfasst am: Di März 29, 2005 15:09    Titel: Apache1.3 mit mod_php4 und php5 als CGI Antworten mit Zitat

Hallo!

Ich versuche hier seit einigen Tagen schon PHP4 und PHP5 gleichzeitig auf einem Apache1.3 zum Laufen zu bekommen. Dazu habe ich das mod_php4 (PHP-Version 4.3.10) per installiert und PHP5 aus den Sources als CGI-Version compiliert.

PHP5 habe ich auch, entsprechend mehrfacher Anleitungen im Internet, in ein anderes Verzeichnis installiert, als das PHP4 und auch eine andere php.ini wird verwendet. Das PHP5 scheint auch zu laufen, wenn ich es in der Konsole aufrufe, dann verarbeitet es alle Eingaben.

In der httpd.conf vom Apache1.3 habe ich nun folgende Zeilen eingetragen:

Code:
ScriptAlias /cgi-php5/ /usr/share/php5/bin/

<Directory "/usr/share/php5/bin">
         Options +ExecCGI
         Allow From All
 </Directory>

AddHandler php5-script .php5
Action php5-script /cgi-php5/php


Nach einem Neustart des Apachen läuft die PHP4-Verarbeitung einwandfrei. Eine Testdatei mit der Endung .php5 produziert aber immer eine 500 Fehlermeldung.

Ein Blick in die Logfiles bringt folgende Fehlermeldung:

error.log:
Code:
[Tue Mar 29 16:04:36 2005] [error] [client **********] Premature end of script headers: /usr/share/php5/bin/php


access.log:
Code:
******** - - [29/Mar/2005:16:05:43 +0200] "GET /info.php5 HTTP/1.1" 500 609


Ich hab echt keine Ahnung mehr, was ich noch machen soll.

Auf einem anderen Testsystem habe ich einen Apache2 laufen und es dort genauso gemacht (mod_php4 in Version 4.3.10 und PHP5 as CGI) und dort interpretiert er die Seiten gemäß den Endungen richtig und es kommt zu keinen Fehlermeldungen.

Das System mit den Problemen ist ein SuSE 9.0-Server. Das Action-Modul für den Apachen ist installiert (zumindest wird es in der conf geladen und die Datei ist auch am vorgesehenen Ort).

Ich bitte um schnelle Hilfe und Tipps, was ich noch ausprobieren kann. Ein Umstieg auf Apache2 kommt aber nicht in Frage, weil es dann zu erheblichen Problemen mit den Virtuellen Hosts und Confixx kommt. Den Schritt habe ich nämlich schon probiert und dann ging gar nix mehr Wink

Vielen Dank für eine schnelle Hilfe!

Viele Grüße

cws
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Monty
Dunkler Gebieter


Anmeldedatum: 21.06.2003
Beiträge: 670
Wohnort: Asperg

BeitragVerfasst am: Di März 29, 2005 15:56    Titel: Re: Apache1.3 mit mod_php4 und php5 als CGI Antworten mit Zitat

Hi!
Erstmal ein Lob für die ausführliche Problembeschreibung. Das hat erstmal Hand und Fuss Wink.

cws hat Folgendes geschrieben:

Ein Blick in die Logfiles bringt folgende Fehlermeldung:

error.log:
Code:
[Tue Mar 29 16:04:36 2005] [error] [client **********] Premature end of script headers: /usr/share/php5/bin/php


Und da liegt schon der Hund begraben: Dein php-Script liefert keine Script Header. Ein CGI-Script hat die Verpflichtung, den HTTP-Response Header selber zu liefern, der sieht so ca. so aus:
Code:
HTTP/1.0 200 OK
Content-type: text/html


Du hast da offensichtlich die CLI-Version für PHP5 compiliert, nicht die CGI-Version. Der Unterschied ist, dass die CGI-Version den HTTP-Header automatisch mitschickt, die Commandline-Version braucht das ja nicht.

Schau mal bei http://www.php.net/manual/de/features.commandline.php nach:

Internet hat Folgendes geschrieben:
Beachtenswerte Unterschiede des CLI SAPI verglichen mit anderen SAPIs:

  • Anders als beim CGI SAPI werden keine Header ausgegeben.

    Obwohl das CGI SAPI einen Weg bietet, HTTP-Header zu unterdrücken, gibt es keine gleichwertige Option, sie im CLI SAPI anzuzeigen.

    CLI wird standardmäßig im stillen Modus gestartet, dennoch gibt es die Optionen -q und --no-header aus Kompatibilitätsgründen noch, so dass Sie auch ältere CGI-Skripte noch benutzen können.

    Es verändert das Arbeitsverzeichnis nicht zu dem des Skriptes. (Die Optionen -C und --no-chdir wurden aus Kompatibilitätsgründen beibehalten.)

    Fehlermeldungen in Plaintext (keine HTML-Formatierung).


Auch sonst ist diese URL ein Quell der Inspiration Wink.

Monty Monty
_________________
Gewalt ist die letzte Zuflucht der Unfähigen - Salvor Hardin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
cws



Anmeldedatum: 29.03.2005
Beiträge: 4

BeitragVerfasst am: Di März 29, 2005 21:58    Titel: Antworten mit Zitat

Hallo Monty,

erst mal vielen Dank für die schnelle Hilfe.

Diese Zeilen habe ich auch schon allzu oft gelesen und habe auch schon mehrfach den Rest vom offiziellen PHP-Manual durchgelesen.

Bin jetzt doch nochmal hergegangen und habe PHP5 mal explizit OHNE CLI und OHNE PEAR kompiliert und installiert. Aber immer noch der gleiche Fehler, der Browser gibt immer noch einen Fehler 500 zurück und im error_log des Apachen steht immer noch "Premature end of script headers".

Habe mir auch nochmal explizit angeschaut, was mein Test-Skript an die Konsole ausgibt und das ist ganz normaler HTML-Code. Habe den auch mal in ne normale HTML-Datei überführt und die kann (logischer Weise) angezeigt werden. In dem Skript führe ich einfach die phpinfo()-Funktion aus.

Ich möchte aber nicht ganz ausschließen, dass ich bei der Kompilierung einen Fehler gemacht habe, deswegen hier mal mein configure-Aufruf:

Code:
'./configure' '--with-xml' '--with-dom' '--with-mysql' '--with-zlib' '--with-bzip2' '--with-gd' '--enable-shared-pdflib' '--enable-force-cgi-redirect' '--with-gettext' '--enable-mailparse' '--with-curl' '--enable-exif' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--with-freetype-dir=/usr/local/' '--enable-gd-native-ttf' '--enable-versioning' '--prefix=/usr/share/php5' '--with-config-file=/etc/php5.ini' '--with-pear=/usr/share/php5/pear' '--enable-ftp' '--enable-discard-path' '--enable-fastcgi' '--with-ldap' '--with-pgsql=/usr'


Die komplette Ausgabe von der PHP5-Installation könnt Ihr Euch unter http://www.cwsnet.de/info_php5.html mal anschauen. Hier hab ich, wie oben beschrieben einfach mal die Ausgabe des Skriptes über die Commandokonsole in eine HTML-Datei umgeleitet.

Zum Vergleich hier mal noch die phpinfo()-Ausgabe von meiner PHP4-Installation: http://www.cwsnet.de/info.php

Wäre schön weitere Hilfestellungen zu bekommen!

Vielen Dank schon mal im Voraus!

Viele Grüße

cws
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Monty
Dunkler Gebieter


Anmeldedatum: 21.06.2003
Beiträge: 670
Wohnort: Asperg

BeitragVerfasst am: Mi März 30, 2005 11:28    Titel: Antworten mit Zitat

cws hat Folgendes geschrieben:
Habe mir auch nochmal explizit angeschaut, was mein Test-Skript an die Konsole ausgibt und das ist ganz normaler HTML-Code.

Das ist falsch, denn da muss vorne dran der HTTP-Header sein (oder ist der dran?). Mit dem dran ists nämlich kein valides HTML, das fängt mit
Code:
<html>
an

Monty Monty
_________________
Gewalt ist die letzte Zuflucht der Unfähigen - Salvor Hardin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Boum



Anmeldedatum: 29.07.2003
Beiträge: 1929
Wohnort: Karlsruhe

BeitragVerfasst am: Mi März 30, 2005 13:50    Titel: Antworten mit Zitat

cws hat Folgendes geschrieben:
Bin jetzt doch nochmal hergegangen und habe PHP5 mal explizit OHNE CLI und OHNE PEAR kompiliert und installiert.

Zusatzfrage: wenn Du jetzt ohne CLI unterwegs bist, wie sieht dann die Apache-Conf aus? Ich befürchte, dass der Apache immer noch das php in /usr/share/php5/bin/ bemüht... oder?
_________________
Planung ist das Ersetzen des Zufalls durch Irrtum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
cws



Anmeldedatum: 29.03.2005
Beiträge: 4

BeitragVerfasst am: Mi März 30, 2005 22:54    Titel: Antworten mit Zitat

@monty
ähm, wie ich schon geschrieben habe: die HTML-Datei mit dem phpinfo für meine PHP5-Installation wurde direkt aus dem PHP-Consolenaufruf generiert. Und die fängt sogar, ganz XHTML-konform, mit dem DOCTYPE an und es folgt gleich danach das öffnende html-Tag. Somit ist das reinster HTML-Code, wie man ihn sich vorstellen kann (bringt sogar bei keinem HTML-Tester Fehler!!)

@boum
Das is ja klar! Wenn ich weiterhin die kompilierten Daten nach /usr/share/php5/ beim make install kopiere, dann ruft er auch dort das bin/php auf. Ist aber Jacke wie Hose, auch wenn ich CLI explizit abschalte funzt es nicht!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Boum



Anmeldedatum: 29.07.2003
Beiträge: 1929
Wohnort: Karlsruhe

BeitragVerfasst am: Do März 31, 2005 07:45    Titel: Antworten mit Zitat

cws hat Folgendes geschrieben:
Das is ja klar! Wenn ich weiterhin die kompilierten Daten nach /usr/share/php5/ beim make install kopiere, dann ruft er auch dort das bin/php auf. Ist aber Jacke wie Hose, auch wenn ich CLI explizit abschalte funzt es nicht!!

Okok... aber, was kommt dann für ein Fehler statt
Code:

[Tue Mar 29 16:04:36 2005] [error] [client **********] Premature end of script headers: /usr/share/php5/bin/php

Question
_________________
Planung ist das Ersetzen des Zufalls durch Irrtum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
cws



Anmeldedatum: 29.03.2005
Beiträge: 4

BeitragVerfasst am: Do März 31, 2005 10:53    Titel: Antworten mit Zitat

Immer noch der gleiche Fehler. Daher denke ich nicht, dass es zwangsläufig an der PHP5-Kompilierung liegt, sondern evt. auch an dem mod_php4 oder dem Apache1.3

Wie schon geschrieben: Ich hab die ganze Sache mal unter einem Apache2 installiert (mod_php4) und kompiliert (PHP5 als CGI), die gleichen Einträge in die httpd.conf gemacht und dort funzt es ohne Probleme.

Ich hab echt schon sau viele Foren durchsucht, Howtos gelesen oder Tipps ausprobiert. Ich finde wir sollten mal zusammen soweit gehen, dass wir das Problem echt lösen Wink Wäre dann so das erste mal, wo so was in der Community beschrieben wird Wink

Danke auf jeden Fall für jede Hilfe!!! Vielleicht haben aber schon ein paar Leute Erfahrungen in der Richtung gemacht und schreiben die einfach mal. Einfach ein Lösungsvorschlag, wie Ihr PHP4 (als SAPI) und PHP5 (als CGI) auf nem Apache1.3 zum Laufen gebracht habt. Vielleicht hab ich auch was übersehen Wink

Vielen Dank für Hilfe, Links zu anderen Howtos usw.

Viele Grüße

cws
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Boum



Anmeldedatum: 29.07.2003
Beiträge: 1929
Wohnort: Karlsruhe

BeitragVerfasst am: Do März 31, 2005 11:04    Titel: Antworten mit Zitat

cws hat Folgendes geschrieben:
Immer noch der gleiche Fehler.

Dachte ich mir: das heisst, dass Du zwar neu kompiliert hast, dass aber nach wie vor der CLI aufgerufen wird!

Was sagt denn ein
Code:
ls -l /usr/share/php5/bin/php


Kannst Du das php von der Shell aus ohne Fehler aufrufen?
_________________
Planung ist das Ersetzen des Zufalls durch Irrtum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Servercommunity Foren-Übersicht -> Webserver Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de