Назад | Перейти на главную страницу

Apache случайно теряет разрешение на просмотр файлов

У меня есть сервер (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).

Возможные решения:

  • Увеличить максимальное количество открытых файлов (ulimit)
  • Уменьшите количество файлов журнала
  • Проверьте, закрывает ли код PHP все файлы

Смотрите также Ограничение дескриптора файла в документации Apache.

Где находится хранилище файловой системы? Требуется ли Kerberos для доступа к данным, AFS или что-то еще, чтобы ваша проблема заключалась в истечении срока действия билета?