为什么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已完全禁用。
干杯