2012-02-18 16 views
12

Estoy configurando un servidor RHEL 6 de producción con RVM y Passenger. He conseguido a través de la instalación de RVM (dir a mi casa), la instalación de pasajeros, y la adición de las líneas necesarias para httpd.conf:¿Por qué se produce este error de permisos con mod_passenger.so?

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 

Pero cuando reinicio de Apache consigo este error ...

$ 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] 

Experimentalmente, establecí toda la ruta comenzando en ~/.rvm/... hasta 777, pero sigo teniendo el mismo error.

¿Alguna idea?

+0

se parece más el módulo de pasajeros tiene problemas de carga de algo: '/home/em/.rvm/gems/[email protected]_3_production/gems/passenger-3.0.11/ext /apache2/mod_passenger.so: no se puede abrir el archivo de objeto compartido: Permiso denegado', verifique con los documentos de los pasajeros que tiene todos los módulos necesarios cargados antes del pasajero – mpapis

Respuesta

15

Resultó que tenía que ver con SELinux.

Los documentos del pasajero discuten here.

Después de instalar pasajeros, encontrar la raíz de pasajeros ...

passenger-config --root 

A continuación, ejecute este ...

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

Esto me llevó un poco más lejos, pero las cosas no funcionaban, terminé siguiendo este [guía] (http: //sergiy.kyrylkov.name/2012/02/26/phusion-passenger-with-apache-on-rhel-6-centos-6-sl-6-with-selinux /). Esto crea una política basada en qué cosas pasajero/apache realmente necesita ejecutar. – Andrew

+1

No funcionó para mí en CentOS 6.5, donde un usuario ha instalado un pasajero de la gema y este usuario gestiona la configuración de Apache. Desactivar SELinux como en la respuesta de @ okliv funciona, por lo que sigue siendo un problema similar de SELinux. – Confusion

14

$ sudo setenforce 0

me ayudó

espero que ayude ¡otros!

ACTUALIZACIÓN

tengo que decir que por encima solución es temporal (hasta reiniciar)

así, por lo que esta respuesta tiene popularidad me dejó mostrarle cómo desactivar SELinux en absoluto ...

aquí está:

plazo

$ sudo vi /etc/sysconfig/selinux 

o

$ sudo vi /etc/selinux/config 

luego encontrar esta línea

SELINUX=enforcing 

y modificarlo para que

SELINUX=disabled 

Guardar configuración de SELinux.

ahora SELinux está completamente deshabilitado.

aplausos

+0

Si quiere apagar selinux, siempre he sido fanático de usar SELINUX = permisivo porque imprime advertencias en lugar de hacer que las cosas no funcionen. –

Cuestiones relacionadas