El servicio httpd no se puede iniciar: fcgid no puede crear memoria compartida

El servicio httpd no se puede iniciar: fcgid no puede crear memoria compartida

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:

  1. Construí mod_fcgid desde la fuente, lo puse en el directorio /etc/httpd/modules.

  2. Agregué LoadModule fcgid_module modules/mod_fcgid.soa la lista de módulos.

  3. Lo comenté LoadModule cgi_module modules/mod_cgi.soya que no lo necesitaré.

  4. Creé un script contenedor para php y lo coloqué en /var/www/cgi-bin:

  5. Creé un controlador para PHP que apunta al contenedor.

  6. 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 permissivey 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 SELinuxla 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.

información relacionada