![]() |
![]() |
|
![]() |
![]() |
|
Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Master
![]() Registriert seit: 10.10.2002
Beiträge: 711
|
![]() Hi!
Ich habe auf einem Debian System folgendes Problem. Im Apache Error Log taucht gelegentlich folgender Fehler auf. Allowed memory size of 31457280 bytes exhausted (tried to allocate 12734390 bytes) Prinzipiell ist das ja nicht ungewöhnlich. Ein (fehlerhaftes) Script übersteigt das PHP Memory Limit und wird daher abgebrochen. Was mir _hier_ aber fehlt ist der Scriptname. Auf allen anderen Systemen wird normalerweise in der Fehlermeldung der Scriptname angegeben ([...](tried to allocate 12734390 bytes in blafasel.php). Die Frage ist, wie/wo ist diese Ausgabe zu de/aktivieren? Oder ist das ein bekannter Bug in der PHP Version? PHP 4.3.10-16 php.ini error_reporting = E_ALL & ~E_NOTICE display_errors = On log_errors = On |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 05.01.2000
Beiträge: 3.812
|
![]() Eine Zeile oberhalb solltest du die Datei sehen die den Fehler produziert.
Logformat richtig angegeben im Vhost? Sloter |
![]() |
![]() |
![]() |
#3 |
Master
![]() Registriert seit: 10.10.2002
Beiträge: 711
|
![]() Leider nein. Der Fehler ist im error.log nicht im access.log. In der Zeile darüber steht einfach nur die letzte Fehlermeldung vom Apache.
Spannenderweise kann ich den Fehler sogar reproduzieren (mit einer einfachen Endlosschleife). Dabei wird ein Eintrag im error.log erzeugt, aber gar kein Eintrag im access.log. Ich hab mir jetzt sogar schon die PHP Sourcen angeschaut. Tatsächlich gibt es da ein if-then-else Konstrukt, daß die Fehlermeldung entweder mit oder ohne Filenamen ausgibt. Allerdings sind meine C Kenntnisse zu bescheiden, um herauszufinden was genau dabei abgefragt wird. |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|