2014-02-12 4 views
0

У меня есть файлы журналы доступ apache2 сервер в /var/log/apache2/access.logДоступ корневых файлов с apache2

Место принадлежат root:root.

Что я хочу сделать, это код моего собственного состояния сервера (VirtualHost, обслуживающий файл .php), который будет анализировать access.log и отображать статистику сервера.

Как я могу сделать файл access.log доступным для моего скрипта/VirtualHost, но не для других сайтов на сервере?

ответ

1

Я бы рекомендовал вам перенастроить экземпляр (виртуальный хост) (если возможно) для входа в альтернативное место в вашей файловой системе.

В вашем * .conf файл (находится в подкаталоге/и т.д./HTTPD/или/и т.д./apache2 /) для экземпляра просто изменить протоколирование к месту назначения выбора:

ErrorLog /var/www/{domain}/logs/{domain}-error.log 
CustomLog /var/www/{domain}/logs/{domain}-access.log combined 

Затем убедитесь, что эти изменения (и любые другие, которые вы могли бы сделать), выполнив:

sudo /etc/init.d/httpd configtest 

Затем перезапустите веб-сервер:

sudo /etc/init.d/httpd restart 

Это позволит вам изменить (в зависимости от вашей настройки) местоположение, в которое были записаны файлы, и сделать файл, указанный выше, доступным для VirtualHost, и сохранить другие виртуальные хосты неповрежденными - если они не изменились. Просто убедитесь, что этот каталог принадлежит к правой группе и содержит правильные разрешения для доступа к скрипту.

Я бы рекомендовал вам использовать другое место для того, которое было предоставлено выше, поскольку это всего лишь пример.

Причина я бы рекомендовал не изменять права доступа/вар/Журнал

«/ вар/журнал» содержит в явном виде подробную информации, которая относится ваша операционная система и изменения прав доступа вы также потенциально может быть позволяя «аутсайдерам» получать доступ к важной информации, которая, в свою очередь, может использоваться для компрометации вашей системы.

Лучше всего сохранять разрешения этой папки/каталога как есть.

0

Вы могли бы дать чтение и выполнение для других для /var/log/apache2/ и доступ на чтение к другим для /var/log/apache2/access.log то в вашем PHP скрипт, который будет отображаться состояние сервера можно использовать следующий код, чтобы получить содержимое файла access.log:

$access = shell_exec("cat /var/log/apache2/access.log"); 
Смежные вопросы