Fastcgi

無法啟動新的 RT 實例

  • April 4, 2013

我正在嘗試將 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 設置有時也會導致權限問題,如果您想完全啟用它,則需要特殊設置。

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