【发布时间】:2011-06-03 12:45:04
【问题描述】:
我在 /etc/init.d/apache2/conf.d/ 下有一个使用 Perl 部分的 apache2 配置文件。
我只是想测试一个模块是否已加载并根据需要配置 apache。
if( Apache->module( "mod_ssl.c" ) )
{
...
} else { ... }
这是我在重新启动时看到的错误。我也试过 Apache2->method 但得到同样的错误。
# /etc/init.d/apache2 重启 重新启动 Web 服务器:Debian 5.0.7 的 apache2Building Appliance 配置 /etc/apache2/conf.d/foobar.conf 第 73 行的语法错误: \t(in cleanup) 在 /etc/apache2/conf.d/foobar.conf 第 357 行无法通过包“Apache”定位对象方法“module”(也许您忘记加载“Apache”?)。\n 失败的!
我认为这不是@INC 问题... apache 和 libapache2-mod-perl2 软件包都已安装。事实上,如果我把这条线注释掉,perl 的其余部分实际上运行良好。
perl -e 'print join "\n",@INC'
/etc/perl
/usr/local/lib/perl/5.10.0
/usr/local/share/perl/5.10.0
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.10
/usr/share/perl/5.10
/usr/local/lib/site_perl
我也尝试过使用 Apache::compat 和“Apache2->module”。
我怀疑问题是在 startup.pl 中缺少某些东西 - 但我一直在谷歌搜索和阅读 mod perl 文档并转圈圈。有什么建议stackoverflow???
顺便说一句-我的startup.pl:
#!/usr/bin/perl -w
use strict;
use lib qw( /usr/lib/perl5/ /usr/lib/perl5/Bundle /usr/lib/perl5/Apache2 ) ;
BEGIN
{
use Apache2 ();
my $hostname = `hostname`;
}
use Apache;
use Apache::DBI ();
use Apache2::Const ();
use Apache2::Log ();
use Apache2::URI ();
use Apache2::compat;
use LWP::UserAgent ();
use DBI() ;
1;
【问题讨论】:
标签: apache apache2 mod-perl2 perlsections