在我的 Apache 错误日志中,我收到如下行
[2011 年 9 月 21 日,星期三 16:51:14] [通知] 子进程 pid 5414 退出信号分段错误 (11),/tmp/apache-cores/ 中可能出现核心转储 [2011 年 9 月 21 日星期三 17:04:15] [通知] 子进程 pid 5558 退出信号分段错误 (11),/tmp/apache-cores/ 中可能出现核心转储 [2011 年 9 月 21 日,星期三 17:04:16] [通知] 子进程 pid 5508 退出信号分段错误 (11),/tmp/apache-cores/ 中可能出现核心转储 [2011 年 9 月 21 日星期三 17:50:47] [通知] 子进程 pid 5892 退出信号分段错误 (11),/tmp/apache-cores/ 中可能出现核心转储 [2011 年 9 月 21 日星期三 17:50:48] [通知] 子进程 pid 5880 退出信号分段错误 (11),/tmp/apache-cores/ 中可能出现核心转储 [2011 年 9 月 21 日星期三 17:51:31] [通知] 子进程 pid 5965 退出信号分段错误 (11),/tmp/apache-cores/ 中可能出现核心转储 [2011 年 9 月 21 日星期三 17:51:32] [通知] 子进程 pid 5955 退出信号分段错误 (11),/tmp/apache-cores/ 中可能出现核心转储
我已经设置了 CoreDumpDirectory 并使用 gdb 获得了这个结果,但我不确定它意味着什么或者我可以从这里去哪里。
Core was generated by `/usr/sbin/apache2 -k start'.
Program terminated with signal 11, Segmentation fault.
[New process 5955]
#0 0x000000000043f7e6 in ap_add_common_vars (r=0xa805a8)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/server/ util_script.c:242
242 /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/server /util_script.c: No such file or directory.
in /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/ser ver/util_script.c
(gdb) bt
#0 0x000000000043f7e6 in ap_add_common_vars (r=0xa805a8)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/server/util_script.c:242
#1 0x00007faac8643459 in php_handler (r=0xa99ae0)
at /tmp/buildd/php5-5.2.6.dfsg.1/sapi/apache2handler/sapi_apache2.c:586
#2 0x0000000000438f73 in ap_run_handler (r=0xa805a8)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/server/config.c:159
#3 0x000000000043c53f in ap_invoke_handler (r=0xa805a8)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/server/config.c:373
#4 0x0000000000449590 in ap_internal_redirect (new_uri=,
r=)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/modules/http/http_request.c:477
#5 0x00007faac7b6eb95 in handler_redirect (r=0xa9b2d8)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/modules/mappers/mod_rewrite.c:4829
#6 0x0000000000438f73 in ap_run_handler (r=0xa9b2d8)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/server/config.c:159
#7 0x000000000043c53f in ap_invoke_handler (r=0xa9b2d8)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/server/---Type to continue, or q to quit---
config.c:373
#8 0x000000000044972e in ap_process_request (r=0xa9b2d8)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/modules/http/http_request.c:258
#9 0x0000000000446858 in ap_process_http_connection (c=0xa795c8)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/modules/http/http_core.c:190
#10 0x0000000000440493 in ap_run_process_connection (c=0xa795c8)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/server/connection.c:43
#11 0x000000000044e3d0 in child_main (child_num_arg=)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/server/mpm/prefork/prefork.c:680
#12 0x000000000044e724 in make_child (s=0x676968, slot=11)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/server/mpm/prefork/prefork.c:777
#13 0x000000000044f366 in ap_mpm_run (_pconf=,
plog=, s=)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/server/mpm/prefork/prefork.c:912
#14 0x0000000000425be5 in main (argc=3, argv=0x7fff79e8fd68)
at /build/buildd-apache2_2.2.9-10+lenny11-amd64-vHbrzW/apache2-2.2.9/server/main.c:732
答案1
#1 0x00007faac8643459 in php_handler (r=0xa99ae0)
at /tmp/buildd/php5-5.2.6.dfsg.1/sapi/apache2handler/sapi_apache2.c:586
看起来像漏洞。您应该将 PHP 更新至版本 5.3.3-7 并重试。
答案2
我在这里为 Apache 分段错误提供了一个 hackish 解决方法: 针对 PHP 分段错误调试 Apache 的建议
但是是的,另一个回复者是对的。您应该升级 PHP 和/或 apache。您应该了解 php 5.2.x 和 php 5.3.x 之间的变化,其中一些可能需要您更改代码。