我正在尝试在 ubuntu 11.04 上安装 bugzilla 4
我已将以下内容添加到我的 httpd.conf
<Directory “/var/www/dev.spincentre/bugzilla”>
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit
</Directory>
但是当我访问 URL 时,apache 会显示 index.cgi 的文本而不是执行脚本。有什么办法可以修复它吗?
答案1
您是否加载了 mod_cgi 模块?您可以查看目录 /etc/apache2/mods-enabled/ 是否有符号链接cgi.load
。如果没有这样的符号链接,您可以通过运行以下命令来创建它
sudo a2enmod cgi
然后重新启动 Apache:
sudo service apache2 restart
您可以运行man a2enmod
看看a2enmod
会发生什么。
答案2
在安装 Apache 2.4 时,我遇到了许多问题需要解决,并且还遇到了同样的问题,即显示文本而不是运行 cgi。解决方案与上面的解决方案不同,上面的解决方案是针对 Apache 2.2 的解决方案
首先,您需要下载 2.4 gz 文件并解压。如果您尝试编译,它会抱怨未找到 APR,因为它不再包含在内。您需要从 Apache 下载 apr 和 apr-util 文件,并将它们解压到您正在编译 Apache 的目录中,并将其解压到名为 的子目录中srclib
,因此您的路径将是./httpd/srclib/apr
和./httpd/srclib/apr-util
。您还必须从目录名称中删除所有版本号。
cd
到你的/path/httpd
目录并编译
$ ./configure --with-included-apr
您的配置将默认为PREFIX=/usr/local/apache2
$ make
$ make install
$ vi PREFIX/conf/httpd.conf
你需要编辑你的httpd.conf
文件来运行你的 cgi
就我而言,我做了以下事情:
改成Listen 80
Listen 127.0.0.1:80
激活该行:
LoadModule cgid_module modules/mod_cgid.so
将 SeverName 更改为:
ServerName 127.0.0.1:80
更改路径DocumentRoot
以<Directory>
适合我的系统
改变了路径ScriptAlias
启用了线路Scriptsock cgisock
<Directory>
更改了之后的路径ScriptAlias
以适合我的系统
启用了线路AddHandler cgi-script .cgi
保存更改并启动 Apache:
$ /usr/local/apache2/bin/apachectl -k start
希望这能帮助任何正在努力解决这个问题的人;)
答案3
如果你的perl模块成功运行了apache2,但是当你打开页面http://localhost/perl/mysite/时不是显示你的文件而是执行脚本,你只需要在.htaccess或者Apache 配置文件, 那是 :
DirectoryIndex: index.pl index.html index.php