Tôi đang chạy Mac OS X 10.9.4, bao gồm máy chủ web apache2 dựng sẵn với PHP 5.5,14 từ brew (gói: php55, php55-intl, php55-pdo-pssql, php55-xdebug).
Khi chạy thiết lập này, nó hoạt động khá tốt. Tuy nhiên, sau một thời gian, tôi sẽ chạy trên 403 lỗi cho mỗi yêu cầu. Tôi đã tra cứu nhật ký lỗi apache và tìm thấy một cái gì đó như sau:
[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
Đối với tôi có vẻ như tập tin không thể đọc được nữa và nó trả về 403 bằng cách nào đó. Tôi đã tìm ra các giới hạn nhất định, nhưng lợi nhuận launchctl tôi có giới hạn cứng không giới hạn đối với các tệp đang mở:
~ $ 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
Tôi cũng đã cố gắng đặt maxfiles thành 4096 bằng lệnh launchctl limit maxfiles 4096 16384
, nhưng vấn đề vẫn trở lại sau một thời gian. Bất cứ ý tưởng nào khác tôi có thể kiểm tra?
CẬP NHẬT : Khi chạy lsof -c httpd
lệnh theo đề xuất của Gordon Davisson, tôi có thể thấy rằng có vô số mục như sau:
httpd 1361 _www 15u IPv4 0xb306b48659f63853 0t0 TCP localhost:50603->localhost:cslistener (CLOSED)
Tôi có thể nói rằng ứng dụng tôi sử dụng đang sử dụng websockets và cũng đang sử dụng dự phòng khi websockets không có sẵn hoặc đối tác không chạy trên máy chủ. Điều khiến tôi bối rối là (CLOSED)
-part, tại sao nó vẫn được liệt kê?
CẬP NHẬT : Sau một thời gian tôi đã tra cứu cổng cslistener, thực sự là 9000, một lần nữa đó là cổng xdebug đang nghe để gỡ lỗi từ xa. Vì vậy, tôi đoán rằng tôi đã có một số cấu hình sai ở đó hoặc đó là một lỗi trong xdebug (Tôi đang sử dụng XDebug 2.2.5, được cài đặt bởi brew)