【问题标题】:Boot Apache with Passenger/mod_rails successfully when Fedora starts upFedora 启动时使用Passenger/mod_rails 成功启动Apache
【发布时间】:2012-02-08 03:36:54
【问题描述】:

前提和目的

有这个关于 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 的引导序列?我觉得最合适的方法是编写我自己的不使用systemctl/etc/init.d/httpd 脚本,但我想避免这种情况,因为它看起来像一条荆棘之路......但如果我错了,如果你可以建议编写我自己的etc/init.d/httpd 脚本的简单方法,我也将不胜感激。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 问题是,Phusion Passenger 目前没有好的 SELinux 配置文件。我们(作者)对 SELinux 没有很好的理解,而且我们能找到的少量文档也不是很有帮助。如果有人可以贡献一个好的 SELinux 配置文件并愿意维护它,那就太好了。在此之前,不幸的是,完全禁用 SELinux 是让事情正常运行的最简单方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 2013-11-25
    • 1970-01-01
    相关资源
    最近更新 更多