在运行SELinux的Cent OS 6.0上,我收到错误"由于此错误导致乘客无法初始化:无法启动Phusion Passenger监视器"
该主题讨论了这个问题。 https://groups.google.com/forum/?fromgroups#!topic/phusion-passenger/qaVUIq2HceE
有没有办法在不禁用SELinux的情况下解决这个问题。似乎没有什么重要的东西,应该配置而不是禁用。
答案 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堆栈)。