2013-07-11 60 views
0

我已经安装了Apache :: PageKit模块,并在测试这个模块时显示下面的错误。Perl模块Apache-PageKit安装测试错误

但模块的可用性,使用在其下方有

bash-3.2$ 
bash-3.2$ perl -MApache::PageKit -e1 
bash-3.2$ 

bash-3.2$ ./t/TEST -start-httpd 
[warning] setting ulimit to allow core files 
ulimit -c unlimited; /usr/bin/perl /install/others/Apache-PageKit-1.14/t/TEST -start-httpd --documentroot '/install/others/Apache-PageKit-1.14/eg' 
/install/others/apache2/bin/httpd -d /install/others/Apache-PageKit-1.14/t -f /install/others/Apache-PageKit-1.14/t/conf/httpd.conf -D APACHE2 -D PERL_USEITHREADS 
using Apache/2.2.25 (prefork MPM) 

waiting 60 seconds for server to start: .Syntax error on line 24 of /install/others/Apache-PageKit-1.14/t/conf/extra.last.conf: 
Can't locate loadable object for module Apache::URI in @INC (@INC contains: /tmp/apache_test /install/others/Apache-PageKit-1.14/blib/lib /install/others/Apache-PageKit-1.14/blib/arch /install/others/lib/perl5/site_perl/5.8.8 /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/ /install/others/lib64/perl5/5.8.8/x86_64-linux-thread-multi /install/others/lib/perl5/site_perl /install/others/lib/CPAN/lib /install/others/Apache-PageKit-1.14/t /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//mod_perl.pm line 14\nCompilation failed in require at /install/others/Apache-PageKit-1.14/t/conf/extra.last.conf line 28.\nBEGIN failed--compilation aborted\t(in cleanup) Can't locate loadable object for module Apache::URI in @INC (@INC contains: /tmp/apache_test /install/others/Apache-PageKit-1.14/blib/lib /install/others/Apache-PageKit-1.14/blib/arch /install/others/lib/perl5/site_perl/5.8.8 /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/ /install/others/lib64/perl5/5.8.8/x86_64-linux-thread-multi /install/others/lib/perl5/site_perl /install/others/lib/CPAN/lib /install/others/Apache-PageKit-1.14/t /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//mod_perl.pm line 14\nCompilation failed in require at /install/others/Apache-PageKit-1.14/t/conf/extra.last.conf line 28.\nBEGIN failed--compilation aborted at /install/others/Apache-PageKit-1.14/t/conf/extra.last.conf line 28.\n 
[ error] 
server has died with status 255 (t/logs/error_log wasn't created, start the server in the debug mode) 
sh: line 1: 25604 Terminated    /usr/bin/perl /install/others/Apache-PageKit-1.14/t/TEST -start-httpd --documentroot '/install/others/Apache-PageKit-1.14/eg' 
bash-3.2$ 
bash-3.2$ 
bash-3.2$ 
bash-3.2$ perl -MApache::URI -e1 
bash-3.2$ 

这里线24是<Perl>。所以pagekit无法解析这一行。

bash-3.2$ vi /install/others/Apache-PageKit-1.14/t/conf/extra.last.conf 
# WARNING: this file is generated (from /install/others/Apache-PageKit-1.14/t/conf/extra.last.conf.in), do not edit 
# generated on Thu Jul 11 08:09:38 2013 
# 01: /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//Apache/TestConfig.pm:961 
# 02: /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//Apache/TestConfig.pm:979 
# 03: /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//Apache/TestConfig.pm:1452 
# 04: /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//Apache/TestConfig.pm:1564 
# 05: /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//Apache/TestRun.pm:502 
# 06: /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//Apache/TestRunPerl.pm:107 
# 07: /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//Apache/TestRun.pm:713 
# 08: /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//Apache/TestRun.pm:713 
# 09: /install/others/Apache-PageKit-1.14/t/TEST:72 

# Apache::Reload is very very helpfull during development, 
# but it is not required. So install it and uncomment 
# the following lines 
# 
# PerlModule Apache::Reload 
# PerlInitHandler Apache::Reload 
# PerlSetVar ReloadAll On 

# <Perl > 
<Perl> 

# It is not necasary to preload this modules, but it helps 

我该如何解决这个问题。

感谢
尚穆根A.

嗨,

感谢您的回复,我现在已经安装的Perl 5.8.8,阿帕奇2.2.25,modperl来2.0.8和的Apache2 :: PageKit此组合我启动apache时出现以下错误。

bash-3.2$ 
bash-3.2$ /install/others/apache2/bin/apachectl start 
[Mon Jul 15 11:28:10 2013] [error] Can't locate loadable object for module Apache::Constants in @INC (@INC contains: /install/others/lib/perl5/5.8.8 /install/others/lib/perl5/site_perl/5.8.8 /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/ /install/others/lib64/perl5/5.8.8/x86_64-linux-thread-multi /install/others/lib/perl5/site_perl/5.8.8 /install/others/lib/perl5/site_perl /install/others/lib/CPAN/lib /dso/dsoapps/iesdev/qtngsas70/DSOMP/lib /dso/dsoapps/iesdev/qtngsas70/DSOMP/bin. /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 . /install/others/apache2) at /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//mod_perl.pm line 14.\nCompilation failed in require at /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//ModPerl/P2.pm line 2.\nBEGIN failed--compilation aborted at /install/others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//ModPerl/P2.pm line 2.\nCompilation failed in require at (eval 2) line 3.\n 
[Mon Jul 15 11:28:10 2013] [error] Can't load Perl module ModPerl::P2 for server (null):0, exiting... 

注意:在这里我设置从Unix到Linux服务器。 在Unix上却是Apache的1.3.27,mod_perl的1.27阿帕奇:: PageKit,并在Apache的配置组合是下面添加了默认

################################################################# 
<IfModule mod_perl.c> 
    PerlModule ModPerl::P2 
    <Location /P2> 
    SetHandler perl-script 
    PerlHandler ModPerl::P2 
    PerlSendHeader On 
    </Location> 

    PerlModule ModPerl::P1 
    <Location /P1> 
    SetHandler perl-script 
    PerlHandler ModPerl::P1 
    PerlSendHeader On 
    </Location> 

    PerlModule Apache::DBI 
#### Entered by Tom Frizzell April 25 2008 
    PerlFixupHandler Apache::SIG 

</IfModule> 

############################################################### 
# PageKit setup 
PassEnv ORACLE_HOME ORACLE_SID ORACLE_USERID TAPEMON_HOME TAPEMON_LIB 

<Perl> 
use lib "/chshttp/prod/qtngsas70/DSOMP/lib"; 
</Perl> 

SetHandler perl-script 
PerlSetVar PKIT_ROOT /chshttp/prod/qtngsas70/DSOMP/www 
PerlSetVar PKIT_SERVER test 

PerlHandler +Apache::PageKit 
<Perl> 
     Apache::PageKit->startup('/chshttp/prod/qtngsas70/DSOMP/www', 'test'); 
</Perl> 

PerlInitHandler +Apache::Reload 
# Error Handling 
PerlModule Apache::ErrorReport 
PerlSetVar ErrorReportHandler display 

这个配置我已经改变了所有的Apache :: PageKit到Apache2的附加件:: PageKit和相应的源代码。我刚从Unix服务器复制文件ModPerl :: P1和ModPerl :: P2到Linux。但它显示了上面的错误。

我知道如何解决这个问题。

感谢

嗨,

当我访问该页面显示500内部错误。并且apache日志说(在perl模块Apache :: SIG中找不到对象方法“is_main”)。我应该知道如何解决这个问题。

bash-3.2$ more error_log 
[Sun Jul 14 09:38:12 2013] [notice] Apache/2.2.25 (Unix) configured -- resuming normal operations 
[Sun Jul 14 09:40:01 2013] [notice] caught SIGTERM, shutting down 
[Tue Jul 16 06:39:59 2013] [notice] Apache/2.2.25 (Unix) mod_perl/2.0.8 Perl/v5.8.8 configured -- resuming normal operations 
[Tue Jul 16 06:41:01 2013] [error] [client 10.191.51.22] Can't locate object method "is_main" via package "Apache2::RequestRec" at /install/ 
others/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi//Apache/SIG.pm line 14.\n 

我更新的Apache配置是

################################################################# 
<IfModule mod_perl.c> 
    PerlModule ModPerl::P2 
    <Location /P2> 
    SetHandler perl-script 
    PerlHandler ModPerl::P2 
# PerlSendHeader On 
     PerlOptions +ParseHeaders 
    </Location> 

    PerlModule ModPerl::P1 
    <Location /P1> 
    SetHandler perl-script 
    PerlHandler ModPerl::P1 
# PerlSendHeader On 
     PerlOptions +ParseHeaders 
    </Location> 
    PerlModule Apache::DBI 
    PerlFixupHandler Apache::SIG 
    LogFormat "%h %l %u %t \"%r\" %s %b %{SIGPIPE}e" 
</IfModule> 

############################################################### 
# PageKit setup TAPEMON_HOME TAPEMON_LIB 
PassEnv ORACLE_HOME ORACLE_SID ORACLE_USERID 

<Perl> 
    use mod_perl2; 

    # It is not necasary to preload this modules, but it helps 
    # to find errors in your instalation. 

    use Apache2::URI(); 
    use Apache2::Cookie(); 
    use Apache2::Request(); 
    use Apache::SessionX(); 
    use Apache2::Util(); 
    use Compress::Zlib(); 
    use File::Find(); 
    use HTML::FillInForm(); 
    use HTML::Parser(); 
    use HTML::Template(); 
    use XML::LibXML(); 

    use Apache2::PageKit(); 
    use lib "/dso/dsoapps/iesdev/qtngsas70/DSOMP/lib"; 
</Perl> 


SetHandler perl-script 
PerlSetVar PKIT_ROOT /dso/dsoapps/iesdev/qtngsas70/DSOMP/www 
PerlSetVar PKIT_SERVER test 
PerlHandler +Apache2::PageKit 
<Perl> 
     Apache2::PageKit->startup('/dso/dsoapps/iesdev/qtngsas70/DSOMP/www', 'test'); 
</Perl> 

PerlInitHandler +Apache2::Reload 
# Error Handling 
PerlModule Apache2::ErrorReport 
PerlSetVar ErrorReportHandler display 

难道我知道我可以解决这个

感谢
尚穆根A.

+0

是否在该系统上安装了mod_perl? – innaM

回答

0

它看起来像Apache的PageKit仅适用于mod_perl1,而不是mod_perl2(后者将使用Apache2 :: URI,而不是Apache :: URI)。所以你应该寻找替代品,或者如果你确实需要这个模块,那么你必须找到一种方法来在你的系统上安装Apache1和mod_perl1。

+0

或者试试这个:http://search.cpan.org/dist/Apache2-PageKit/ –

+0

嗨,感谢您的帮助,我知道我可以在哪里下载mod_perl-1.24_01。因为我试着用mod_perl-1.27,但没有运气。在Apache-PageKit要求中说需要mod_perl-1.24_01。 – user2556488

+0

请勿使用Apache1 + mod_perl1。试试Apache2 + mod_perl2 + Apache2 :: PageKit代替。 –