2012-01-11 66 views
4

前提和目的啓動Apache的與客運/ mod_rails成功時的Fedora啓動

有這個線程約Passenger/mod_rails fails to initialize in Fedora 12 when starting Apache。底線,問題是由於權限,您可以通過調用

setenforce 0 

運行

service httpd start 

,並呼籲

setenforce 1 

才能再回到之前避免這種情況。它工作的很酷,但我希望序列在Fedora重新啓動時自動運行。



問題

我看着/etc/init.d/httpd,發現它只是重定向到etc/rc.d/init.d/functions,關鍵呼叫

systemctl_redirect $0 $1 

所以,我以爲只是圍繞這個電話與setenforce電話像這樣會工作。

setenforce 0 
systemctl_redirect $0 $1 
setenforce 1 

但它不起作用。它會發出這樣的新的錯誤(在httpd的錯誤日誌):

Cannot change the directory '/tmp/passenger.1.0.8581/generation-0/buffered_uploads' its UID to 48 and GID to 48: Operation not permitted (1) 

當我省略了最後setenforce 1,那麼它最後的作品!但顯然我想把它放回某個地方。



問題

我如何掛鉤這些setenforce 0setenforce 1調用的httpd引導順序?我覺得最正確的方法是寫我自己的/etc/init.d/httpd腳本,不使用systemctl,但我想避免這種情況,因爲它看起來像一條棘手的路徑......但如果我錯了,並且如果你可以建議簡單的方法寫我自己的etc/init.d/httpd腳本,我也會很感激。

回答

0

您對問題使用了錯誤的方法。您需要SHOULD不能在您的系統上禁用SELinux。你需要做的是試圖找出問題,使用SELinux Troubleshooter,並添加一條規則來允許所需的操作。通常他們給你你需要運行的命令。

首先確保您使用的是最新版本,那麼,如果問題仍然存在,請考慮創建一個bug報告here,你會得到發展援助。

+1

事情是,目前沒有好的用於Phusion Passenger的SELinux配置文件。我們(作者)對SELinux沒有很好的理解,我們可以找到的小文檔不是很有幫助。如果任何人都可以提供一個好的SELinux配置文件並願意維護它,那麼這將非常棒。在此之前,完全禁用SELinux不幸是最簡單的方法。 – Hongli 2013-08-26 09:58:27