为什么此符号链接对 access_log 不起作用

为什么此符号链接对 access_log 不起作用

我创建了一个这样的链接:

/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

默认情况下,www-data是用户,与非 root 用户一样。您可能知道,只有 root 可以读取 httpd 访问日志,这意味着www-data访问将被拒绝。您可以使用 cronjob 将日志复制到/var/www/html或(不建议)以 root 身份运行 httpd。

相关内容