0

我在 /etc/init.d/apache2/conf.d/ 下有一个使用 Perl 部分的 apache2 配置文件。

我只是想测试一个模块是否被加载并适当地配置 apache。

if( Apache->module( "mod_ssl.c" ) )
{
  ...
} else { ... }

这是我在重新启动时看到的错误。我也试过 Apache2->method 但得到同样的错误。

# /etc/init.d/apache2 restart 重新启动 Web 服务器:Debian 5.0.7 的 apache2Building Appliance 配置 /etc/apache2/conf.d/foobar.conf 的第 73 行语法错误:\t(在清理中)不能在 /etc/apache2/conf.d/foobar.conf 第 357 行通过包“Apache”定位对象方法“模块”(也许您忘记加载“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;
4

1 回答 1

0

关于从 1.0 移植到 2.0的文档建议Apache2::Module::loaded()

于 2011-02-10T21:10:22.873 回答