我正在尝试帮助同事在Mac上进行测试设置,以便他可以运行CGI脚本。我是一个Linux家伙,而且他不是服务器人,所以在我们之间我们无法获得最基本的设置。这是我们到目前为止所做的:
安装/启用apache:
sudo apachectl start
编辑文件/etc/apache2/httpd.conf
并取消注释此行:
#AddHandler cgi-script .cgi
在同一文件中,修改以Options
开头的行,并将+ExecCGI
添加到选项列表中。
在/Library/WebServer/CGI-Executables
中安装示例perl CGI脚本test.cgi,并使其成为可执行文件的。源代码:
#!/opt/local/bin/perl
print "Content-Type: text/html\n\n";
print "<html> <head>\n";
print "<title>Hello, world!</title>";
print "</head>\n";
print "<body>\n";
print "<h1>Hello, world!</h1>\n";
print "</body> </html>\n";
当我们转到URL http://localhost/cgi-bin/test.cgi
时,结果是http错误代码304,这意味着“未修改”。这对我来说没有多大意义。它通常似乎与缓存有关,这似乎与我们的情况无关。
apache错误日志中没有显示任何内容。我们可以告诉apache找到了脚本,因为在我们添加+ ExecCGI选项之前,浏览器会显示脚本的源代码。我们尝试检查权限问题,确保一切都是世界可读和可执行的:
ls -ld /Library/WebServer/CGI-Executables
drwxr-xr-x 7 root wheel 238 Sep 2 13:58 /Library/WebServer/CGI-Executables
ls -l /Library/WebServer/CGI-Executables/test.cgi
-rwxr-xr-x 1 root wheel 343 Sep 2 13:58 /Library/WebServer/CGI-Executables/test.cgi
脚本的所有者和组与脚本所在目录的所有者和组相同,这似乎是合理的。
任何人都可以提出任何可能出错的建议以及解决方法吗?
答案 0 :(得分:1)
我认为您需要在/etc/apache2/httpd.conf中添加一个Options ExecCGI - 将其添加到特定于目录的节
INHERE