如何让apache运行cgi而不是显示文本?
我正在尝试在ubuntu 11.04上安装bugzilla 4
我在httpd.conf中添加了以下内容
AddHandler cgi-script .cgi Options +Indexes +ExecCGI DirectoryIndex index.cgi AllowOverride Limit
但是当我转到URL时,apache显示index.cgi的文本而不是执行脚本。 知道怎么解决吗?
你加载了mod_cgi模块吗? 你可以看到目录/ etc / apache2 / mods-enabled /是否有一个符号链接cgi.load
。 如果没有这样的符号链接,您可以通过运行来创建它
sudo a2enmod cgi
然后重启Apache:
sudo service apache2 restart
你可以运行man a2enmod
来查看a2enmod
function。
在安装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运行
就我而言,我做了以下事情:
将听80改为收听127.0.0.1:80
激活该行:LoadModule cgid_module modules / mod_cgid.so
将SeverName更改为:ServerName 127.0.0.1:80
更改了DocumentRoot和Directory中的路径以适合我的系统
改变了ScriptAlias中的路径
启用了Scriptsock cgisock行
在ScriptAlias之后更改了Directory中的路径以适合我的系统
启用了AddHandler cgi-script .cgi行
保存更改并启动apache:
$ / usr / local / apache2 / bin / apachectl -k start
希望这有助于任何与此斗争的人;)