我查阅了很多指南,想找出我的 CGI 无法工作的原因,但似乎找不到原因。我的网站配置如下:
<VirtualHost *:80>
ServerName dev.domain.com
# Directory Root.
DocumentRoot /sites/dev.domain.com/www/
# CGI Directory
ScriptAlias /cgi-bin/ /sites/dev.domain.com/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>
<Directory /sites/dev.domain.com/www/bugzilla>
Options ExecCGI
AddHandler cgi-script cgi pl
</Directory>
# Logfiles
ErrorLog /sites/dev.domain.com/logs/error.log
CustomLog /sites/dev.domain.com/logs/access.log combined
</VirtualHost>
我正在尝试在 /bugzilla 上安装 CGI。我不确定它是否在 cgi-bin 上运行。我还安装了 perl,使用sudo aptitude install libapache2-mod-perl2
更新
CGI bin 不在我的 www 目录中,有没有办法通过命令行对其进行测试?
答案1
首先给出一个明显的答案:您正在重新启动 Apache,对吗?
否则,我认为您不需要明确声明 /cgi-bin 的 +ExecCGI——ScriptAlias 指令应该会自动执行此操作。如果您想要这样做,为什么不直接在 bugzilla 目录上使用 ScriptAlias 指令呢?删除不必要的 Location 和 Directory 部分可能会有所帮助。
这对 cgi-bin 来说可以正常工作吗?如果可以,您可能希望通过使用 ScriptAlias 指令等将功能复制得更接近一些。
如果这些都无济于事,您能告诉我们具体是怎么失败的吗?您遇到了 404 错误吗?您的 cgi 脚本文本?
——Christopher Karel