Hi, aufgrund der letzten Security Meldungen (mod_ssl, apache) habe ich (leider) auf meinem Server (SuSE 7.0) einen Upgrade versucht. apache von 1.3.12 auf 1.3.19 inkl. mod_ssl und php von 4.0.1x auf 4.0.4pl1 Ich muß aber php immer neu übersetzen, da wir aus php auf eine Oracle Datenbank zugreifen. Nun das Problem: rpm --bb mod_php4.spec (mit angepasstem Spec: --with-oci8=..., ohne postgres, ...) scheitert nach (!) dem kompilieren bei "httpd -t -D PHP4", während der "httpd -t" funktioniert. Ein "strace httpd -t -D PHP4" bringt (nur das Ende): -------------- cut here ------------------- [...] chmod("/var/state/httpd/mm.15685.sem", 0600) = 0 chown("/var/state/httpd/mm.15685.sem", 30, 4294967295) = 0 write(2, "Syntax OK\n", 10Syntax OK ) = 10 munmap(0xeabf000, 10424) = 0 [....] munmap(0xea1e000, 76376) = 0 shmdt(0xe19e000) = 0 shmctl(950275, IPC_RMID, 0) = -1 EINVAL (Invalid argument) close(3) = 0 unlink("/var/state/httpd/mm.15685.sem") = 0 --- SIGSEGV (Segmentation fault) --- +++ killed by SIGSEGV +++ -------------- cut here ------------------- Zum Vergleich ein "strace httpd -t -D PHP4" mit dem Original SuSE rpm: -------------- cut here ------------------- munmap(0xe014000, 4096) = 0 chmod("/var/state/httpd/mm.15696.sem", 0600) = 0 chown("/var/state/httpd/mm.15696.sem", 30, 4294967295) = 0 write(2, "Syntax OK\n", 10Syntax OK ) = 10 munmap(0xe7c3000, 10424) = 0 [...] munmap(0xe711000, 60092) = 0 shmdt(0xe19e000) = 0 shmctl(983043, IPC_RMID, 0) = -1 EINVAL (Invalid argument) close(3) = 0 unlink("/var/state/httpd/mm.15696.sem") = 0 _exit(0) -------------- cut here ------------------- Also alles identisch bis auf den SIGSEGV. Kann mit irgendjemand hier sagen, wo ich noch suchen kann? Wieso stirbt der apache mit PHP4 nach (!) dem erfolgreichen unlink? Ratlos Andreas
Andreas Kyek wrote:
aufgrund der letzten Security Meldungen (mod_ssl, apache) habe ich (leider) auf meinem Server (SuSE 7.0) einen Upgrade versucht.
Ich muß aber php immer neu übersetzen, da wir aus php auf eine Oracle Datenbank zugreifen.
Zum Vergleich ein "strace httpd -t -D PHP4" mit dem Original SuSE rpm:
Also alles identisch bis auf den SIGSEGV.
Kann mit irgendjemand hier sagen, wo ich noch suchen kann?
http://httpd.apache.org/dev/debugging.html
Wieso stirbt der apache mit PHP4 nach (!) dem erfolgreichen unlink?
Aber das es unmittelbar mit dem unlink zu tun hat steht dort auch nicht. Hast du mal probiert, das SuSE-RPM ohne Aenderungen zu uebersetzen und ans laufen zu bringen? Vielleicht ist ja noch etwas anderes im Build-System, das die SuSE-Leute nicht hatten. Dir ist bewusst, das mod_ssl das Apache-API veraendert? Der "richtige" Weg um alles ins laufen zu bringen, waere "./config --with-eapi-only" von mod_ssl auszufuehren, bevor du den Apache uebersetzt. Konrekt: Taucht beim uebersetzen vom php-Modul "-DEAPI" in den gcc Aufrufen auf? Peter
participants (2)
-
Andreas Kyek
-
Peter Wiersig