我使用的是Laravel 5.1,日志设置为每天生成。
我大量使用任务。Web服务器是Apache,因此PHP以
现在,对于队列中的随机峰值,我设置了一个脚本来运行更多的工作进程(队列的消费者)。我面临的问题是,由于日志文件以0644权限生成,其他用户没有写入文件的权限。
我可以想到几个解决方案:
我大量使用任务。Web服务器是Apache,因此PHP以
apache
用户身份执行,所以在一天结束时,由apache用户生成新的日志文件,并且文件权限为0644
。我已经通过Supervisor配置了工作进程,由apache用户运行。(到目前为止都很好)现在,对于队列中的随机峰值,我设置了一个脚本来运行更多的工作进程(队列的消费者)。我面临的问题是,由于日志文件以0644权限生成,其他用户没有写入文件的权限。
我可以想到几个解决方案:
- 以
root
用户身份启动工作进程(无法执行,因为我没有权限) - 每天00:00:00更改文件权限为
0646
的cron任务(也需要root权限) - 手动由当前用户在00:00:00生成日志文件,以便我有权限更改权限为
0646
(不可靠,如果apache
首先创建它会怎样) - 以
apache
用户身份启动工作进程(由于没有root权限,因此不可能) - Unix SE网站上的这个问题
所以我的问题是什么是最好的方法来做到这一点,这对我来说似乎是一个普遍的问题,任何开发人员都可能面临。或者除了上述方法之外,还有没有更好的方法。
apache
运行吗? - ZeissS/etc/crontab/
有一个<user>
字段,可以使用该用户启动cron。 - Junaidapache
)运行。 - Ashwani Agarwal