如何从apache配置文件向perl包含路径添加目录?
我在centos上使用apache和mod_perl 2,我的apache配置文件中有一个PerlRequeste指令,用于指定我的mod_perl启动文件:如何从apache配置文件向perl包含路径添加目录?,apache,perl,mod-perl,mod-perl2,Apache,Perl,Mod Perl,Mod Perl2,我在centos上使用apache和mod_perl 2,我的apache配置文件中有一个PerlRequeste指令,用于指定我的mod_perl启动文件: PerlRequire startup.pl 但是,当我尝试启动apache时,mod_perl在其perl include路径中找不到startup.pl。apache错误日志显示: [error] Can't locate startup.pl in @INC (@INC contains: /usr/local/lib64/per
PerlRequire startup.pl
但是,当我尝试启动apache时,mod_perl在其perl include路径中找不到startup.pl。apache错误日志显示:
[error] Can't locate startup.pl in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /etc/httpd) at (eval 2) line 1.
mod_perl 2文档说有一个PerlSetEnv指令可以用来设置环境变量,
可以为此设置PERL5LIB环境变量,如下所述:
但是如果已经设置了PERL5LIB变量,那么我不想破坏前面的设置,而是想向其中添加另一个目录。我可以在apache配置文件中使用什么指令将目录添加到perl include路径(@INC),而不破坏其先前的内容
编辑:@jm666在apache配置中使用“PerlSwitches-I/some/other/path”的答案听起来像是正确的答案,不过另一种可能是在我的PerlRequire指令中使用startup.pl的完整路径。但是,从startup.pl执行此操作的另一个建议答案将不起作用,因为mod_perl找不到startup.pl。您可以从
startup.pl执行此操作,如:
use lib qw(/some/other/path);
从医生那里
它通常用于向perl的搜索路径添加额外的目录,以便
稍后的use或require语句将查找不可用的模块
位于perl的默认搜索路径上
要使用lib的参数被添加到perl搜索的开头
路径说
这几乎等于说
BEGIN { unshift(@INC, LIST) }
或者,您可以在httpd.conf中使用
PerlSwitches -I/some/other/path
只需将完整路径放入PerlRequire
您是否尝试将SetEnv PERL5LIB/path/to/lib:$PERL5LIB
添加到httpd.conf中?
PerlSwitches -I/some/other/path