Apache-2.2

(13) Apache CGI 嘗試的權限被拒絕

  • August 31, 2020

我最近升級了我的 Apache2 伺服器,現在無法執行 CGI 應用程序。我的日誌正在顯示

(13) Permission denied 多次嘗試後無法連接cgi deamon

我了解該錯誤消息意味著 Apache 被拒絕對某些文件的某些權限,並且我對如何追踪和解決問題感到困惑。

錯誤消息中提到的文件真的是被阻止的文件嗎?或者問題可能是由其他一些需要的文件引起的?.cgi 文件就在它一直在的位置,在 /usr/share 下。文件所有權(根)和權限(世界可讀/可執行)與文件及其祖先的始終相同。SELinux 文件標籤保持不變。

SELinux 審核日誌顯示沒有拒絕與 Apache 或 CGI 程序相關聯。在不審計條件的情況下,我啟用了審計,但仍然什麼也沒看到。我短暫地將 SELinux 切換到許可模式,但無濟於事。我什至嘗試在許可模式下重新啟動 Apache。這並沒有解決問題。

關於如何解決這個問題的任何建議?我很想恢復到舊的 Apache。

可能有效,也可能無效,似乎不太可能,但有人遇到了類似的問題,這就是解決方案;

chmod 755 /var/log/httpd/或任何 apache 日誌的目錄,在您的伺服器上。

http://www.mail-archive.com/apache-fp@lists.joshie.com/msg00585.html

雖然這是一個較老的問題,但我想我會添加我的答案,因為我在網際網路上找到適當的解釋或解決方案幾乎沒有成功。

只有在使用事件 MPM(prefork MPM 工作正常)時,我才在 RHEL 7 上使用 Apache 2.4(作為 httpd24 包安裝)出現此問題。SELinux 已經設置為 permissive。

根據關於 CGI 套接字的評論,我檢查了文件:

本質上,使用 mpm-event 時的 CGI 守護程序需要一個套接字文件。由於 Apache 在我的伺服器(以及許多其他伺服器)上的使用者 apache 和組 apache 下執行,包含此套接字文件的文件夾必須具有 apache.apache 的讀寫訪問權限。

不想覆蓋日誌文件夾權限,我選擇在以下位置顯式設置ScriptSock指令conf.modules.d/00-mpm.conf

ScriptSock /var/run/httpd/cgid.sock

然後我確保該httpd目錄存在(注意:您需要通過 配置它tmpfiles.d,就像/var/runtmpfs 一樣)並將所有權更改為 apache.apache。權限保留為預設值 755。

這為我解決了這個問題。

引用自:https://serverfault.com/questions/142801