乘客无法开始投注

时间:2012-07-10 19:33:54

标签: ruby-on-rails ruby centos passenger selinux

在运行SELinux的Cent OS 6.0上,我收到错误"由于此错误导致乘客无法初始化:无法启动Phusion Passenger监视器"

该主题讨论了这个问题。 https://groups.google.com/forum/?fromgroups#!topic/phusion-passenger/qaVUIq2HceE

有没有办法在不禁用SELinux的情况下解决这个问题。似乎没有什么重要的东西,应该配置而不是禁用。

2 个答案:

答案 0 :(得分:3)

由于SELinux对Apache很谨慎,因此您可以尝试允许Apache访问乘客文件和目录。尝试以下,但是YMMV!如果你已经通过gem安装了Phusion Passenger,那么运行此命令来确定Phusion Passenger的根文件夹:

passenger-config --root

然后做

chcon -R -h -t httpd_sys_content_t /path-to-passenger-root

如果你从某种tarball安装了Passenger,请尝试这样做:

chcon -R -h -t httpd_sys_content_t /path/to/passenger/folder

在任何一种情况下重启Apache。

您可能还需要满足SELinux的* httpd_sys_content_t *安全上下文才能访问您的rails应用。您可能还需要执行以下操作:

chcon -R -h -t httpd_sys_content_t /path/to/your/rails/app

也许这对你有用。

答案 1 :(得分:0)

使用chcon只能暂时使用。下次机器重新启动并且SELinux执行重新标记时,配置将丢失。这些文件将被重新标记为适合文件系统所在位置的任何上下文。

如果您将rails应用程序放在/ var / www / html下,那么SELinux将在重新标记时保持上下文,因为SELinux策略表明Web内容应该在哪里。最初,您需要restorecon -R /var/ww/html/path/to/app来设置上下文。

我发现,乘客做了许多SELinux想要否认的东西,所以只是重新开始是不够的。创建策略很容易,但我认为这是一个安全风险。太糟糕了,Rails社区不会让它更容易在普通服务器上部署(即不是Ruby堆栈)。