1

我继承了一个运行 perl 应用程序的 apache 服务器实例。我在 httpd.conf 中找到了这个指令。

<perl>
use lib qw(
    /relative path1
    /relative path2
);
</perl>

我在这个指令上找到的最小文档说它导致所有 apache conf 文件都用 perl 编写。但是上面的代码只添加了 @INC 的 lib 路径。有人知道更多关于这个指令的信息吗?

4

2 回答 2

1

使用 mod_perl,该标签允许在 httpd 配置文件中使用/执行 Perl,并且还提供了一组变量和方法来执行标准的 httpd 配置。 http://perl.apache.org/docs/2.0/api/Apache2/PerlSections.html

至于您的配置示例,我只能假设它正在尝试修改在 mod_perl 下运行的所有内容的 lib 路径,否则它本身没有多大意义(除非您在配置文件中有更多部分?)

如果出现这些配置的库路径,请检查在您的 Web 主机上执行的 Perl 脚本:

print join "\n", @INC;
于 2012-06-24T18:41:59.467 回答
0

回复:“但上面的代码只将 lib 路径添加到 @INC。”

这正是该代码应该做的。这段特殊的代码旨在添加包含路径,以便可以PerlModule从非标准路径加载模块(可能使用 )。

<perl>部分允许在 Apache 配置文件而不是外部 perl 文件中执行 Perl 代码。它只是为了方便而提供的,除了(我认为更常见的)指令PerlRequire为您提供的功能之外,实际上并没有为您提供任何额外的功能。

说一个<perl>指令“导致 Apache 配置文件用 Perl 编写”并没有真正的意义,也不是真的。如果您愿意,它允许您这样做,但这不是这里正在做的事情。

于 2012-06-25T01:26:50.607 回答