Aufruf PHP-Script erzeugt SegmentationFault

Moritz123

Erfahrenes Mitglied
Hallo!

ich stehe hier vor einem kleinen Rätsel. Ich bin gerade dabei mit Eclipse eine kleine, objektorientierte PHP-Anwendung zu schreiben. Mitten im Schreiben öffnete sich plötzlich in Eclipse ein Fenster, dass mich zum speichern der aktuellen Datei aufforderte, obwohl diese schon seit geraumer Weile im Projekt angelegt war und ausser den aktuellen Änderungen eigentlich nichts zu speichern war. Als Speicherort wurde mit mein Home-Verzeichnis angeboten. Ich habe das speichern aber dankend abgelehnt, da ich nicht wusste, warum ich ausgerechnet jetzt abspeichern soll.
Als ich meine Änderungen testen wollte, habe ich wie gewohnt mittels Strg-S gespeichert (keine Fehlermeldung) und die Seite auf meinem lokalen Webserver (PHP 5.2.4 auf Apache 2.2.4/Fedora 7) anschauen wollen. Nach ungewöhnlich langer Wartezeit erhielt ich lediglich eine leere Seite. Ein Blick in die error_log offenbarte folgendes:
[Wed Oct 10 11:57:07 2007] [notice] core dump file size limit raised to 4294967295 bytes
[Wed Oct 10 11:57:07 2007] [notice] SELinux policy enabled; httpd running as context user_u:system_r:unconfined_t
[Wed Oct 10 11:57:07 2007] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Oct 10 11:57:07 2007] [notice] Digest: generating secret for digest authentication ...
[Wed Oct 10 11:57:07 2007] [notice] Digest: done
PHP Warning: PHP Startup: apc: Unable to initialize module\nModule compiled with module API=20050922, debug=0, thread-safety=0\nPHP compiled with module API=20060613, debug=0, thread-safety=0\nThese options need to match\n in Unknown on line 0
[Wed Oct 10 11:57:08 2007] [notice] mod_python: Creating 4 session mutexes based on 150 max processes and 0 max threads.
[Wed Oct 10 11:57:08 2007] [notice] mod_python: using mutex_directory /tmp
[Wed Oct 10 11:57:08 2007] [notice] Apache/2.2.4 (Unix) DAV/2 PHP/5.2.4 mod_python/3.3.1 Python/2.5 mod_ssl/2.2.4 OpenSSL/0.9.8b mod_perl/2.0.3 Perl/v5.8.8 configured -- resuming normal operations
[Wed Oct 10 11:57:29 2007] [notice] child pid 3778 exit signal Segmentation fault (11)
[Wed Oct 10 11:59:37 2007] [notice] child pid 3779 exit signal Segmentation fault (11)
Tja, ich muss gestehen, dass mir diese Fehlermeldung nichts sagt - ich kann mir nicht erklären, wo der plötzliche Speicherfehler herkommt, zumal ich eigentlich keine grossen Änderungen am Code vorgenommen habe.
Was mich auch wundert ist, dass, habe ich keine Internetverbindung, ich beim Aufruf der Seite eine Fehlermeldung bekomme, dass keine Verbindung zum Imap-Server (bei dem Script handelt es sich um einen kleinen Webmailer ;) ) hergestellt werden kann. Hier funktioniert alles also scheinbar reibunglos.
Ich weiß leider auch nicht, was ich an Code posten soll, vielleicht habt Ihr aber trotzdem eine Idee, wo dieser Fehler herkommen könnte.

Vielen Dank!
 
Hast du auch mal in die Errorlog von PHP geschaut? Das sieht ja jetzt stark nach dem Apache-Log aus für mich.
Ich hatte mal n SegFault wegen einer falschen eAccelerator-Version. War aus den Logs so nicht ersichtlich. Achso, ich sehe ausßerdem das es PHP5.2.4 ist. Kann es sein, das dein Provider n PHP-Update seit dem setzen testen deinerseits gemacht hat?
 
Zuletzt bearbeitet:
Es wird vermutlich an dem Webserver liegen. Versuche es mal mit einer Neuinstallation des Webservers.
 
Hallo!

vielen Dank für die Antworten!
Kann es sein, das dein Provider n PHP-Update seit dem setzen mal gemacht hat
Nein, da der Server hier lokal auf meiner Linuxkiste läuft kann das nicht sein. Ich habe an der Konfiguration nichts geändert.

Kann es nicht vielleicht doch am Code selbst liegen? Ich kann mir das nicht erklären...
 
Dann mal in die PHP-Errorlog schauen. Kann sein das du es noch erst in der php.ini einrichten musst.

Code:
log_errors = On
error_log = /var/log/apache2/php_error
 
Hallo!

sorry - ich hatte vergessen zu erwähnen, dass dort nichts anderes zu finden ist, als in der error_log des Apaches; nämlich genau die PHP-Warning.
 
Hallo nochmal!

hab jetzt den httpd mal neuinstalliert - und: große Überraschung: es hat sich nichts geändert. Immernoch der gleiche Fehler.
 
Wenn du nix am Apache oder PHP geändert/geupdated/erweitert hast, wüsste ich nicht was es ist.
Wäre ich an dieser Stelle, würde ich nach dem Ausschließen dieser Faktoren meinen PHP-Quellcode debuggen.Solltest du mit Eclipse PDT arbeiten, ist dies ja sehr schnell getan.


http://www.zend.com/pdt
bzw.
http://downloads.zend.com/pdt/server-debugger/


#NACHTRAG#
Hat du auch brav die Configs des Apachen vor der neuinstallation gelöscht/weggesichert? Denke das da eher ein Fehler ist als in den Binaries.

Mit fällt grad ein, evtl. auch mal die .htaccess in dem webroot anschauen (oder löschen). Auch Fehler an dieser Stelle können solch ein Verhalten erklären.
 
Zuletzt bearbeitet:
Hallo!

ich denke ich hab den Fehler gefunden. Hatte in einer Klasse versteckt 2 Methoden, die sich immer gegenseitig aufgerufen haben - d'oh!

Trotzdem aber vielen Dank für Eure Mühen!
 
Zurück