如何使apache运行cgi而不显示文本?


12

我正在尝试在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的文本,而不是执行脚本。知道如何解决吗?

Answers:


18

您是否加载了mod_cgi模块?您可以查看目录/ etc / apache2 / mods-enabled /是否具有符号链接cgi.load。如果没有这样的符号链接,则可以通过运行来创建它

sudo a2enmod cgi

然后重新启动Apache:

sudo service apache2 restart

您可以运行man a2enmod以查看a2enmod功能。


从旧服务器迁移的过程中,我在Ubuntu 14.04上遇到了类似的问题。我从没想过cgi默认情况下会被禁用,这与旧服务器不一样。这样就解决了!Plz在stackoverflow.com/questions/15199198/…上建议它们相同。谢谢!
user3215 2014年

我有符号链接,但cgi仍未运行。
Whitecat '16

1

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

$使

$进行安装

$ 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中的路径

启用S​​criptsock cgisock行

在ScriptAlias之后更改Directory中的路径以适合我的系统

启用行AddHandler cgi-script .cgi

保存更改并通过以下命令开始使用Apache:

$ / usr / local / apache2 / bin / apachectl -k开始

希望这可以帮助任何为此苦苦挣扎的人;)


感谢您的分享,我在追踪时遇到了麻烦,您介意将其组织得更好吗?
user230910 '19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.