如何让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来查看a2enmodfunction。

在安装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

希望这有助于任何与此斗争的人;)