PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache hängt sich unvermittelbar auf


Zudecke
30.08.2004, 18:03:49
Servus,

ich habe ein großes, großes, großes Problem und mir sind jetzt noch zwei Alternativen eingefallen. Erstens, zum Fenster rausspringen, zweitens, hier fragen:

Ich habe eine Funktion, mit der ich einen Verzeichnisbaum auslesen lasse und diesen dann auf der Seite darstelle. Bis ich auf die PHP-Version 4.3.7 upgedatet habe, hat alles einwandfrei funktioniert. Jetzt macht er es nur noch bis zu einer bestimmten Anzahl von Ordnern und Dateien. Wenn zu viele sind, hängt sich Apache auf und nichts geht mehr. Ich muss dann erst im Task-Manager Apache beenden und neu starten, damit ich weiter murksen kann. Meine Apache-Version ist 1.3.23.

Kann mir einer sagen, was bei mir nicht stimmt (ausser vielleicht dem Oberstübchen, haha)?

Gruß

c4
31.08.2004, 08:27:51
Was sagen denn die ErrorLogs vom Apachen?

Zudecke
31.08.2004, 10:12:52
Oweh,

meine access.log hatte 15MB, die error.log 177MB. Ich hab 2mal vergeblich versucht die zu öffnen. Ich hab jetzt die gelöscht und neue log-Dateien gemacht. Beim Ausführen meiner Seite hat er nur was in die access.log geschrieben:

127.0.0.1 - - [31/Aug/2004:10:08:01 +0200] "GET /shop_test/style.css HTTP/1.1" 304 -
127.0.0.1 - - [31/Aug/2004:10:08:02 +0200] "GET /shop_test/bilder/hintergr.gif HTTP/1.1" 304 -
127.0.0.1 - - [31/Aug/2004:10:08:02 +0200] "GET /shop_test/bilder/kraeuterladen.gif HTTP/1.1" 304 -
127.0.0.1 - - [31/Aug/2004:10:08:03 +0200] "GET /shop_test/bilder/bluete_geschl.gif HTTP/1.1" 304 -
127.0.0.1 - - [31/Aug/2004:10:08:03 +0200] "GET /shop_test/bilder/white.gif HTTP/1.1" 304 -

Zudecke
31.08.2004, 10:37:45

c4
31.08.2004, 11:41:34
hm... ähm... ja... Also ohne Fehlermeldung steht man recht blöd da.

Vielleicht hilft ja eine Neuinstallation des Servers oder von PHP. Oder eins von beiden ist bugbehaftet?!

Sorry, nix weiß nicht.

sniechzial
31.08.2004, 11:49:42
Hi,

wenn der Auszug deine gesammte access.log ist, stimmt was nicht. Da fehlt die index.php / index.html. Hast du sicher das Script ausgeführt, das den Absturz verursacht hat?

Mal mit error_reporting(E_ALL) versucht? Oder kommt garkeine Ausgabe zum Client?

btw:
Apache 2.0.50 is the best available version
Apache 1.3.31 is also available
PHP Version 4.3.8

Steht zwar nichts konkretes im ChangeLog, aber es wurde was an der behandlung der "memory_limit" Option gewurschtelt.

Bye,
simon

Zudecke
31.08.2004, 13:17:22
Hi,

ja, das ist der gesamte Auszug aus der access.log und ich hab die index.php ausgeführt, in der das betreffende Script includiert ist.

Es kommt eine Ausgabe zum Client, aber er hängt sich mittendrin auf. Wenn ich im Browser auf Abbrechen klicke erscheint das, was er bisher ausgeführt hat.
Bei error_reporting(E_ALL) gibt er mir 2047 aus.

Es kommt aber nur drauf an, wie umfangreich der Verzeichnisbaum ist. Entferne ich ein paar Ordner, läuft alles wie gewohnt.

Was ist das ?
aber es wurde was an der behandlung der "memory_limit" Option gewurschtelt.

Gruß

c4
31.08.2004, 13:20:55
Du sollst doch vor das error_reporting() kein echo schreiben. Weg damit!

Zudecke
31.08.2004, 13:25:17
Eh, wie soll ich denn das einsetzen?

c4
31.08.2004, 14:08:02
Einfach hinschreiben und gut ist. Ab sofort zeigt Dir PHP in diesem Skript alle Fehler und zusätzlich auch Warnungen an. Sollten bei Deinem Skript keine Ausgaben hinzukommen, liegt das nicht an einer eventuellen Fehlerhaftigkeit der Funktion, sondern daran, dass keine Fehler oder Warnungen im Regierungsbezirk von PHP aufgetreten sind.

Zudecke
31.08.2004, 14:10:36
Aja,

dann liegen bei mir keine Fehler oder Warnungen im Regierungsbezirk von PHP vor.

Und was nun?

Zudecke
31.08.2004, 14:32:08
Seit wann ist das so, dass man Variablen explizit setzen muss??

c4
31.08.2004, 14:38:17
Original geschrieben von Zudecke
Seit wann ist das so, dass man Variablen explizit setzen muss?? Man muss nicht, es ist bloß schöner und sicherer.

Das kleine Skriptchen zeigt es auch: <?php
$a=0;
$a++;

$b++;

echo "A: $a<br>B: $b";
?> Hast Du bei error_reporting() die Hinweise inbegriffen, dann wirst Du bei $b++ eine Meldung erhalten.

Zudecke
31.08.2004, 15:39:12
Hm.