2

免责声明:我知道这个问题听起来很蹩脚。但我不是n00b,我已经做了我所知道的一切,我可以找到帮助。我已经为此搜索了论坛并尝试了所有给出的修复程序,但没有一个对我有帮助,因此提出了这个问题。

我访问过的线程

现在有了那个

我的确切问题

我在 bitnamil 灯组上安装了 bugzilla。Lampstack 已经成功启动并运行了另外两个应用程序。安装 bugzilla 后,当我尝试访问该页面时,我可以在 borwser 上看到我的整个 perl 脚本。运行它自己的服务器检查会告诉我以下信息

TEST-OK Webserver 正在 $webservergroup 中的组 ID 下运行。

TEST-OK 得到挂锁图片。

TEST-FAILED Web 服务器正在获取而不是执行 CGI 文件。

我在我的设置中做了什么

  1. bugzilla.conf 文件(在 httpd.conf 中获取)启用了以下设置

    > AddHandler cgi-script .cgi .pl
    >
    >    Options +MultiViews +ExecCGI
    >
    >    DirectoryIndex index.cgi
    >
    >    AllowOverride All
    
  2. 我的 httpd.conf 文件中已经启用了“AddHandler cgi-script .cgi .pl”。

  3. 我没有为 httpd.conf 中的所有目录单独启用 +ExecCGI,但即使这样也不能解决问题

我在这里做错了什么?

4

3 回答 3

2

您的 bugzilla.conf 中应该有一个目录块,如下所示:

<Directory "/usr/local/apache2/htdocs/bugzilla">
    AddHandler cgi-script .cgi
    Options +ExecCGI +FollowSymLinks
    DirectoryIndex index.cgi index.html
    AllowOverride Limit FileInfo Indexes Options
    AddType application/vnd.mozilla.xul+xml .xul
    AddType application/rdf+xml .rdf
</Directory>

我相信您不希望 .pl 被“处理”。All for AllowOverride 是一个安全问题。FollowSymLinks 是因为我在 htdocs 中的 bugzilla 目录是指向系统上其他位置的符号链接。

你运行了 checksetup.pl 吗?它应该已经为您调整了所有权限,但请检查您的 Web 服务器运行的组是否具有读取和执行权限。

于 2013-03-27T17:15:06.730 回答
1

我在另一个包下载 CGI 文件而不是在服务器上执行它们时遇到了类似的问题。我的问题的答案是在 Ubuntu 服务器 14.04 上,apache 上的模块 CGI 被禁用。修理:

sudo a2enmod cgi 

sudo service apache2 restart

要检查模块是否已加载,在 Ubuntu 上:

apache2ctl -M | grep cgi
 cgi_module (shared)
于 2015-08-07T17:14:09.117 回答
1

耶拉文的回答解决了我的问题: cgi 脚本没有执行

这是他的答案的副本:

确保您在 httpd.conf 文件中加载 CGI 模块: LoadModule cgi_module modules/mod_cgi.so或者 LoadModule cgi_module modules/mod_cgid.so取决于您正在运行的 Apache 版本。您还可以阅读有关使用 CGI 的动态内容的其他解决方案。

于 2016-08-05T05:34:13.800 回答