我在httpd:
的配置文件的VirtualHost选项卡中创建了以下指令 ScriptAlias /cgi-bin/ "/usr/myhome/cgi"
<Directory "/usr/myhome/cgi/">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
我还创建了shell脚本:
#! /bin/sh
echo "Content-type: text/html"
echo
echo
echo Hello
myhome / cgi目录中的。
但是,我无法运行http://server.com/cgi-bin/1.sh
我收到“内部服务器错误”。
httpd日志文件显示:
[Mon Jul 28 21:18:19 2014] [error] [client 128.237.220.69] /bin/sh: /usr/myhome/cgi/1.sh: Permission denied
[Mon Jul 28 21:18:19 2014] [error] [client 128.237.220.69] Premature end of script headers: 1.sh
即使我将目录的权限更改为全局可读和可执行,并且脚本也使用chmod 0777(只是为了确保它可以执行任何操作)。
任何想法如何调试权限被拒绝的错误来源是什么?
答案 0 :(得分:0)
您至少需要Options +ExecCGI
和AddHandler cgi-script
。
http://httpd.apache.org/docs/2.2/howto/cgi.html
编辑 gah my bad我完全错过了您使用ScriptAlias
,但我不确定您的文件路径should be quoted?