2012-01-11 29 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