请帮忙!我真的很难解决这个问题!
我有一个CGI perl脚本,当从Apache HTTP服务器执行时,它总是在以下行失败:
tie %db, 'MLDBM', "$data_path/$db_name.db", O_RDONLY, 0640 or die $!
,错误是权限被拒绝:
软件错误:
/ var / www / cgi-bin / rich / pages / display line 381中的权限被拒绝。
如需帮助,请发送邮件给网站管理员(root @ localhost),提供此错误消息以及错误的时间和日期。
但是从命令行执行时,它没有任何问题。
我确保要绑定的目录和文件具有正确的权限。
那么我还错过了什么? Apache的httpd.conf中的哪些配置可能会出错?不可否认,我之前没有使用Apache HTTP服务器,所以这是我第一次玩它。但是,我不止一次阅读这些手册来寻找我可能错的东西,但我没有注意到任何事情。但我当然错了。
谢谢!
答案 0 :(得分:0)
您是否确认$data_path
和$db_name
包含您认为他们的行为?
$data_path
是绝对路径,不依赖于活动用户的身份或主目录吗?
ls -l $data_path/$db_name.db
显示文件的所有权和权限是什么?
我从来没有碰过(或听说过)任何会阻止CGI进程获得打开文件权限的apache,所以我非常怀疑它是一个apache配置问题。很可能它正在寻找错误的文件,或者文件的权限对于apache运行CGI进程的用户来说是不正确的。