O serviço httpd não consegue iniciar - o fcgid não consegue criar memória compartilhada

O serviço httpd não consegue iniciar - o fcgid não consegue criar memória compartilhada

Não sei por que, mas quando tento iniciar o serviço httpd, ele não inicia.

Configuração do servidor:

OS: CentOS 5.10
PHP: 5.5.7
Apache: 2.2.3

Veja como descobri o que estava acontecendo:

$ sudo service httpd start
Starting httpd:                                            [  OK  ]
$ sudo service httpd status
httpd dead but subsys locked

Então removi o arquivo subsys do httpd e tentei novamente, mas falhou novamente.

Meu processo para adicionar fcgid foi o seguinte:

  1. Eu construí o mod_fcgid a partir do código-fonte, coloquei-o no diretório /etc/httpd/modules.

  2. Anexei LoadModule fcgid_module modules/mod_fcgid.soà lista de módulos

  3. Comentei LoadModule cgi_module modules/mod_cgi.soporque não vou precisar.

  4. Criei um script wrapper para php e coloquei-o em /var/www/cgi-bin:

  5. Criei um manipulador para PHP que aponta para o wrapper.

  6. Então tento iniciar o serviço httpd

A seguir está o erro que recebo em /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

Vejo que diz "Arquivo sai", mas procurei em todos os lugares por arquivos extras com "fcgi" no nome e não consigo encontrar nada.

Não tenho certeza se isso é um problema de permissão ou algo com o SELinux, talvez - ou talvez com o suEXEC?

Agradeceria qualquer orientação, pois nem sei por onde começar a pesquisar.


Tentei novamente e o erro foi um pouco diferente desta vez:

[Mon Dec 16 12:50:23 2013] [emerg] (13)Permission denied: mod_fcgid: Can't create shared memory for size 1200712 bytes

Não tenho certeza de qual pasta ou arquivo preciso alterar a propriedade.


Eu configurei o SELinux para permissivee ele permitiu que o processo iniciasse sem problemas - mas não quero deixar o SELinux como tal. Farei outra pergunta sobre como permitir que Apache, fcgid e PHP trabalhem juntos no SELinux.

Responder1

apenas para testar SELinuxparte, tente desativá-lo e veja se essa é a causa do seu problema:

[alexus@XXXXXXXXXX ~]$ getenforce 
Enforcing
[alexus@XXXXXXXXXX ~]$ sudo setenforce 0
[alexus@XXXXXXXXXX ~]$ getenforce 
Permissive
[alexus@XXXXXXXXXX ~]$ 

Além disso, você está executando isso como chroot por acaso? Eu tive um problema semelhante na época do FreeBSD, mas isso estava relacionado ao jail/chroot.

informação relacionada