Ich verwende Mac OS X 10.9.4, einschließlich des integrierten Apache2-Webservers mit PHP 5.5.14 von brew (Pakete: php55, php55-intl, php55-pdo-pgsql, php55-xdebug).
Wenn Sie dieses Setup ausführen, funktioniert es recht gut. Nach einiger Zeit werde ich jedoch 403 Fehler für jede Anforderung ausführen. Ich habe das Apache-Fehlerprotokoll nachgeschlagen und Folgendes gefunden:
[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
Mir scheint, dass die Datei nicht mehr gelesen werden kann und irgendwie die 403 zurückgibt. Ich habe bereits einige Beschränkungen herausgefunden, aber launchctl gibt eine unbegrenzte Beschränkung für geöffnete Dateien zurück:
~ $ 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
Ich habe auch schon versucht, die maxfiles mit dem Befehl auf 4096 zu setzen launchctl limit maxfiles 4096 16384
, aber das Problem kehrt nach einiger Zeit immer noch zurück. Irgendeine Idee, was ich sonst noch überprüfen kann?
UPDATE : Wenn lsof -c httpd
ich den von Gordon Davisson vorgeschlagenen Befehl ausführe, sehe ich, dass es eine Menge Einträge wie die folgenden gibt:
httpd 1361 _www 15u IPv4 0xb306b48659f63853 0t0 TCP localhost:50603->localhost:cslistener (CLOSED)
Ich kann sagen, dass die von mir verwendete Anwendung Websockets verwendet und auch ein Fallback verwendet, wenn Websockets nicht verfügbar sind oder das Gegenstück nicht auf dem Server ausgeführt wird. Was mich verwirrt ist das (CLOSED)
-teil, warum ist es noch gelistet?
UPDATE : Nach einiger Zeit habe ich den cslistener-Port nachgeschlagen, der eigentlich 9000 ist. Dies ist wiederum der Port, den xdebug auf das Remote-Debuggen wartet. Ich glaube, ich habe dort eine falsche Konfiguration oder es handelt sich um einen Fehler in xdebug (ich verwende XDebug 2.2.5, installiert von brew).