Я создал ссылку, как это:

/var/log/httpd/access_log -> /var/www/html/mylog.txt

с помощью команды:

ln -s /var/log/httpd/access_log /var/www/html/mylog.txt

Я убедился, что следующие файлы / каталоги могут быть прочитаны (0666):

/var/
/var/log/
/var/log/httpd/
/var/log/httpd/access_log
/var/www
/var/www/html
/var/www/html/mylog.txt

Но даже в этом случае, когда я пытаюсь получить доступ к mylog.txt я получаю 403:

запрещено

У вас нет прав доступа к /mylog.txt на этом сервере.

Я пробовал другие методы, такие как:

readfile("/var/log/httpd/access_log");
echo file_get_contents("/var/log/httpd/access_log");

Однако в PHP они оба возвращают false.

Я уверен, что я получил все права правильно, хотя. Что я делаю неправильно?

1 ответ1

1

По умолчанию www-data - это пользователь, такой же, как любой, кто не является пользователем root. Как вы, вероятно, знаете, только root может читать журналы доступа httpd, что означает, что доступ к www-data будет запрещен. Вы можете использовать cronjob для копирования журнала в /var/www/html или (не рекомендуется) запустить httpd от имени пользователя root.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .