J'utilise Mac OS X 10.9.4, y compris le serveur Web intégré apache2 avec PHP 5.5.14 de brew (packages: php55, php55-intl, php55-pdo-pgsql, php55-xdebug).
Lorsque vous exécutez cette configuration, cela fonctionne très bien. Cependant, après un certain temps, je vais exécuter 403 erreurs pour chaque demande. J'ai recherché le journal des erreurs apache et trouvé quelque chose comme ceci:
[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
Il me semble que le fichier ne peut plus être lu, et il renvoie le 403 d'une manière ou d'une autre. J'ai déjà découvert certaines limites, mais launchctl retourne que j'ai une limite fixe illimitée sur les fichiers ouverts:
~ $ 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
J'ai également déjà essayé de définir les maxfiles à 4096 avec la commande launchctl limit maxfiles 4096 16384
, mais le problème revient toujours après un certain temps. Une idée de quoi d'autre je peux vérifier?
MISE À JOUR : Lors de l'exécution de la lsof -c httpd
commande comme suggéré par Gordon Davisson, je peux voir qu'il y a beaucoup d'entrées comme les suivantes:
httpd 1361 _www 15u IPv4 0xb306b48659f63853 0t0 TCP localhost:50603->localhost:cslistener (CLOSED)
Je peux dire que l'application que j'utilise utilise des websockets et utilise également une solution de secours lorsque les websockets ne sont pas disponibles ou que l'homologue ne s'exécute pas sur le serveur. Ce qui m'embrouille c'est le (CLOSED)
-part, pourquoi est-il toujours listé?
MISE À JOUR : Après un certain temps, j'ai recherché le port cslistener, qui est en fait 9000, qui est à nouveau le port que xdebug écoute pour le débogage à distance. Donc je suppose que j'ai une mauvaise configuration, ou c'est un bogue dans xdebug (j'utilise XDebug 2.2.5, installé par brew)