如何让 apache 读取 apache 日志文件

Ofr*_*viv 3 log-files apache-2.2

我想让 www-data(运行网络服务器的用户)可以读取 apache 访问日志文件,以便我可以通过 HTTPS 提供它,从而避免每次我想检查它时都通过 SSH 连接到服务器的麻烦。

我试过了chmod o+r access.log,但似乎权限会自动重置为-rw-r----- 1 root adm.

and*_*dol 10

如果您正在运行 logrotate,它还会设置新日志文件的权限,这可能是进行更改的好地方。例如,这是 Ubuntu 服务器上的默认 apache2 logrotate。

andreas@halleck:~$ sudo cat /etc/logrotate.d/apache2
/var/log/apache2/*.log {
    weekly
    missingok
    rotate 52
    compress
    dateext
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
            /etc/init.d/apache2 reload > /dev/null
        fi
    endscript
}
Run Code Online (Sandbox Code Playgroud)

如您所见,有一个名为 create? 随意将其更改为您希望新日志文件具有的任何模式和所有权。此外,这里是 logrotate(8) 手册文件中如何描述 create 选项。

创建模式所有者组

旋转后(在运行 postrotate 脚本之前)立即创建日志文件(与刚刚旋转的日志文件同名)。mode 以八进制指定日志文件的模式(与 chmod(2) 相同),owner 指定将拥有日志文件的用户名,group 指定日志文件所属的组。任何日志文件属性都可以省略,在这种情况下,新文件的这些属性将使用与原始日志文件相同的值作为省略的属性。可以使用 nocreate 选项禁用此选项。