我正在使用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,但我仍然遇到同样的错误。
有什么想法吗?
答案 0 :(得分:17)
事实证明这与SELinux有关。
Passenger docs讨论here。
安装Passenger后,找到Passenger root ...
passenger-config --root
然后运行这个......
chcon -R -h -t httpd_sys_content_t /path-to-passenger-root
答案 1 :(得分:16)
$ sudo setenforce 0
帮助我
希望它能帮到别人!<强>更新强>
我必须说上面的解决方案是暂时的(直到重启)
所以,就这个答案的流行程度而言,让我展示如何完全禁用SELinux ......
这里是:
运行
$ sudo vi /etc/sysconfig/selinux
或
$ sudo vi /etc/selinux/config
然后找到这一行
SELINUX=enforcing
并将其更改为
SELINUX=disabled
保存selinux配置。
现在SELinux已完全禁用。
欢呼声