我正在使用 RVM 和乘客设置生产 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根...

passenger-config --root

然后运行这个...
chcon -R -h -t httpd_sys_content_t /path-to-passenger-root

关于ruby-on-rails - 为什么 mod_passenger.so 会出现此权限错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9337706/

10-12 22:32