Thomas: 500 HTTP Error bei Ausführung von PHP Script

Hallo alle zusammen!

Ich habe folgendes Problem. Seit der der neuen PHP Installation von 4.3.2 auf 4.3.10 wird bei der Ausführung eines php Scriptes ein 500 HTTP Error Status Code (Interner Serverfehler) erzeugt, der nicht erklärbar ist. Viele Versuche schlugen fehl den Fehler zu beheben. Ich habe den Script auf einem anderen Webserver, bei einem Freund gestestet bei dem auch PHP 4.3.10 installiert ist, dort läuft der PHP Script fehlerfrei, die Ausführung dauert jedoch recht lang. Also kann man ja einen Fehler im Script schonmal ausschließen. Desweiteren überprüfte ich sämtlich Einstellungen in der php.ini, dies brachte mich jedoch auch nicht weiter. Ich habe sogar die Einstellungen meiner php.ini bei dem Webserver meines Freundes getestet, der Script lief ebenfalls fehlerfrei. Weiß nicht was ich tun muss, um den Fehler zu beheben. Wer kann mir weiterhelfen?

Beim Ausführen des Scriptes wird folgender Fehler in die error.log geschrieben:

[Tue Aug 30 23:09:40 2005] [error] [client 82.82.240.213] Premature end of
script headers: /www/test/xxx/index.php

MFG
Thomas

  1. Hi Thomas,

    [...]
    Beim Ausführen des Scriptes wird folgender Fehler in die error.log geschrieben:

    [Tue Aug 30 23:09:40 2005] [error] [client 82.82.240.213] Premature end of
    script headers: /www/test/xxx/index.php

    vielleicht willst du irgendwo im script header ausgeben (header()), und zwar nach einer ausgabe?
    sobald etwas ausgegeben wird (echo, print, oä oder auch außerhalb von <?php ?>), werden die header gesendet. wenn du eigene senden willst, musst du das davor machen.

    es gibt in php.ini eine möglichkeit (translate yourself please):
    ; Output buffering allows you to send header lines (including cookies) even
    ; after you send body content, at the price of slowing PHP's output layer a
    ; bit.  You can enable output buffering during runtime by calling the output
    ; buffering functions.  You can also enable output buffering for all files by
    ; setting this directive to On.  If you wish to limit the size of the buffer
    ; to a certain size - you can use a maximum number of bytes instead of 'On', as
    ; a value for this directive (e.g., output_buffering=4096).

    Gruß, Marian

  2. echo $begrüßung;

    Beim Ausführen des Scriptes wird folgender Fehler in die error.log geschrieben:

    [Tue Aug 30 23:09:40 2005] [error] [client 82.82.240.213] Premature end of
    script headers: /www/test/xxx/index.php

    Um welchen Webserver handelt es sich denn?
    Wie ist PHP dort eingebunden? Ich tippe auf CGI und darauf, dass dieses CGI-PHP einfach kein ordentliches Ergebnis-Dokument zurückliefert.

    Füge

    die('irgendein String, aber kein Integerwert');

    in dein Script ein. Erst am Anfang, dann immer weiter hach hinten verlagern. Damit solltest du den Teil finden, der für den Fehler zuständig ist. error_reporting auf E_ALL stellen hilft eventuell auch noch. display_errors steht hoffentlich auf On.

    Du sagst, dass das Script sehr lange läuft. Stimmt diese Zeit mit dem Wert von max_execution_time überein?

    Wenn IIS[*] + CGI-PHP: Gibt es ein Fehlermeldungsfenster auf der Konsole, also nicht über Remote Desktop, über eine nicht vorhandene oder eine fehlermeldende Extension?

    echo "$verabschiedung $name";

    [*] Gilt vielleicht auch für andere Server.