【发布时间】:2012-03-08 21:13:42
【问题描述】:
我的 mod_perl 似乎导致我的 Apache 出现分段错误。 'httpd -X' 只是给出了 'Segmentation Fault' 并且我的服务器没有启动。
我正在使用 Apache 2.2.22、mod_perl 2.0.5、CentOS 5.7 x86_64。我使用以下命令从源代码构建了 mod_perl 和 Apache:
perl5.12.4 Makefile.PL MP_USE_STATIC=1 MP_AP_PREFIX=/usr/local/src/httpd-2.2.22 MP_AP_CONFIGURE="--with-mpm=prefork --enable-rewrite"
到目前为止我所尝试的:
- 将 httpd.conf 指向我的 Catalyst 应用程序。结果:Apache 因“分段错误”而死。
- 将httpd.conf 指向一个使用catalyst.pl 创建的简单应用程序。 Apache 因“分段错误”而死。
- 将 httpd.conf 指向一个静态站点。结果:Apache 启动正常并为网站提供服务。
我尝试了以下方法:
gdb -c /usr/local/apache2/bin/httpd
程序收到信号SIGSEGV,分段错误。
0x00002aaab0db0270 在?? ()
(gdb) bt
#0 0x00002aaab0db0270 在?? ()
#1 0x00000000004c9d24 in Perl_newUNOP()
#2 0x00000000004fb6a6 in Perl_yyparse()
#3 0x0000000000557c57 in S_doeval()
#4 0x0000000000559546 in Perl_pp_require()
#5 0x0000000000528bae in Perl_runops_standard()
#6 0x00000000004d5d2f in Perl_eval_sv()
#7 0x0000000000478425 in modperl_require_module()
#8 0x0000000000472283 in modperl_boot()
#9 0x00000000005529cc in Perl_leave_scope()
#10 0x00000000004d87eb in S_parse_body()
#11 0x00000000004d927c in perl_parse()
#12 0x0000000000471d2a in modperl_startup()
#13 0x0000000000471cbc in modperl_startup()
#14 0x000000000047202e in modperl_init()
#15 0x000000000047215f in modperl_hook_init()
#16 0x00000000004737bb in modperl_cmd_perldo()
#17 0x000000000046432b in invoke_cmd (cmd=0x5b9880, parms=0x7ffffffffe770, mconfig=0x844728, args=0x89b7d8 "使用库 qw(/usr/local/apache2/virtualhosts/api.nwwi.nl /httpdocs/lib/ );\n") at config.c:757
#18 0x0000000000465865 in ap_walk_config_sub (current=0x89b828, parms=0x7ffffffffe770, section_vector=0x830c18) at config.c:1163
#19 0x0000000000465914 in ap_walk_config (current=0x89b828, parms=0x7ffffffffe770, section_vector=0x830c18) at config.c:1196
#20 0x0000000000466cb9 in ap_process_config_tree (s=0x82de10, conftree=0x86fcb0, p=0x822138, ptemp=0x82a178) at config.c:1765
#21 0x0000000000449512 in main (argc=2, argv=0x7ffffffffe9e8) at main.c:723
我不知道如何阅读和解释这一点。有人可以帮助并指出我进一步解决此问题的方向吗?
【问题讨论】: