我在/var/log/apache2/access.log
该地点归root:root
所有。
我想要做的是编写我自己的服务器状态(提供.php文件的VirtualHost),它将解析access.log并显示一些服务器统计信息。
如何为我的脚本/ VirtualHost访问access.log
文件,而不为服务器上的其他站点访问?
答案 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");