0

请帮忙!这个问题我真的要疯了!

我有一个 CGI perl 脚本,当从 Apache HTTP 服务器执行时,它总是在以下行失败:

tie %db, 'MLDBM', "$data_path/$db_name.db", O_RDONLY, 0640 or die $!

并且错误是权限被拒绝:

软件错误:

/var/www/cgi-bin/rich/pages/display 第 381 行的权限被拒绝。

如需帮助,请向网站管理员 (root@localhost) 发送邮件,提供此错误消息以及错误的时间和日期。

但是从命令行执行时,它可以正常工作。

我已确保要绑定的目录和文件具有正确的权限。

那么我还错过了什么?Apache 的 httpd.conf 中的哪些配置可能会出错?诚然,我以前没有任何使用 Apache HTTP 服务器的经验,所以这几乎是我第一次使用它。但是,我不止一次地阅读手册以寻找我可能出错的地方,但我没有注意到任何东西。但我当然可能是错的。

谢谢!!

4

1 回答 1

0

您是否已验证$data_path$db_name包含您认为他们所做的事情?

$data_path不依赖于活动用户的身份或主目录的绝对路径吗?

ls -l $data_path/$db_name.db文件的所有权和权限显示什么?

我从来没有在 apache 中遇到(或听说过)任何会阻止 CGI 进程获得打开文件的权限的东西,所以我非常怀疑这是一个 apache 配置问题。很可能它正在寻找错误的文件或文件的权限对于 apache 正在运行 CGI 进程的用户不正确。

于 2010-06-17T09:22:48.830 回答