У меня Ubuntu 16.04 с Apache2 и php7. Я не хочу читать некоторые файлы журналов с помощью php и распечатывать их. Поэтому я делаю простой
readfile("/var/log/apache2/access.log");
Но это не работает. Я получаю такую ошибку:
Warning: readfile(/var/log/apache2/access.log): failed to open stream: Permission denied in /var/www/test.php on line 2
Я совершенно уверен, что правильно установил разрешения, Apache и php работают как www-данные, поэтому я добавил пользовательские www-данные в группы «adm» и «syslog», поскольку эти группы имеют разрешения на чтение для всего путь к файлу и сам файл. Разрешения по умолчанию - 640, но только если я установлю, например, 647, файл будет доступен для чтения для php / apache. Даже 644 или 646 недостаточно.
Это почему? Нужно ли мне что-то менять в конфигурации Apache vhost?
Дополнение: ls -alp / var / log / apache2
drw-r----- 2 root adm 4096 Oct 25 11:07 ./
drwxr-xr-x 9 root syslog 4096 Oct 25 10:39 ../
-rw-r----- 1 root adm 47861 Oct 25 14:01 access.log
-rw-r----- 1 root adm 12014 Oct 25 14:01 error.log
-rw-r----- 1 root adm 0 Oct 25 10:40 other_vhosts_access.log