Saya menjalankan Mac OS X 10.9.4, termasuk server web apache2 bawaan dengan PHP 5.5.14 dari brew (paket: php55, php55-intl, php55-pdo-pgsql, php55-xdebug).
Saat menjalankan pengaturan ini berfungsi dengan baik. Namun, setelah beberapa waktu, saya akan menjalankan 403 kesalahan untuk setiap permintaan. Saya telah mencari log kesalahan apache, dan menemukan sesuatu seperti berikut:
[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
Sepertinya file itu tidak bisa dibaca lagi, dan entah bagaimana mengembalikan 403. Saya sudah mengetahui tentang batas-batas tertentu, tetapi launchctl mengembalikan, saya memiliki batas keras tak terbatas pada file terbuka:
~ $ 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
Saya juga sudah mencoba untuk mengatur maxfiles ke 4096 dengan perintah launchctl limit maxfiles 4096 16384
, tetapi masalah masih kembali setelah beberapa waktu. Ada ide apa lagi yang bisa saya periksa?
UPDATE : Ketika menjalankan lsof -c httpd
perintah seperti yang disarankan oleh Gordon Davisson, saya dapat melihat bahwa ada banyak entri seperti berikut:
httpd 1361 _www 15u IPv4 0xb306b48659f63853 0t0 TCP localhost:50603->localhost:cslistener (CLOSED)
Saya dapat mengatakan bahwa aplikasi yang saya gunakan menggunakan websockets, dan juga menggunakan fallback ketika websockets tidak tersedia atau rekanannya tidak berjalan di server. Yang membingungkan saya adalah (CLOSED)
-bagian, mengapa masih terdaftar?
PEMBARUAN : Setelah beberapa waktu saya mencari port cslistener, yang sebenarnya adalah 9000, yang mana lagi-lagi port xdebug sedang mendengarkan debugging jarak jauh. Jadi saya kira saya telah mendapatkan beberapa konfigurasi yang salah di sana, atau itu adalah bug di xdebug (Saya menggunakan XDebug 2.2.5, diinstal oleh minuman)