我正在尝试在共享托管环境中使用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权限的操作),所以我无能为力吗?
答案 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;