PHP ohne Debugging-Symbole führt zu SegFaults

bitmuncher

Senior-Nerd
Evtl. hat ja jemand schonmal ein ähnliches Problem gehabt und eine Lösung gefunden, daher hier mal mein Problem. Also...

Sobald ich PHP (5.3.6) ohne Debugging-Symbole, also ohne --enable-debug als Parameter für configure, kompiliere, bekomme ich im Webserver beim Aufruf jeder Seite nur noch ein Segfault:

Code:
[notice] child pid 3078 exit signal Segmentation fault (11)

Sobald ich --enable-debug wieder mit reinnehme, läuft der Webserver seltsamerweise ohne Probleme. Auch wenn es sich dabei nur um ein notice handelt, führt es dennoch dazu, dass der Webserver keinen Content mehr ausliefert, sondern die Verbindung ohne Antwort abbricht.

Jemand eine Idee woran das liegen kann?

Hier noch ein paar Eckdaten:

configure-Parameter für PHP: --enable-shared --enable-static --with-tsrm-pthreads --with-zlib-dir=/usr --with-pcre-dir=/usr --enable-zip --with-xsl=/usr --with-libxml-dir=/usr --with-iconv-dir=/usr --with-libexpat-dir=/usr --with-libxml-dir=/usr --enable-wddx --enable-sockets --enable-soap --with-openssl-dir=/usr --enable-shmop --with-mm=/usr --with-recode --with-readline --with-mysql=/usr --enable-mbstring --with-gettext --with-png-dir --with-jpeg-dir --with-gd --with-openssl-dir=/usr --with-pcre-dir --with-gmp --with-mhash --with-freetype-dir --with-xpm-dir --with-pcre-dir --enable-exif --enable-dba=shared --with-curl --with-bz2 --enable-bcmath --enable-intl --with-apxs2=/home/apache2_php53/bin/apxs --prefix=/home/apache2_php53 --with-pear=/home/apache2_php53/bin --with-config-file-path=/home/apache2_php53/conf --with-xmlrpc --enable-calendar --enable-debug

configure-Parameter für Apache: --prefix=/home/apache2_php53 --enable-so --with-ssl --enable-cgi --enable-modules=all --enable-mods-shared=all --enable-ssl --enable-cache --enable-mem-cache

Zusätzliche Module für PHP: memcache, PDO_MySQL, eaccelerator
Zusätzliche Module für Apache: mod_geoip
Versionen:
PHP 5.3.6
Apache 2.2.19
memcache 3.0.6
GeoIP 1.4.8
eaccelerator 0.9.6.1
PDO_MySQL 1.0.2
 
Sobald ich --enable-debug wieder mit reinnehme, läuft der Webserver seltsamerweise ohne Probleme. Auch wenn es sich dabei nur um ein notice handelt, führt es dennoch dazu, dass der Webserver keinen Content mehr ausliefert, sondern die Verbindung ohne Antwort abbricht.

Egal um was für einen Content es sich handelt? Oder doch nur php Kram?

bitmuncher hat gesagt.:
configure-Parameter für PHP: --with-pcre-dir=/usr [...]--with-pcre-dir
[...] --with-pcre-dir

Dir wird nicht viel was anderes übrig bleiben, als dich mal mit Strace oder besser mit dem GDB an den Apache Prozess zu hängen. Vielleicht siehst du dann etwas mehr.

HTH

Micha
 
@mime: Ja, ich befürchte auch, dass ich mal den Apache im GDB laufen lassen muss. Ich hatte nur gehofft, dass ich das vermeiden kann. Da Apache ja für jeden Worker neue Prozesse forkt, dürfte das recht langwierig werden. Hinzu kommt, dass der Fehler ja offenbar im PHP-Modul auftritt, das dann den Worker zum Crashen bringt, also in einem Shared Object.

@Chakky: Die Coredumps bringen leider auch nur was, wenn die Debugging-Symbole mit im Apache und in PHP sind. Sonst liefern sie beim Debuggen von PHP relativ wenig Informationen. Und das Problem tritt ja leider nur auf, wenn keine Debugging-Symbole drin sind.
 
Zurück
Oben