2012-02-17 41 views
0

我的mod_perl似乎在我的Apache中導致分段錯誤。 'httpd -X'只是給出'Segmentation Fault',我的服務器無法啓動。mod_perl導致Apache分段錯誤 - 爲什麼?

我使用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 /本地/ SRC/httpd的-2.2.22 MP_AP_CONFIGURE =「 - 與-MPM = prefork的--enable-重寫」

我迄今爲止嘗試:

  1. 點的httpd.conf我催化劑的應用。結果:Apache因「分段錯誤」而死亡。
  2. 將httpd.conf指向使用catalyst.pl創建的簡單應用程序。 Apache死於'分段錯誤'。
  3. 將httpd.conf指向靜態站點。結果:Apache正常啓動併爲網站提供服務。

我試過如下:

GDB -c在/ usr /本地/ Apache2的/ bin中/ httpd的

計劃接收信號SIGSEGV,分割過錯。

0x00002aaab0db0270 in ?? ()

(GDB)BT

#0 0x00002aaab0db0270在??()

#1 0x00000000004c9d24在Perl_newUNOP()

#2 0x00000000004fb6a6在Perl_yyparse()

#3 0x0000000000557c57在S_doeval()

#4 0x0000000000559546在Perl_pp_require()

#5 0x0000000000528bae in Perl_runops_standard()

#6 0x00000000004d5d2f in Perl_eval_sv()

#7 0x0000000000478425在modperl_require_module()

#8 0x0000000000472283在modperl_boot()

#9 0x00000000005529cc在Perl_leave_scope())

#10 0x00000000004d87eb在S_parse_body(

#11 0x10000000004d927c in perl_parse()

#12 0x0000000000471d2a in modperl_startup()

在modperl_startup#13 0x0000000000471cbc()

#在modperl_init()14 0x000000000047202e

在modperl_hook_init#15 0x000000000047215f()

在modperl_cmd_perldo#16 0x00000000004737bb()

#17 invoke_cmd(cmd = 0x5b9880,parms = 0x7fffffffe770, mconfig = 0x844728,args = 0x89b7d8)中的0x000000000046432b使用lib qw(/usr/local/apache2/virtualhosts/api.nwwi.nl /的httpdocs/LIB /); \ n「個)在config.c:757

在ap_walk_config_sub#18 0x0000000000465865(電流= 0x89b828,PARMS = 0x7fffffffe770,section_vector = 0x830c18)在config.c:1163

#19 0x0000000000465914在config.c ap_walk_config(電流= 0x89b828,PARMS = 0x7fffffffe770,section_vector = 0x830c18):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

我接收到來自Dave霍奇金森所述的mod_perl郵件列表以下響應:

#17 0x000000000046432b在invoke_cmd(CMD = 0x5b9880,

parms=0x7fffffffe770, mconfig=0x844728, args=0x89b7d8 "use lib qw(

的/ usr /本地/ 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> 

這解決了我的問題。