我的mod_perl似乎在我的Apache中导致分段错误。 'httpd -X'只是提供'分段错误'而我的服务器无法启动。
我正在使用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”
到目前为止我尝试过:
我尝试了以下内容:
gdb -c / usr / local / apache2 / bin / httpd
编程接收信号SIGSEGV,分段故障。
0x00002aaab0db0270在? ()
(gdb)bt
#0 0x00002aaab0db0270在? ()
Perl_newUNOP()中的#1 0x00000000004c9d24 Perl_yyparse()
中的#2 0x00000000004fb6a6 S_doeval()
中的#3 0x0000000000557c57 Perl_pp_require()
中的#4 0x0000000000559546 Perl_runops_standard()
中的#5 0x0000000000528bae Perl_eval_sv()
中的#6 0x00000000004d5d2f modperl_require_module()
中的#7 0x0000000000478425 modperl_boot()
中的#8 0x0000000000472283 Perl_leave_scope()
中的#9 0x00000000005529cc
#10 0x00000000004d87eb在S_parse_body()
中 perl_parse()中的#11 0x00000000004d927c modperl_startup()
中的#12 0x0000000000471d2a modperl_startup()
中的#13 0x0000000000471cbc modperl_init()
中的#14 0x000000000047202e modperl_hook_init()
中的#15 0x000000000047215f modperl_cmd_perldo()
#16 0x00000000004737bb
#17 0x000000000046432b在invoke_cmd中(cmd = 0x5b9880,parms = 0x7fffffffe770, mconfig = 0x844728,args = 0x89b7d8“使用lib qw(/usr/local/apache2/virtualhosts/api.nwwi.nl / httpdocs / lib /); \ n“)在config.c:757
#18 0x0000000000465865 in ap_walk_config_sub(current = 0x89b828,parms = 0x7fffffffe770,section_vector = 0x830c18)at config.c:1163
#19 0x0000000000465914 in ap_walk_config(current = 0x89b828,parms = 0x7fffffffe770,section_vector = 0x830c18)at config.c:1196
#20 0x0000000000466cb9在ap_process_config_tree(s = 0x82de10,conftree = 0x86fcb0,p = 0x822138,ptemp = 0x82a178)的config.c:1765
#21 0x0000000000449512 in main(argc = 2,argv = 0x7fffffffe9e8)at main.c:723
我不知道如何阅读和解释这个。有人可以帮忙并指出我的方向来进一步解决这个问题吗?
答案 0 :(得分:0)
我在mod_perl邮件列表上收到了Dave Hodgkinson的以下回复:
#17 0x000000000046432b在invoke_cmd中(cmd = 0x5b9880,
parms=0x7fffffffe770, mconfig=0x844728, args=0x89b7d8 "use lib qw(
/usr/local/apache2/virtualhosts/api.nwwi.nl / httpdocs / lib /); \ n“)
config.c:757
这似乎是它正在尝试做的事情。采取该指令 看看会发生什么?
经过一些实验后,我从
更改了部分Apache配置PerlSwitches -I/srv/www/example.com/application/lib/
<Perl>
use lib qw( /srv/www/example.com/application/lib/ );
</Perl>
PerlModule application
到
<Perl>
use lib qw( /srv/www/example.com/application/lib/ );
</Perl>
这解决了我的问题。