Fastcgi
無法啟動新的 RT 實例
我正在嘗試將 RT 4.0.1 的實例(具有本地程式碼定制)從 CentOS 4 伺服器移植到 CentOS 6 伺服器。
我的問題似乎是我無法啟動 fastcgi 腳本。
當apache啟動時,它給出了這個錯誤:
[Mon Mar 25 12:37:37 2013] [warn] FastCGI: server "/opt/rt4/sbin/rt-server.fcgi" (uid 48, gid 48) restarted (pid 1504) suexec policy violation: see suexec log for more details [Mon Mar 25 12:37:37 2013] [warn] FastCGI: server "/opt/rt4/sbin/rt-server.fcgi" (pid 1504) terminated by calling exit with status '107' [Mon Mar 25 12:37:38 2013] [warn] FastCGI: server "/opt/rt4/sbin/rt-server.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
suexec.log 的內容:
[2013-03-25 12:37:37]: uid: (apache/apache) gid: (apache/apache) cmd: rt-server.fcgi [2013-03-25 12:37:37]: cannot run as forbidden uid (48/rt-server.fcgi)
suexec.log 意味著我需要
- 告訴 suexec 允許將 fastcgi 腳本作為 apache 執行(這似乎在 C4 系統上發生);或者
- 弄清楚如何告訴 suexec 以不同的使用者身份執行 fastcgi 腳本
今天我的 google-fu 很弱,我找不到任何一個問題的答案。
站點定義的內容:
FastCgiServer /opt/rt4/sbin/rt-server.fcgi -processes 5 -idle-timeout 180 <VirtualHost *:80> ServerName arrtee.$MYDOMAIN AddDefaultCharset UTF-8 # Pass through requests to display images Alias /NoAuth/images/ /opt/rt4/share/html/NoAuth/images/ ScriptAlias / /opt/rt4/sbin/rt-server.fcgi/ DocumentRoot "/opt/rt4/share/html" <Location /> Order allow,deny Allow from all Options +ExecCGI AddHandler fastcgi-script fcgi </Location> </VirtualHost>
我可以以 root 身份執行 fastgcgi-script,它可以工作。(之後,我將整個 /opt/rt4 樹上的所有權和組成員身份更改回 apache:apache。)
我什至刪除了整個 /opt/rt4 樹並嘗試從原始碼重新安裝,但它仍然無法正常工作。
有人可以告訴我我在這裡缺少什麼嗎?
像在公共論壇上提問這樣的問題是無法治癒的。
就我而言,在 CentOS 6 伺服器上,有一個指令
/etc/httpd/conf.d/fastcgi.conf
:# wrap all fastcgi script calls in suexec FastCgiWrapper On
註釋掉第二行,它可以工作,大概是通過禁用 suexec 安全性。從長遠來看,這可能是問題的錯誤解決方案。
你沒有提到你是如何安裝 fastcgi 的,但在web 部署文件中有一些發行版也需要的註釋:
FastCgiIpcDir /tmp
許多使用者也很幸運地使用了 mod_fcgid,它可以通過EPEL以軟體包的形式獲得。
SELinux 設置有時也會導致權限問題,如果您想完全啟用它,則需要特殊設置。