|
以非超级用户身份安装 mod_perl(7) APACI_ARGS=’—sbindir=/home/stas/apache/sbin, nbsp; —sysconfdir=/home/stas/apache/etc, nbsp; —localstatedir=/home/stas/apache/var, nbsp; —runtimedir=/home/stas/apache/var/run, nbsp; —logfiledir=/home/stas/apache/var/logs, nbsp; —proxycachedir=/home/stas/apache/var/proxy’
注意以上多行分开只工作在bash下, nbsp;tcsh用户将不得不在同一行列出所有参数。 基本上安装结束。唯一留下的问题是 nbsp;@INC nbsp;变量。如果你依赖 nbsp;PERL5LIB nbsp;环境变量,那么@INC nbsp;将不会被正确设置,除非你在你的启动文件中显式设置它。启动文件必须在装载任何你的本地库模块之前启动。一个更好的途径就像我们以前看到的,是用lib编译指示,但是稍微有点不同的地方:我们在启动文件中用这种方法将会影响所有在mod_perl处理下的代码将会被执行。例如: nbsp;PerlRequire nbsp;/home/stas/apache/perl/startup.pl nbsp;这里的 nbsp;startup.pl nbsp;以这样开始: nbsp;
use nbsp;lib nbsp;qw(/home/stas/lib/perl5/5.00503/ /home/stas/lib/perl5/site_perl/5.005);
注意你仍可以在脚本中用硬编码的 nbsp;@INC nbsp;的修改, nbsp;但意识到脚本修改BEGIN块里的 nbsp;@INC, nbsp;而mod_perl nbsp;只在脚本编译的时候才执行 nbsp;BEGIN块。结果,@INC nbsp;将会在编译以后被原始值复位,硬编码的设置将会被遗忘。 只有一个地方你可以改变“原始”值是在启动文件或者放 nbsp;
PerlSetEnv nbsp;Perl5LIB nbsp; /home/stas/lib/perl5/5.00503/:/home/stas/lib/perl5/site_perl/5.005
到 nbsp;httpd.conf的服务器配置阶段, nbsp;但是后者设置如果你用 nbsp;PerlTanintcheck nbsp;设置将会被忽略。我希望你能这样用它。 接下来的mod_perl nbsp;配置和使用是一样的,就好像你正在以超级用户身份安装mod_perl一样。
用 nbsp;CPAN.pm nbsp;进行本地安装 nbsp;mod_perl nbsp;启用 nbsp;Apache nbsp;假设你已经像文章前面所解释的配置 nbsp;CPAN.pm nbsp;来安装Perl模块,那么安装就简单了。
启动 nbsp;CPAN.pm nbsp;shell, nbsp;设置参数传递给 nbsp;perl nbsp;Makefile.PL nbsp;(修改例子设置适合你的需要), nbsp;然后告诉 nbsp;为你去做剩下的事: nbsp;
% nbsp;perl nbsp;-MCPAN nbsp;-eshell cpan> nbsp;o nbsp;conf nbsp;makepl_arg nbsp;‘DO_HTTPD=1 nbsp;USE_APACI=1 nbsp;EVERYTHING=1 nbsp; PREFIX=/home/stas nbsp;APACHE_PREFIX=/home/stas/apache’ cpan> nbsp;install nbsp;mod_perl
当你为了本地化安装用 nbsp;CPAN.pm nbsp;的时候, nbsp;mod_perl nbsp;安装结束之后你必须确认 nbsp;makepl_arg nbsp;是否被回复到原始值。最简单的方法是通过输入 nbsp;quit退出交互Shell然后重新输入。但是如果要坚持,那么下面就是如果不退出Shell就生效. nbsp;你真的想跳过这个:) 如果你想不退出Shell用CPAN继续工作,那么你必须:
1)记住 nbsp;makepl_arg nbsp;的值
2)改变它以适合你的新安装
|