2012-02-17 13 views
0

私のApacheで、mod_perlがセグメンテーション違反の原因となっているようです。 'httpd -X'は単に 'Segmentation Fault'を返し、サーバーは起動しません。mod_perlが原因でApache Segmentationフォルトが発生する - なぜですか?

Apache 2.2.22、mod_perl 2.0.5、CentOS 5.7 x86_64を使用しています。 -MPM -

perl5.12.4 Makefile.PL MP_USE_STATIC = 1 MP_AP_PREFIX =は/ usr/local/srcに/ httpdの-2.2.22 MP_AP_CONFIGURE = ":私は、次のコマンドを使用してソースから一緒のmod_perlとApacheを構築しました= preforkの--enable-リライト」私がこれまで試してみました何

:私のCatalystアプリケーションへ

  1. ポイントのhttpd.confを。結果:Apacheは「Segmentation fault」で死にます。
  2. httpd.confをcatalyst.plで作成した単純なアプリケーションにポイントします。 Apacheは「セグメンテーション・フォルト」で死にます。
  3. httpd.confを静的サイトにポイントします。結果:Apacheは正常に起動し、Webサイトを提供します。

私は次のことを試してみました:

GDB -cは/ usr/local/apache2の/ binに/ httpdの

プログラムは、信号SIGSEGV、セグメンテーションフォールトを受けました。

0x00002aaab0db0270 ()

(GDB)で#0 0x00002aaab0db0270

BT?()

#Perl_newUNOP()

#1 0x00000000004c9d24 Perl_yyparse()

#2 0x00000000004fb6a6 S_doeval()

#3 0x0000000000557c57 4 Perl_pp_require()で0x0000000000559546

#5 0x0000000000528bae perl_runops_standard()

#6 0x00000000004d5d2f Perl_eval_sv()

#modperl_require_module()

#7 0x0000000000478425 modperl_boot()

#Perl_leave_scope(9 0x00000000005529cc)S_parse_bodyで

#10 0x00000000004d87eb()

#11で8 0x0000000000472283 perl_parse()の0x00000000004d927c

#12 0x0000000000471d2a in modperl_startup()

#13 modperl_cmd_perldoでmodperl_hook_initでmodperl_startupで0x0000000000471cbc()modperl_initで

#14 0x000000000047202e()

#15 0x000000000047215f()

#16 0x00000000004737bb()

#17 invoke_cmdの0x000000000046432b(cmd = 0x5b9880、parms = 0x7ffffff770,mconfig = 0x844728、args = 0x89b7d8)lib qw(/usr/local/apache2/virtualhosts/api.nwwi.nlを使用してください。 10 /をhttpdocs/LIB /); CONFIG.Cでの\ n "):757

#18 0x0000000000465865 ap_walk_config_subにおける(CONFIG.Cの電流= 0x89b828、PARMS = 0x7fffffffe770、section_vector = 0x830c18):1163

CONFIG.Cでap_walk_config位19 0x0000000000465914(電流= 0x89b828、PARMS = 0x7fffffffe770、section_vector = 0x830c18):1196

#20 0x0000000000466cb9 ap_process_config_treeにおける(S = 0x82de10、conftree = 0x86fcb0、P = 0x822138、PTEMP = 0x82a178) config.c:1765

main.cのメイン(argc = 2、argv = 0x7fffffffe9e8)の#21 0x0000000000449512:723

これを読んで解釈する方法はわかりません。誰かが助けて、これをさらにトラブルシューティングする方向に向けることができますか?

答えて

0

私はmod_perlのメーリングリストでデイブ・ホジキンソンから次の応答を受け取っ:

#17 invoke_cmdで0x000000000046432b(CMD = 0x5b9880、

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

は/ usr/local/apache2の/仮想ホスト/ api.nwwi。NL /をhttpdocs/libに/); \ nを ")

config.c:757 

でやろうとしているもののように見えるそのディレクティブ アウトを取ると何が起こるのか、いくつかの後

を参照してください。?実験は、私が

0に

PerlSwitches -I/srv/www/example.com/application/lib/ 

<Perl> 
    use lib qw(/srv/www/example.com/application/lib/); 
</Perl> 

PerlModule application 

からApacheの設定の一部を変更しました

これは私の問題を解決しました。