Sto eseguendo Mac OS X 10.9.4, incluso il webserver integrato apache2 con PHP 5.5.14 di brew (pacchetti: php55, php55-intl, php55-pdo-pgsql, php55-xdebug).
Quando si esegue questa configurazione funziona abbastanza bene. Tuttavia, dopo qualche tempo, eseguirò 403 errori per ogni richiesta. Ho cercato il registro degli errori di Apache e ho trovato qualcosa di simile al seguente:
[Fri Jul 25 05:28:18 2014] [error] [client 127.0.0.1] PHP Warning: require_once(/Users/daniel/Development/massiveart/sulu-complete/app/bootstrap.php.cache): failed to open stream: Too many open files in /Users/daniel/Development/massiveart/sulu-complete/web/website.php on line 10, referer: http://sulu.lo/de
[Fri Jul 25 05:28:18 2014] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://sulu.lo/de
[Fri Jul 25 05:28:18 2014] [error] [client 127.0.0.1] PHP 1. {main}() /Users/daniel/Development/massiveart/sulu-complete/web/website.php:0, referer: http://sulu.lo/de
[Fri Jul 25 05:28:18 2014] [error] [client 127.0.0.1] PHP Fatal error: require_once(): Failed opening required '/Users/daniel/Development/massiveart/sulu-complete/web/../app/bootstrap.php.cache' (include_path='.:/usr/local/Cellar/php55/5.5.14/lib/php') in /Users/daniel/Development/massiveart/sulu-complete/web/website.php on line 10, referer: http://sulu.lo/de
[Fri Jul 25 05:28:18 2014] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://sulu.lo/de
[Fri Jul 25 05:28:18 2014] [error] [client 127.0.0.1] PHP 1. {main}() /Users/daniel/Development/massiveart/sulu-complete/web/website.php:0, referer: http://sulu.lo/de
[Fri Jul 25 05:28:40 2014] [crit] [client 127.0.0.1] (24)Too many open files: /Users/daniel/Development/massiveart/sulu-complete/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://sulu.lo/de
[Fri Jul 25 05:28:41 2014] [crit] [client 127.0.0.1] (24)Too many open files: /Users/daniel/Development/massiveart/sulu-complete/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://sulu.lo/de
[Fri Jul 25 05:28:41 2014] [crit] [client 127.0.0.1] (24)Too many open files: /Users/daniel/Development/massiveart/sulu-complete/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://sulu.lo/de
[Fri Jul 25 05:28:41 2014] [crit] [client 127.0.0.1] (24)Too many open files: /Users/daniel/Development/massiveart/sulu-complete/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://sulu.lo/de
[Fri Jul 25 05:28:45 2014] [crit] [client 127.0.0.1] (24)Too many open files: /Users/daniel/Development/massiveart/sulu-complete/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://sulu.lo/de
[Fri Jul 25 05:28:45 2014] [crit] [client 127.0.0.1] (24)Too many open files: /Users/daniel/Development/massiveart/sulu-complete/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://sulu.lo/de
Mi sembra che il file non possa più essere letto e in qualche modo restituisce il 403. Ho già scoperto alcuni limiti, ma launchctl restituisce un limite rigido illimitato per i file aperti:
~ $ launchctl limit
cpu unlimited unlimited
filesize unlimited unlimited
data unlimited unlimited
stack 8388608 67104768
core 0 unlimited
rss unlimited unlimited
memlock unlimited unlimited
maxproc 709 1064
maxfiles 256 unlimited
Ho anche già provato a impostare i maxfile su 4096 con il comando launchctl limit maxfiles 4096 16384
, ma il problema ritorna ancora dopo qualche tempo. Hai idea di cos'altro posso controllare?
AGGIORNAMENTO : Quando eseguo il lsof -c httpd
comando come suggerito da Gordon Davisson, posso vedere che ci sono un sacco di voci come la seguente:
httpd 1361 _www 15u IPv4 0xb306b48659f63853 0t0 TCP localhost:50603->localhost:cslistener (CLOSED)
Posso dire che l'applicazione che utilizzo utilizza websocket e utilizza anche un fallback quando i websocket non sono disponibili o la controparte non è in esecuzione sul server. Ciò che mi confonde è la (CLOSED)
parte, perché è ancora elencata?
AGGIORNAMENTO : Dopo qualche tempo ho cercato la porta cslistener, che in realtà è 9000, che è di nuovo quella porta che xdebug è in ascolto per il debug remoto. Quindi immagino di avere una configurazione errata lì, o è un bug in xdebug (sto usando XDebug 2.2.5, installato da brew)