Сделайте error_log читаемый апачем

Установка: CentOS 6.6, Apache 2.2.15, php 5.5.21

Я 'm создание сценария PHP, который отображает содержание /var/log/httpd/error_log файл. К сожалению, это не работает. Состояния сообщения об ошибке:

Разрешение, отклоненное в/var/www/domain.com/tools/server-logs-viewer.php на строке 405

Строка 405: $f = fopen($filename, "rb");

У меня есть chmoded 0777 файл, только для проверки, все еще остановка. Таким образом, я предполагаю, что сообщение относится к принадлежности файла. Файл журнала принадлежит root:root, тогда как сценарий PHP принадлежит apache:apache.

Что я могу сделать для предоставления достаточно апачского доступа для чтения к файлу, не ставя под угрозу процесс сообщения об ошибке?

0
задан 31 January 2015 в 00:49
1 ответ

Я много лет не делаю ничего в PHP, но без дополнительной информации я бы проверил пару элементов конфигурации системы и настроек php.ini:

путь к файл журнала

Убедитесь, что пользователь, запускающий apache, может получить доступ к каталогу, в котором находится файл. Это означает, что у него должен быть доступ r + x к каталогам по пути.

Настройки php.ini

Пожалуйста, посмотрите руководство php fopen :

  • safe_mode: в зависимости от версия, которую вы используете (похоже, она была удалена в 5.4.0)
  • open_basedir: отказывается открывать что-либо, не входящее в это дерево.

SELinux, AppArmor

Вы используете SELinux или AppArmor? Это может помешать процессу apache получить доступ к файлу, несмотря на разрешения.

С уважением

1
ответ дан 4 December 2019 в 17:04

Теги

Похожие вопросы