Linux

無法啟動安裝了 Bugzilla 的 Apache 伺服器

  • March 28, 2019

我已經按照此處的指南安裝了 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 文件沒有執行它只是以文本顯示。想法?

好吧,看來我的想法是正確的,SELinux 是問題所在。為了將來參考,當我提出這個建議時,我基本上只是在說你在一個預設啟用 SELinux 並上傳了第三方 Web 應用程序的系統上。我只提一下,以便您將來可以使用相同的速記。

但是,對於您目前的問題,您可以對 SELinux 部分執行以下兩項操作之一:

  1. 通過將 SELinux 更改為許可模式/etc/selinux/config,使其不再實際執行任何操作。我不會完全禁用,因為這肯定會導致文件系統標籤變得異常,並且您可能會決定在將來的某個時候確實需要 SELinux。SELinux 擅長保持目前有效的標籤有效,而不是在重新標記文件系統時。兩者在功能上應該是相同的,只是 Permissive 仍然會寫入日誌文件(它本身應該定期輪換)。
  2. 在網站的 DocumentRoot 上執行一個restorecon -R操作,以便第三方軟體使用 Fedora 項目授予 httpd_t 訪問權限的任何上下文重新標記。如果 Web 伺服器將暴露給大量潛在使用者(如 Internet 或大型 Intranet 站點),這可能更可取。

對於“腳本顯示為文本”的事情,我會驗證是否安裝了 mod_perl。Fedora/RHEL/CentOS/etc 通常會在其中添加一個配置,/etc/httpd/conf.d該配置會添加 mod_perl 的處理程序資訊,預設情況下不安裝。如果沒有安裝,只需執行一個yum install -y mod_perl然後重新啟動 httpd。

如果安裝了它,可能會有更多事情發生,但我認為可能只是沒有安裝 mod_perl。

引用自:https://unix.stackexchange.com/questions/80898