Apache2以root用户而不是Apache用户身份创建日志

时间:2018-11-29 08:30:04

标签: apache

我不明白为什么apache2以root而不是Apache用户身份创建日志。这导致了我每天都需要重新启动服务的问题。

这是我为用户配置的envvars

export APACHE_RUN_USER=myuser
export APACHE_RUN_GROUP=myuser

在apache2.conf中,我为用户提供了标准配置:

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

当我运行/重新启动apache时,我以root身份使用命令:

sudo service apache2 restart

如果您需要其他信息,我可以告诉您。

编辑Apache的logrotate配置:

/var/log/apache2/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
                if invoke-rc.d apache2 status > /dev/null 2>&1; then \
                    invoke-rc.d apache2 reload > /dev/null 2>&1; \
                fi;
    endscript
    prerotate
        if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
            run-parts /etc/logrotate.d/httpd-prerotate; \
        fi; \
    endscript
}

这是logrotate.d中显示的所有文件:

alternatives  apache2 apport  apt  certbot  dpkg  fail2ban  lxd  mysql-server  nginx  rsyslog  ufw  unattended-upgrades

1 个答案:

答案 0 :(得分:1)

这里的问题很可能是您更改了操作Apache HTTP服务器所使用的用户帐户,而没有相应地调整logrotation的配置:

create 640 root adm

因此logrotate实用程序将创建具有文件系统权限的新日志文件,您的http服务器进程将无法打开并写入......