我不明白为什么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
答案 0 :(得分:1)
这里的问题很可能是您更改了操作Apache HTTP服务器所使用的用户帐户,而没有相应地调整logrotation的配置:
create 640 root adm
因此logrotate
实用程序将创建具有文件系统权限的新日志文件,您的http服务器进程将无法打开并写入......