No estoy seguro de por qué, pero cuando intento iniciar el servicio httpd, no se inicia.
Configuración del servidor:
OS: CentOS 5.10
PHP: 5.5.7
Apache: 2.2.3
Así es como descubrí lo que estaba pasando:
$ sudo service httpd start
Starting httpd: [ OK ]
$ sudo service httpd status
httpd dead but subsys locked
Así que eliminé el archivo subsys para httpd y lo intenté de nuevo, pero volvió a fallar.
Mi proceso para agregar fcgid fue el siguiente:
Construí mod_fcgid desde la fuente, lo puse en el directorio /etc/httpd/modules.
Agregué
LoadModule fcgid_module modules/mod_fcgid.so
a la lista de módulos.Lo comenté
LoadModule cgi_module modules/mod_cgi.so
ya que no lo necesitaré.Creé un script contenedor para php y lo coloqué en /var/www/cgi-bin:
Creé un controlador para PHP que apunta al contenedor.
Luego intento iniciar el servicio httpd.
El siguiente es el error que aparece en /var/log/httpd/error_log:
[Mon Dec 16 12:18:26 2013] [notice] SELinux policy enabled; httpd running as context user_u:system_r:httpd_t:s0
[Mon Dec 16 12:18:26 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon Dec 16 12:18:26 2013] [notice] SSL FIPS mode disabled
[Mon Dec 16 12:18:26 2013] [notice] Digest: generating secret for digest authentication ...
[Mon Dec 16 12:18:26 2013] [notice] Digest: done
[Mon Dec 16 12:18:26 2013] [emerg] (17)File exists: mod_fcgid: Can't create shared memory for size 1200712 bytes
Veo que dice "El archivo sale", pero busqué en todas partes archivos adicionales con "fcgi" en el nombre y no puedo encontrar nada.
No estoy seguro de si se trata de un problema de permisos, o quizás algo relacionado con SELinux, ¿o tal vez con suEXEC?
Agradecería cualquier orientación, ya que ni siquiera estoy seguro de por dónde empezar a buscar.
Lo intenté de nuevo y esta vez el error fue ligeramente diferente:
[Mon Dec 16 12:50:23 2013] [emerg] (13)Permission denied: mod_fcgid: Can't create shared memory for size 1200712 bytes
No estoy seguro de qué carpeta o archivo debo cambiar la propiedad.
Configuré SELinux en permissive
y permitió que el proceso comenzara sin problemas, pero no quiero dejar SELinux como tal. Haré otra pregunta sobre cómo permitir que Apache, fcgid y PHP trabajen juntos en SELinux.
Respuesta1
Solo para probar SELinux
la parte, intenta desactivarla y ver si esa es la causa de tu problema:
[alexus@XXXXXXXXXX ~]$ getenforce
Enforcing
[alexus@XXXXXXXXXX ~]$ sudo setenforce 0
[alexus@XXXXXXXXXX ~]$ getenforce
Permissive
[alexus@XXXXXXXXXX ~]$
Además, ¿por casualidad lo estás ejecutando como chroot? Tuve un problema similar en los días de FreeBSD, pero estaba relacionado con jail/chroot.