在Fedora启动时成功启动带有Passenger / mod_rails的Apache

时间:2012-01-11 18:58:23

标签: ruby-on-rails fedora passenger mod-rails

PREMISE AND PURPOSE

关于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脚本的简单方法,我也会很感激。

1 个答案:

答案 0 :(得分:0)

您使用错误的方法处理问题。你应该不能在你的系统上禁用SELinux。您需要做的是,尝试使用SELinux Troubleshooter找出问题,并添加规则以允许所需的操作。通常它们会为您提供运行所需的命令。

首先确保您使用的是最新版本,如果问题仍然存在,请考虑创建错误报告here,您将获得开发人员的帮助。