[Gelöst]
Ich führe ein PHP-Skript (mit einigen Includes) auf localhost, das vor dem Ende abstürzt.
Fehlerbericht ist aktiviert. Opera, Safari und Firefox geben einen leeren Bildschirm zurück. Aber Chrome kehrt zurück:
Die Webseite konnte nicht geladen werden, da der Server keine Daten gesendet hat. Error Code: ERR_EMPTY_RESPONSE
Apache logs gibt zurück:
[So Dec 15 19:29:23 2013] [Hinweis] Kind Pid 34267 Ausgang Signal Segmentierungsfehler (11)
Benutzte PHP 5.5.6, als ich das Problem zum ersten Mal sah Nach dem Downgrade auf PHP 5.4.21 besteht das Problem weiterhin.
Das Problem liegt nicht im Skript. Das zufällige Auskommentieren von ein paar 50 Zeilen Code löst das Problem. Ich frage mich, ob mein Skript für die Ausführung zu lang sein könnte.
Hat jemand irgendwelche Vorschläge, wie ich dieses Problem lösen kann?
UPDATE:
Das Problem tritt nicht nur auf dem localhost auf, sondern auch auf meinem Webserver, der auf CentOs 6.4 und PHP 5.3.3 läuft und den gleichen Fehler auf Apache gibt.
[So Dec 15 23:15:10 2013] [Hinweis] Kind Pid 18409 Ausgang Signal Segmentierungsfehler (11)
UPDATE2:
Das Ausführen von PHP von der Befehlszeile gibt:
$ php index.php Schwerwiegender Fehler: Aufruf zu undefinierter Funktion mcrypt_create_iv () in der Encrypt.class.php in Zeile 135
Nach dem Platzieren eines Kommentars vor Zeile 135 in Encrypt.class.php
$ php index.php
Segmentierungsfehler: 11
UPDATE3: (Lösung)
Nachdem ich den Index auf der Kommandozeile mit strace (strace php index.php) ausgeführt habe, habe ich das Problem bei einer der Abfragen gefunden.
Nach etwas mehr Debugging (mit PDO anstelle meiner eigenen Klasse) habe ich herausgefunden, dass das Problem meine eigene PDO-Option "ATTR_PERSISTENT = & gt; true" ist. Das Deaktivieren dieser Option hat mein Problem gelöst.
UPDATE3: (Lösung)
Persisten Option von PDO brach meine Leistung leider genug.
Gefunden die Lösung mit strace: Nach dem Ausführen des Indexes auf der Kommandozeile mit strace (strace php index.php) habe ich das Problem bei einer der Abfragen gefunden.
Nachdem ich die Abfrage getrennt habe, habe ich meine Klasse durch das Standard-PDO ersetzt. Hinzufügen von Optionen meiner Klasse, bis sie wieder kaputt war: Nach etwas mehr Debugging (mit PDO anstelle meiner eigenen Klasse) fand ich heraus, dass das Problem meine eigene PDO-Option "ATTR_PERSISTENT = & gt; true" war. Das Deaktivieren dieser Option hat mein Problem gelöst.
Tags und Links php apache crash osx-mavericks localhost