Demlemek PHP 5.5.14 ile yerleşik apache2 web sunucusu dahil Mac OS X 10.9.4 çalıştırıyorum (paketleri: php55, php55-intl, php55-pdo-pgsql, php55-xdebug).
Bu kurulumu çalıştırırken oldukça iyi çalışıyor. Ancak, bir süre sonra, her istek için 403 hataları üzerinde çalışacağım. Apache hata günlüğüne baktım ve aşağıdaki gibi bir şey buldum:
[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
Bana artık dosya okunamıyormuş gibi geliyor ve bir şekilde 403'ü döndürüyor. Zaten belirli sınırlar hakkında öğrendim, ancak launchctl döndürür Açık dosyalarda sınırsız bir sabit sınır var:
~ $ 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
Ben de zaten komutla 4096 maxfiles belirtmeye çalıştığımız launchctl limit maxfiles 4096 16384
, ancak sorun hala bir süre sonra döner. Başka neyi kontrol edebileceğime dair bir fikrin var mı?
GÜNCELLEME : lsof -c httpd
Gordon Davisson tarafından önerildiği gibi komutu çalıştırırken , aşağıdaki gibi çok sayıda giriş olduğunu görebiliyorum:
httpd 1361 _www 15u IPv4 0xb306b48659f63853 0t0 TCP localhost:50603->localhost:cslistener (CLOSED)
Kullandığım uygulamanın websockets kullandığını ve websockets kullanılabilir olmadığında veya muadili sunucuda çalışmadığında da bir yedek kullandığını söyleyebilirim. Beni (CLOSED)
şaşırtan şey -parta, neden hala listeleniyor?
GÜNCELLEME : Bir süre sonra, aslında 9000 olan cslistener portunu aradım, bu da xdebug'un uzaktan hata ayıklama için dinlediği port. Sanırım orada yanlış bir konfigürasyonum var ya da xdebug'da bir hata var (demlemek tarafından kurulan XDebug 2.2.5 kullanıyorum)