У меня есть сервер (Leopard Server, не мой выбор) с Apache и MySQL. Несколько месяцев назад сервер начал выдавать «Запрещенные» ошибки через случайные промежутки времени, предотвращая доступ к приложению PHP. Такое поведение случайно прекратилось.
Несколько дней назад я установил Passenger и развернул приложение Sintra / Rack. Приложение запускается как пользователь acarneg
(например) из /Library/WebServer/Documents/presto/current/public
, acarneg
владеет всей структурой. В _www
пользователь имеет доступ к каталогу через ACL chmod +a "_www allow read,write,..."
.
Все отлично работает! Но после случайного интервала, часто ~ 12 или ~ 24 часов, Passenger выдает ошибку, которая также препятствует запуску приложения PHP. Passenger Error #2. Cannot stat file config.ru. Permission denied.
Но разрешения не изменились (не подтверждены), и все, что нужно сделать для устранения ошибки, это sudo apachectl graceful
.
Если разрешения не меняются и у Apache, похоже, нет законной проблемы, что вызывает этот беспорядок? Почему он прекратился раньше и почему возобновился!?!?!?
Спасибо за помощь!
Ваш Apache, вероятно, достигает максимального предела открытых файлов. Apache вызовет ошибки разрешений, а также объясняет, почему это требует времени и разрешается путем перезагрузки Apache.
Я не очень хорошо знаком с Mac, но должна быть команда для проверки открытых файлов процесса. (например, lsof, pfiles, procfiles).
Возможные решения:
Смотрите также Ограничение дескриптора файла в документации Apache.
Где находится хранилище файловой системы? Требуется ли Kerberos для доступа к данным, AFS или что-то еще, чтобы ваша проблема заключалась в истечении срока действия билета?