brew의 PHP 5.5.14가 내장 된 apache2 웹 서버를 포함하여 Mac OS X 10.9.4를 실행 중입니다 (패키지 : php55, php55-intl, php55-pdo-pgsql, php55-xdebug).
이 설정을 실행할 때 꽤 잘 작동합니다. 그러나 얼마 후 모든 요청에 대해 403 오류가 발생합니다. 아파치 오류 로그를 찾아서 다음과 같은 것을 발견했습니다.
[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
파일을 더 이상 읽을 수없는 것처럼 보이며 어떻게 든 403을 반환합니다. 이미 특정 제한에 대해 알았지 만 launchctl은 열린 파일에 대해 무제한 하드 제한을 가지고 있습니다.
~ $ 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
또한 이미 명령을 사용하여 maxfiles를 4096으로 설정하려고 시도했지만 launchctl limit maxfiles 4096 16384
시간이 지난 후에도 문제가 계속 발생합니다. 내가 확인할 수있는 다른 아이디어가 있습니까?
업데이트 : lsof -c httpd
Gordon Davisson이 제안한대로 명령을 실행할 때 다음과 같은 항목이 많이 있음을 알 수 있습니다.
httpd 1361 _www 15u IPv4 0xb306b48659f63853 0t0 TCP localhost:50603->localhost:cslistener (CLOSED)
내가 사용하는 응용 프로그램은 웹 소켓을 사용하고 있으며 웹 소켓을 사용할 수 없거나 상대방이 서버에서 실행되고 있지 않을 때 대체를 사용하고 있다고 말할 수 있습니다. 내가 혼동하는 (CLOSED)
부분 은 무엇입니까 ? 왜 여전히 나열되어 있습니까?
업데이트 : 얼마 후 cslistener 포트를 찾았습니다. 실제로 9000이며 xdebug가 원격 디버깅을 수신하는 포트입니다. 그래서 거기에 잘못된 구성이 있거나 xdebug의 버그 인 것 같습니다 (brew로 설치 한 XDebug 2.2.5를 사용하고 있습니다)