PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Internal Server Error(Premature end of script headers)



IRoot
21.11.07, 21:46
Also, 1. mal vor weg. Das Problem ist Komplizierter als manche von euch denken werden. Ich habe schon in mehreren anderen Foren gefragt und niemand konnte mich auf die richtige fährte bringen. Wenn ihr es dennoch schaffen solltet wäre ich euch echt dankbar.

Zu meinem Problem:
Bei manchen teilen von fertigen webscripten kommt es zu einem Internal Server Error. Danach ist im Apache log ein: Premature end of script headers zu finden.

Bei folgenden Scripts ist dies Bemerkbar:
phpbb: die startseite vom Admin-Index in der z.b die aktuellen Benutzer usw. aufgelistet sind. Wenn ich diese Seite aufrufe bekomme ich einen Internal Server Error mit einem Premature end of script headers in der apache error.log. Wobei die anderen seiten vom Admin-Index perfekt funktionieren.
Dateirechte: 755

wordpress: Beim editieren eines schon veröffentlichten blogeintrages. Bei einem noch nicht veröffentlichten Beitrag klappt alles wunderbar. Wieder das selbe ein Internal Server Error mit einem Premature end of script headers im error.log
Dateirechte:755

Es könnte noch bei weiteren scripts probleme geben, aber dies sind die scripts die ich getestet habe.


Zu meinem Sytem:
Debian Etch, ich verwende php5-cgi mit fcgi und einenem php_wrapper für jeden einzelnen vhost, apache läuft mit suexec. Wobei soviel ich weiss hatte dieses Problem auch schon als ich apache mit einem ganz normalen mod_php betrieben habe. Ich weiss nicht mehr ganz genau ob es dazumals einen Internal Server Error gab, soviel ich weiss hatten die Besagten scripts nur Ewigkeiten zum laden.


Ich hoffe irgendjemand nimmt sich die Zeit und hilft mir bei meinem Problem.

Wenn ihr noch irgendwelchen Informationen braucht einfah fragen :)

Gruss IRoot

MiGo
21.11.07, 22:42
Wieder das selbe ein Internal Server Error mit einem Premature end of script headers im error.log
Kannst einfach die Fehlermeldung (plus ein paar Zeilen vorher) posten, statt das ganze in Prosa zu beschreiben? Das würde wahrscheinlich weiterhelfen :)

IRoot
21.11.07, 22:51
Apache Error-Log:

[Mon Nov 19 20:34:59 2007] [error] [client xxx.xx.xx.xxx] Premature end of script headers: edit.php, referer: http://wp-demo.xxxxx.de/wp-admin/post.php?action=edit&post=1
[Mon Nov 19 20:35:01 2007] [notice] mod_fcgid: call /var/www/ftp/users/wp-demo/wp-cron.php with wrapper /var/www/php_wrappers/wp-demo/wp-demo.xxxxxxx.de
[Mon Nov 19 20:35:01 2007] [notice] mod_fcgid: server /var/www/ftp/users/wp-demo/wp-cron.php(19748) started
[Mon Nov 19 20:35:04 2007] [notice] mod_fcgid: process 19744 going graceful shutdown, sending SIGTERM
[Mon Nov 19 20:35:10 2007] [notice] mod_fcgid: process /var/www/ftp/users/wp-demo/index.php(19744) exit(communication error), terminated by calling exit(), return code: 0
[Mon Nov 19 20:35:21 2007] [error] [client xxxx.5.xxx.201] Premature end of script headers: wp-cron.php
[Mon Nov 19 20:35:22 2007] [notice] mod_fcgid: process 19748 going graceful shutdown, sending SIGTERM
[Mon Nov 19 20:35:22 2007] [notice] mod_fcgid: call /var/www/ftp/users/wp-demo/index.php with wrapper /var/www/php_wrappers/wp-demo/wp-demo.xxxxx.de
[Mon Nov 19 20:35:22 2007] [notice] mod_fcgid: server /var/www/ftp/users/wp-demo/index.php(19749) started
[Mon Nov 19 20:35:28 2007] [warn] mod_fcgid: process 19748 graceful shutdown timeouted, sending SIGKILL
[Mon Nov 19 20:35:34 2007] [notice] mod_fcgid: process /var/www/ftp/users/wp-demo/index.php(19748) exit(communication error), get stop signal 9

Das Datum stimmt nich ganz, da ich den Log schon vor ein paar Tagen gespeichert habe damit ich ihn nicht immer neu pasten muss.

Gruss IRoot

BedriddenTech
22.11.07, 02:12
Soweit ich weiß, muß bei CGI-Anwendungen das Skript den Content-Type explizit übergeben, sprich irgendwo müßte ein »print "Content-Type: Text/HTML\r\n\r\n";« stehen. Bei Apache-Modulen ist mir das aber nie aufgefallen. Kurzer Sinn: Probier mal, obs klappt, wenn du PHP nicht über die CGI-Schnittstelle ausführst. Wenn es daran liegt, können wir uns immer noch Gedanken machen, wie wir das Problem dann für CGI/FCGI lösen. :)

IRoot
22.11.07, 22:38
Ich habe: print "Content-Type: Text/HTML\r\n\r\n";« noch in den php Wrapper gemacht, dann geht gar nicht's mehr alles nur noch Error 500.
Das andere müsste ich mal noch ausprobieren, aber früher(als ich noch apache mit einem normalen mod_php betrieben habe) hatten die besagten Scripte einfach ewigkeiten zum laden, gab aber keinen Error 500. :)

Hoffe ich bekomme das noch Hin :)

Gruss IRoot

marce
22.11.07, 22:40
Den She-Bang hast Du drin?

IRoot
23.11.07, 12:49
Ja, habe ich ;)

IRoot
23.11.07, 16:55
UPDATE:
Also, ich habe jetzt mal wieder ganz normal auf ModPhp umgestellt. Jetzt bekomme ich keine Internal Server Errors mehr, aber die Besagten seiten die vorher einen Internal Server Error zurückgaben haben sehr lange Ladezeiten.

Ich hoffe echt das mir jemand helfen kann.

Gruss IRoot

marce
23.11.07, 17:13
Dazu müssten wir wohl nun mehr ein bisschen über das System wissen... Load, IO-Wait, Speicher, Apache-Konfiguration, MySQL-Anbindung und Konfiguration, ...

IRoot
23.11.07, 17:55
Ok, zu meinem System:

RAM: 512 MB
CPU: 1,4 GHZ

System: Debian Etch
MYSQL: Version 5
PHP: Version 5

Load:
17:55:57 up 136 days, 2:51, 1 user, load average: 0.01, 0.05, 0.02

Wenn du noch mehr Details wissen möchtest einfach sagen :)

Gruss IRoot

IRoot
25.11.07, 00:25
niemand? :( :(

3qualizer
25.11.07, 02:41
Die Fehlermeldung (Internal Server Error (Premature end of script headers)) kenn ich in Verbindung mit suexec. Das ist ein wenig penibel was z.B. Dateiberechtigungen angeht (die Dateien dürfen nicht von anderen Usern schreibbar sein etc.).
Es gibt normalerweise auch ein separates suexec-Log (evtl. /var/log/apache/suexec) in dem steht warum das Skript nicht ausgeführt wurde.

IRoot
25.11.07, 11:00
Ja, ich denke das dass mit dem Internal Server Error ist von suexec, dies passiert aber nur bei Scripten die mit dem normalen mod_php mod und ohne suexec extrem lange ladezeiten haben, etw 15 sekuden. Ich weiss nicht ob de eine mit dem anderen vlt. etwas damit zu tun haben könnte :/

Gruss

IRoot

IRoot
25.11.07, 20:42
keiner :(:(

mEDI
13.12.07, 05:45
hi IRoot,

google mal nach (fastcgi IPCConnectTimeout IPCCommTimeout)

und zu deinen langen ladezeiten die das problem wohl auslösen.
hat ein dummy script was kein mysql connecten will auch die probleme?
wenn nicht
versuche mal mysql nicht via tcp zu connecten sondern via dem localen socket path

grep socket /etc/mysql/my.cnf

das is dann anstelle der ip z.b.
:/var/run/mysqld/mysqld.sock

mit dem : am anfang

wenn das nix bringt könnten noch sinlose dns abfragen bzw. eine kaputte dns umgebung der auslöser sein

bzw. startet php manuel gestartet gleich durch?

mEDI