为什么mod_passenger.so会出现权限错误?

12

我正在为RHEL 6服务器设置RVM和Passenger。我已经完成了安装RVM(到我的主目录),安装Passenger,并将所需的行添加到httpd.conf

LoadModule passenger_module /home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11
PassengerRuby /home/em/.rvm/wrappers/ruby-1.9.2-p290@rails_3_production/ruby

但是当我重新启动Apache时,我遇到了这个错误...

$ sudo /sbin/service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: httpd: Syntax error on line 218 of /etc/httpd/conf/httpd.conf: Cannot load /home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so into server: /home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so: cannot open shared object file: Permission denied
                                                           [FAILED]

经过试验,我将从~/.rvm/...开始的整个路径设置为777,但仍然遇到相同的错误。

有什么想法吗?


它看起来更像是乘客模块在加载某些内容时出现了问题:/home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so: cannot open shared object file: Permission denied,请在使用乘客之前查阅乘客文档以确保您已经加载了所有必需的模块。 - mpapis
2个回答

16

$ sudo setenforce 0

这个命令帮助了我。

希望它也能帮到其他人!

更新

我必须说,上面的解决方案是临时的(重启后无效)。

所以,既然这个答案很受欢迎,让我展示如何完全禁用SELinux......

运行以下指令:

$ sudo vi /etc/sysconfig/selinux
或者
$ sudo vi /etc/selinux/config

然后找到这一行

SELINUX=enforcing

并将其更改为

SELINUX=disabled

保存 SELinux 配置。

现在 SELinux 已完全禁用。

干杯!


如果你想关闭SELinux,我一直喜欢使用SELINUX=permissive,因为它会打印警告而不是让事情不能正常工作。 - Rick Smith

16

事实证明与SELinux有关。

Passenger文档在这里讨论了这个问题here

安装Passenger后,找到Passenger根目录...

passenger-config --root

然后运行以下命令...
chcon -R -h -t httpd_sys_content_t /path-to-passenger-root

2
这让我有了一些进展,但仍然存在问题 - 最终遵循了这个指南。该指南创建了一个基于Passenger/Apache实际运行所需的内容的策略。 - Andrew
1
在CentOS 6.5上对我没有起作用,其中一个用户已经从gem安装了passenger并且该用户管理Apache配置。禁用SELinux(如@okliv的答案中所述)可以解决问题,因此仍然存在类似的SELinux问题。 - Confusion

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接