1

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

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

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

4 回答 4

2

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

于 2010-01-09T17:24:02.947 回答
2

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

如果你想更好地控制你的服务器,你需要一个专用的网络服务器。你如何做到这一点取决于你的供应商提供什么。

于 2010-01-09T17:37:19.130 回答
0

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

看:

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

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

于 2010-01-09T17:21:08.500 回答
-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;
于 2010-01-09T17:13:37.027 回答