![安装了 Bugzilla 后无法启动 Apache 服务器](https://linux22.com/image/33401/%E5%AE%89%E8%A3%85%E4%BA%86%20Bugzilla%20%E5%90%8E%E6%97%A0%E6%B3%95%E5%90%AF%E5%8A%A8%20Apache%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我已经按照指南安装了 Bugzilla这里但是,当我重新启动 Apache 服务器(以便我可以登录 Bugzilla 系统)时,出现以下错误...
Jun 27 16:10:30 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Jun 27 16:10:30 localhost.localdomain httpd[3519]: AH00526: Syntax error on line 354 of /etc/httpd/conf/httpd.conf:
Jun 27 16:10:30 localhost.localdomain httpd[3519]: Can't locate /var/www/html/bugzilla/mod_perl.pl in @INC (@INC contains: /var/www/html/bugzilla /var/www/html/bugzilla/li...) line 1.\n
Jun 27 16:10:30 localhost.localdomain systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Jun 27 16:10:30 localhost.localdomain httpd[3521]: AH00526: Syntax error on line 354 of /etc/httpd/conf/httpd.conf:
Jun 27 16:10:30 localhost.localdomain httpd[3521]: Can't locate /var/www/html/bugzilla/mod_perl.pl in @INC (@INC contains: /var/www/html/bugzilla /var/www/html/bugzilla/li...) line 1.\n
Jun 27 16:10:30 localhost.localdomain systemd[1]: httpd.service: control process exited, code=exited status=1
Jun 27 16:10:30 localhost.localdomain systemd[1]: Failed to start The Apache HTTP Server.
Jun 27 16:10:30 localhost.localdomain systemd[1]: Unit httpd.service entered failed state.
尽管 /var/www/html/bugzilla/mod_perl.pl 文件存在并且具有足够的文件权限,但情况仍然如此。有想法该怎么解决这个吗? (我正在使用 Fedora v16)
编辑:似乎 SELinux 标签是问题所在,服务器现在启动,我可以访问 bugzilla 页面,但是 cgi 文件没有执行,它只是显示在文本中。想法?
答案1
好吧,看起来我的想法是正确的,SELinux 就是问题所在。为了将来的参考,当我提出建议时,基本上我想说的是,您所在的系统默认启用了 SELinux,并且已经上传了第三方 Web 应用程序。我只是提到这样您将来可以遵循相同的简写。
不过,对于您当前的问题,您可以对 SELinux 部分执行以下两项操作之一:
- 通过将 SELinux 更改为宽容模式,
/etc/selinux/config
使其不再实际执行任何操作。我不会完全禁用,因为这肯定会导致文件系统标签变得不正常,并且您可能会决定在将来的某个时候确实需要 SELinux。 SELinux 擅长保持当前有效的标签有效,但在重新标记文件系统时就不那么擅长了。两者在功能上应该是相同的,只是 Permissive 仍然会写入日志文件(日志文件本身应该定期轮换)。 - 在网站的 DocumentRoot 上执行 a 操作
restorecon -R
,以便使用 Fedora 项目授予 httpd_t 访问权限的任何上下文重新标记第三方软件。如果 Web 服务器将暴露给大量潜在用户(例如互联网或大型 Intranet 站点),这可能是更好的选择。
对于“脚本显示为文本”的情况,我将验证 mod_perl 是否已安装。 Fedora/RHEL/CentOS/etc 通常会添加一个配置来/etc/httpd/conf.d
添加 mod_perl 的处理程序信息,默认情况下不会安装 mod_perl。如果未安装,只需执行 a yum install -y mod_perl
,然后重新启动 httpd。
如果安装了,可能还会发生更多事情,但我认为可能只是没有安装 mod_perl。