ruby-on-rails – 为什么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,但是我仍然收到同样的错误.

有什么想法吗?

解决方法

原来是与SELinux有关系.

乘客文件讨论here.

安装Passenger后,找到Passenger root …

passenger-config --root

然后运行这个…

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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...