Почему эта ошибка разрешений возникает с mod_passenger.so?
Я создаю серийный сервер RHEL 6 с RVM и Passenger. Я прошел через установку RVM (в мой домашний каталог), установив Passenger и добавив необходимые строки в httpd.conf
:
LoadModule passenger_module /home/em/.rvm/gems/[email protected]_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /home/em/.rvm/gems/[email protected]_3_production/gems/passenger-3.0.11
PassengerRuby /home/em/.rvm/wrappers/[email protected]_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/[email protected]_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so into server: /home/em/.rvm/gems/[email protected]_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so: cannot open shared object file: Permission denied
[FAILED]
Экспериментально, я установил весь путь, начиная с ~/.rvm/...
до 777, но я все еще получаю ту же ошибку.
Любые мысли?
Ответы
Ответ 1
Оказалось, что это связано с SELinux.
Пассажирские документы обсуждают это здесь.
После установки Passenger найдите корень пассажира...
passenger-config --root
Затем запустите это...
chcon -R -h -t httpd_sys_content_t /path-to-passenger-root
Ответ 2
$ sudo setenforce 0
помог мне
надеюсь, что это поможет другим!
UPDATE
Я должен сказать, что выше решение является временным (до перезагрузки)
поэтому, поскольку этот ответ имеет популярность, позвольте мне показать, как отключить SELinux вообще...
вот он:
бег
$ sudo vi /etc/sysconfig/selinux
или
$ sudo vi /etc/selinux/config
тогда найдите эту строку
SELINUX=enforcing
и измените его на
SELINUX=disabled
сохранить конфигурацию selinux.
теперь SELinux полностью отключен.
веселит