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

我可以使用Perl';共享主机上的Apache2::ASP CPAN模块?,perl,cpan,mod-perl,Perl,Cpan,Mod Perl,我试图在共享托管环境中使用来自CPAN(具体来说)的Perl模块 我尝试将.pm文件复制到我试图使用它的目录中,并按照AuthCookieDBI页面上的说明更新了我的.htaccess文件,但我的Apache日志显示: Invalid command 'PerlModule', perhaps misspelled or defined by a module not included in the server configuration 这似乎是导致错误的原因: PerlModule A

我试图在共享托管环境中使用来自CPAN(具体来说)的Perl模块

我尝试将
.pm
文件复制到我试图使用它的目录中,并按照
AuthCookieDBI
页面上的说明更新了我的
.htaccess
文件,但我的Apache日志显示:

Invalid command 'PerlModule', perhaps misspelled or defined by a module not 
included in the server configuration
这似乎是导致错误的原因:

PerlModule Apache2::AuthCookieDBI

根据报告,这是因为未安装
mod_perl
我在共享主机上(因此无法执行任何需要root权限的操作),因此对此我无能为力吗?

只需将解包的模块放入
/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;

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

见:

  • 在“如何在CPAN下安装模块?”
而且,它本身有很多信息


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

Apache2::AuthCookieDBI需要mod_perl,因此没有它,这个模块对你没有任何用处。

如果你在共享主机上,您很可能没有使用mod_perl。因此,您不能使用此模块。简而言之,mod_perl是程序员与apache交互的一种方式,可能会改变事情的发生方式。因为您正在共享apache,所以让其他人接受您的更改是不好的


如果你想对你的服务器有更多的控制权,你需要一个专用的web服务器。如何实现这一点取决于提供商提供的服务。

手动安装模块只能在异常情况下进行。我认为这是一种异常情况,因为我们使用的是共享主机。这个答案不应该被否决,因为它实际上是有效的。为什么要将可执行代码放在DOCUMENT_ROOT下?这是一个巨大的禁忌。把它放在文件系统的不可浏览部分。原因之一是:能够将代码移动到另一台服务器。“路径”中也可以包含“.”。服务器有
cpan
,但我不是root。@尼克:安装cpan权限不需要root权限。有关指定不同安装目录的信息,请参见常见问题解答;我还添加了更多的引用。关于“无效命令'PerlModule'”错误呢?我应该忽略这个吗?“PerlModule”是mod_perl的命令,您说它没有安装。您应该找到一种不同的身份验证机制,或者将您的主机移动到mod_perl可用的地方。我相信这是一行,
PerlModule Apache2::AuthCookieDBI
。我几乎是从以下位置复制了示例配置:不幸的是,专用主机不是一个选项(我没有权限更改此选项),但无论如何,谢谢。事情超出您的控制并不意味着它们不是一个选项。:)我为我的措词错误道歉;我应该说的是“不幸的是,对于我的具体情况,专用主机不是一种选择”。