使用apache2访问根文件

时间:2014-02-12 14:20:05

标签: php apache2

我在/var/log/apache2/access.log

中有我的apache2服务器访问日志文件

该地点归root:root所有。

我想要做的是编写我自己的服务器状态(提供.php文件的VirtualHost),它将解析access.log并显示一些服务器统计信息。

如何为我的脚本/ VirtualHost访问access.log文件,而不为服务器上的其他站点访问?

2 个答案:

答案 0 :(得分:1)

我建议您重新配置(虚拟主机)实例(如果可能)以登录文件系统上的备用位置。

在您的* .conf文件(位于/ etc / httpd /或/ etc / 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访问,并保持其他虚拟主机不变 - 前提是这些文件未更改。只需确保此目录属于正确的组,并包含访问它的脚本的正确权限。

我建议您使用上面提供的位置,因为这只是一个例子。

我建议不要更改/ var / log

上的权限的原因

'/ var / log'目录包含与您的操作系统相关的明确详细信息,以及通过更改您可能允许“局外人”访问关键信息的权限,而这些信息又可能用于危害您的系统。

最好保留此文件夹/目录的权限。

答案 1 :(得分:0)

您可以为/var/log/apache2/的其他人授予读取和执行权限,并为/var/log/apache2/access.log读取其他人的访问权限,然后在您的php脚本中显示服务器状态,使用以下代码获取访问内容.log文件:

$access = shell_exec("cat /var/log/apache2/access.log");