ruby-on-rails - Fedora 启动时使用Passenger/mod_rails 成功启动Apache

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

前提和目的

有关于 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脚本,我也很感激。

最佳答案

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

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

关于ruby-on-rails - Fedora 启动时使用Passenger/mod_rails 成功启动Apache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8825060/

相关文章:

ruby-on-rails - Node.js 作为 Rails 的替代品?

php - 通过php远程mysql数据库

c++ - 在 Fedora 20 上构建 Blender,OSL 编译失败

python - 如何在 Fedora 上为 Python 启用 unicode?

ruby-on-rails - 乘客 Rails 4 应用程序启动 = 未初始化的常量 ActiveModel::Serializer

ruby-on-rails - Rails 2 应用程序 + RubyGems 1.8.7 失败

ruby-on-rails - 模特还是 helper ? - rails

ruby-on-rails - Rails,has_many :through, 未定义方法 `to_sym` 为 nil:NilClass

ruby-on-rails - 升级到 Ruby 版本 2.1.2,乘客仍然在 1.9.3

c++ - 在 Rails 应用程序中使用 C++ 解决方案