PHP / Apache stürzt beim Skript ab (Segmentierungsfehler (11)

8

[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.

    
webecreative 15.12.2013, 19:38
quelle

1 Antwort

3

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.

    
webecreative 27.05.2014, 18:44
quelle