Então, eu encontrei um poucos outros tópicos sobre esse tipo de problema, mas suas soluções não estão funcionando para mim.
Basicamente, esta é a minha máquina de desenvolvimento e a configuração está bem há algumas semanas, mas de repente estou tendo muitos problemas com esses erros:
[Thu Sep 27 16:28:43 2012] [error] [client 127.0.0.1] FastCGI: comm with server "/Library/WebServer/Documents/php5.external" aborted: idle timeout (60 sec)
[Thu Sep 27 16:28:43 2012] [error] [client 127.0.0.1] FastCGI: incomplete headers (0 bytes) received from server "/Library/WebServer/Documents/php5.external"
Eu não mudei nada relacionado à configuração do servidor. Obviamente, algo deve ter mudado, ou eu acabei de ter azar ...
A configuração é a seguinte:
Apache/2.2.22 (Unix) DAV/2 mod_fastcgi/2.4.6 mod_ssl/2.2.22 OpenSSL/0.9.8r
$ php-fpm -v
PHP 5.3.15 (fpm-fcgi) (built: Aug 19 2012 09:06:12)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans
$ sudo lsof -i TCP:9000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
php-fpm 97167 _www 6u IPv4 0xd65451f140772337 0t0 TCP localhost:cslistener (LISTEN)
php-fpm 97174 _www 0u IPv4 0xd65451f140772337 0t0 TCP localhost:cslistener (LISTEN)
php-fpm 97174 _www 3u IPv4 0xd65451f14739c337 0t0 TCP localhost:cslistener->localhost:54750 (CLOSE_WAIT)
$ tail -16 /etc/apache2/httpd.conf
<IfModule mod_fastcgi.c>
FastCGIExternalServer /Library/WebServer/Documents/php5.external -flush -host 127.0.0.1:9000 -idle-timeout 60
AddHandler php5-fcgi .php
Action php5-fcgi /usr/lib/cgi-bin/php5.external
Alias /usr/lib/cgi-bin/ /Library/WebServer/Documents/
<Directory /usr/local/sbin>
Options ExecCGI FollowSymLinks
SetHandler fastcgi-script
Order allow,deny
Allow from all
AllowOverride All
</Directory>
</IfModule>
É praticamente um php-fpm.conf padrão com a localização do log alterada, ondemand gerenciador de processos, pm.max_children = 1 e todo o resto é padrão.
Eu tentei reiniciar o apache dezenas de vezes e matar todos os processos do php-fpm, em diferentes ordens.
Todas as sugestões serão encorajadas, bem-vindas, apreciadas, julgadas e esperadas.
ATUALIZAÇÃO 28/09/2012
Ok, então usei este tutorial e tentei a abordagem de soquete para ver se era uma colisão de porta TCP - acaba por não. O uso de sockets também não ajudou as mensagens de erro a cada 10 segundos como estas:
Para TCP:
[28-Sep-2012 08:44:58] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (48)
[28-Sep-2012 08:44:58] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (48)
[28-Sep-2012 08:44:58] ERROR: FPM initialization failed
[28-Sep-2012 08:44:58] ERROR: FPM initialization failed
Para soquetes:
[28-Sep-2012 08:48:32] ERROR: An another FPM instance seems to already listen on /tmp/php5-fpm.sock
[28-Sep-2012 08:48:32] ERROR: An another FPM instance seems to already listen on /tmp/php5-fpm.sock
[28-Sep-2012 08:48:32] ERROR: FPM initialization failed
[28-Sep-2012 08:48:32] ERROR: FPM initialization failed
Eu descobri como resolver isso, e está no tutorial que acabei de vincular. A configuração do plist do agente de ativação precisa especificar RunOnlyOnce. Não tenho certeza se isso é seguro para o TCP.
Eu tenho algum progresso, o que pode tornar esta questão muito específica. Eu uso o NetBeans para desenvolvimento, e quando eu tentei iniciar uma sessão de depuração usando o xdebug, ele carrega bem - legal - mas assim que o código precisa de pausa em um ponto de interrupção, estou de volta ao quadrado 1. comm with server ... aborted: idle timeout
Apenas para cobrir todas as minhas bases, defino -idle-timeout em httpd.conf para 300. Sem dados.
Se eu desligar o NetBeans e não tentar (nunca) iniciar uma sessão de depuração, o servidor não morrerá, ele se comportará como pretendido.
Estou prestes a tentar reiniciar o meu MacBook, mas sinceramente isso não deveria ser uma solução válida.