我正试图在fedora 19下使用apache2在乘客的轨道上运行ruby并且我在日志中遇到此错误
[2月25日星期二09:37:52.367683 2014] [乘客:错误] [pid 2779] * 由于此错误,无法初始化乘客:无法执行此操作 启动Phusion Passenger看门狗,因为它遇到了 启动期间出现以下错误:无法更改目录 '/tmp/passenger.1.0.2779/generation-1/buffered_uploads'其UID为48 和GID到48:不允许操作(errno = 1)
该目录(/tmp/passenger.1.0.2779)甚至不存在。我认为问题在于selinux。我试着解决它大约4个小时。 Httpd在用户apache和group apache下运行,我试过
cat /var/log/audit/audit.log | grep passenger | audit2allow -M
passenger semodule -i passenger.pp
但仍然没有。
答案 0 :(得分:0)
在您的情况下,您应首先将SELinux切换为Permissive模式,然后尝试捕获审核日志,从启动Apache以运行您的应用程序。1 获得应用程序的主页后,您可以使用日志构建自定义策略。
将SELinux切换到Permissive模式并清理audit.log
] #setenforce 0
] #rm /var/log/audit/audit.log
] #service auditd restart
重启Apache
] #service httpd restart
尝试使用网络浏览器打开您的应用程序 它可能会提供有关应用程序运行时发生的更多信息。
制作自定义策略模块以允许这些操作
] #mkdir work
] #cd work
]#grep httpd /var/log/audit/audit.log | audit2allow -M乘客
] #ls
passenger.pp passenger.te
使用' semodule'加载postgrey政策模块。命令进入当前的SELinux政策:
] #semodule -i passenger.pp
] #setenforce 1
重启Apache
] #service httpd restart
参考文献: http://wiki.centos.org/HowTos/SELinux#head-faa96b3fdd922004cdb988c1989e56191c257c01