我继承了一个运行 perl 应用程序的 apache 服务器实例。我在 httpd.conf 中找到了这个指令。
<perl>
use lib qw(
/relative path1
/relative path2
);
</perl>
我在这个指令上找到的最小文档说它导致所有 apache conf 文件都用 perl 编写。但是上面的代码只添加了 @INC 的 lib 路径。有人知道更多关于这个指令的信息吗?
使用 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;
回复:“但上面的代码只将 lib 路径添加到 @INC。”
这正是该代码应该做的。这段特殊的代码旨在添加包含路径,以便可以PerlModule
从非标准路径加载模块(可能使用 )。
该<perl>
部分允许在 Apache 配置文件而不是外部 perl 文件中执行 Perl 代码。它只是为了方便而提供的,除了(我认为更常见的)指令PerlRequire
为您提供的功能之外,实际上并没有为您提供任何额外的功能。
说一个<perl>
指令“导致 Apache 配置文件用 Perl 编写”并没有真正的意义,也不是真的。如果您愿意,它允许您这样做,但这不是这里正在做的事情。