"Web服务器获取CGI文件而非执行CGI文件",在尝试运行Bugzilla时。

3

免责声明:我知道这个问题听起来很愚蠢。但我不是新手,我已经尝试过所有我所知道的和能够找到的关于这个问题的帮助。我已经在论坛上搜索了这个问题并尝试了所有给出的修复方法,但都没有帮助我,因此提出这个问题。

我访问过的主题:

现在问题来了:

我的确切问题

我在bitnamil lampstack上安装了bugzilla。lampstack已经成功运行了另外两个应用程序。在安装了bugzilla之后,当我尝试访问页面时,我可以在浏览器上看到整个perl脚本。运行自己的服务器检查会显示以下内容:

测试通过 Web服务器在$webservergroup组ID下运行。

测试通过 获得了挂锁图片。

测试失败 Web服务器正在获取而不是执行CGI文件。

我在我的设置中所做的事情

  1. The bugzilla.conf file (which gets pulled in httpd.conf) has the following settings enabled

    > AddHandler cgi-script .cgi .pl
    >
    >    Options +MultiViews +ExecCGI
    >
    >    DirectoryIndex index.cgi
    >
    >    AllowOverride All
    
  2. The "AddHandler cgi-script .cgi .pl" is already enabled in my httpd.conf file.

  3. I have not enabled separately +ExecCGI for all directories in httpd.conf but even that does not solve the problem
我在这里做错了什么?
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文件被“处理”。而将AllowOverride设置为All则存在安全问题。FollowSymLinks的原因是我的htdocs中的bugzilla目录是指向系统其他位置的符号链接。
您运行了checksetup.pl吗?它应该已经为您调整了所有权限,但请检查您的Web服务器运行的组是否具有读取和执行权限。

对我来说,AllowOverride ... 没有起作用,不得不使用 All - undefined

1
yellavon 的回答解决了我的问题: cgi脚本未执行 以下是他的回答副本:
确保在 httpd.conf 文件中加载了 CGI 模块: LoadModule cgi_module modules/mod_cgi.so 或者 LoadModule cgi_module modules/mod_cgid.so,具体取决于你使用的 Apache 版本。 你还可以阅读有关 CGI 动态内容的其他解决方案。

1

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

修复方法:

sudo a2enmod cgi 

sudo service apache2 restart

要检查模块是否已加载,在Ubuntu上执行以下操作:

apache2ctl -M | grep cgi
 cgi_module (shared)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接