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

我正在使用RVM和Passenger设置生产RHEL 6服务器。 我已经安装了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,但我仍然得到同样的错误。

有什么想法吗?

事实certificate这与SELinux有关。

乘客文档在此讨论。

安装Passenger后,找到Passenger root …

 passenger-config --root 

然后运行这个……

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

$ sudo setenforce 0

帮助过我

希望它能帮到别人!

UPDATE

我不得不说上面的解决方案是暂时的(直到重启)

所以,就这个答案的流行程度而言,让我展示如何完全禁用SELinux ……

这里是:

 $ sudo vi /etc/sysconfig/selinux 

要么

 $ sudo vi /etc/selinux/config 

然后找到这一行

 SELINUX=enforcing 

并将其更改为

 SELINUX=disabled 

保存selinux配置。

现在SELinux已完全禁用。

干杯