我可以在共享主机上使用Perl的Apache2 :: ASP CPAN模块吗?

时间:2010-01-09 17:06:20

标签: perl cpan mod-perl

我正在尝试在共享托管环境中使用CPAN的Perl模块(AuthCookieDBI.pm)。

我尝试将.pm文件复制到我正在尝试使用的目录中,并且我已根据.htaccess页面上的说明更新了我的AuthCookieDBI文件,但是我的Apache日志说:

Invalid command 'PerlModule', perhaps misspelled or defined by a module not 
included in the server configuration

这似乎是导致错误的行:

PerlModule Apache2::AuthCookieDBI

根据Apache:ASP FAQ,这是因为未安装mod_perl而导致的; 我在共享托管(因此无法执行任何需要root权限的操作),所以我无能为力吗?

4 个答案:

答案 0 :(得分:2)

Apache2 :: AuthCookieDBI需要mod_perl,所以如果没有它,模块对你没用。

答案 1 :(得分:2)

如果您使用共享主机,则很可能不使用mod_perl。因此,您无法使用此模块。简而言之,mod_perl是程序员与apache交互的一种方式,可能会改变事情的发生方式。既然你正在分享apache,那么让其他人适应你的变化并不好。

如果您想要更好地控制服务器,则需要获得专用的Web服务器。如何做到这一点取决于您的提供商提供的内容。

答案 2 :(得分:0)

通常您使用cpan工具为您下载并安装模块。它应安装在标准位置,例如/usr/local/lib下(请参阅perl -V以查看@INC目录的设置位置)。正确安装后,你的perl脚本将能够找到模块,就像它是perl的标准部分一样,mod_perl或apache配置中不需要特殊的修改。 (您也可以在不需要root权限的情况下将模块安装到您的主目录。其说明包含在CPAN FAQ中。)

请参阅:

此外,CPAN FAQ本身也有很多信息。

编辑:在所有事情之后,你的问题的真正答案似乎是“你不能;你需要找到一个不同的模块来做你需要的,不需要mod_perl”。

答案 3 :(得分:-2)

只需将解压缩的模块放到/path/lib/,下面是您需要的代码,以便包含此模块。


#!/usr/bin/perl -w
use diagnostics;
use warnings;
use lib "$ENV{DOCUMENT_ROOT}/path/lib/";
unshift @INC , "$ENV{DOCUMENT_ROOT}/path/lib/";
use modulename;