Apache PHP / OSX Mavericks: - не удалось открыть поток: слишком много открытых файлов
Недавно я обновился до OSX Mavericks, и с тех пор яЯ начал получать вышеупомянутую ошибку на моей машине для разработки. Там нет очевидной проблемы в коде (этосгенерированный автоматическиYii образец приложения). Что произошло в рамках обновления до Mavericks:
PHP был обновлён с версии 5.2.x, поставляемой в комплекте с OSX Lion, до версии 5.4.x.Я должен был получить Zend Debugger для PHP 5.4, установивZend Server, подняв ZendDebugger.so и удалив Zend Server (все это потому, что Zend неt предоставить отдельную версию их отладчика для php 5.4.x).С тех пор яЯ получаю эту проблему после, возможно, загрузки и перезагрузки сайта несколько раз. После возникновения этой ошибки мой веб-сервер продолжает возвращать ту же ошибку для любого другого приложения, размещенного на localhost. Я должен упомянуть, что статические веб-страницы обслуживаются нормально.
видел несколькопотоки по теме. Большинство указывает на проблемы в коде, когда файловые дескрипторы не закрываются должным образом, тем самым превышая пороговое значение для открытого файла. Я также нашел этонить который, кажется, предполагает, что это может быть проблемой Zend отладчика. Там'такжесообщение об ошибке подал на php 5.2.x. По темеВотЯ попробовал следующее:
$ ulimit -a
который сообщает:
open files (-n) 256
Также,
sysctl -a | grep files
возвращается,
kern.maxfiles = 12288
kern.maxfilesperproc = 10240
kern.maxfiles: 12288
kern.maxfilesperproc: 10240
kern.num_files: 3248
Еще один интересныйнить предлагает повысить этот предел (в настоящее время 256), используя: I '
ulimit -n 1024
Я попробовал все, но ничего не работает. Проблема также не всегда воспроизводима.
Мне интересно используетulimit -n 1024
будет влиять на Apache, так как от того, что ячитай, это влияет на количество файлов, которые может открыть оболочка.
Любая помощь приветствуется.
РЕДАКТИРОВАТЬ:
Перезапускapache
помогает немного, пока ошибка не встретится снова.Небольшое время простоя веб-сервера (без определенного интервала) также помогает.