我使用Symfony v5.4和Monolog,它被设置为(对于不太重要的日志)进行自动日志旋转(monolog的rotating_file
选项)。
问题是,在生产模式下,在live服务器上,当Monolog旋转这样的文件(为第二天创建一个新文件)时,它会将新文件创建为root:root
。
该文件夹中的所有其他日志文件都被创建为apache:apache
。即使某些日志文件不存在,并且Symfony希望在需要时自动创建它,它也会被创建为apache
用户。
Apache 2以apache
用户的身份运行,所以它在写入常规日志文件时没有问题,但是很明显,当它尝试写入新的由Monolog自动旋转的root:root
文件时,它失败了。
我假设某个实际执行旋转的进程正在作为根进程运行,但是--那是哪个进程?这个Monolog的工作是如何安排每天处理的?我没有回避任何关于它的细节。
Symfony本身是通过Apache调用的,Apache以apache
运行。
1条答案
按热度按时间uyhoqukh1#
这可以来自root用户的cronjob或者
sudo
命令。如果文件不存在,这可以创建文件。它们有root所有者,所以apache不能访问它们。