Apache 分段错误

Apache 分段错误

在我的 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 之间的变化,其中一些可能需要您更改代码。

相关内容