我正在使用Laravel 5.1,每天都会生成Log。
我大量使用乔布斯。 Web服务器是Apache,因此PHP以apache
用户身份执行,因此在一天结束时,apache用户生成一个新的日志文件,文件权限为0644
。我是通过Supervisor配置的工作人员,由apache用户运行。 (到目前为止一切顺利)
现在Queue中有一个随机峰值,我有一个脚本设置来运行更多的worker(Queue的消费者)。我面临的问题是,由于日志文件是以0644权限生成的,因此其他用户没有写入文件的权限。
我能想到的几个解决方案是 -
root
用户启动工作人员(无法执行,因为我没有权限)0646
的cron(也需要root权限)0646
(不可靠,如果apache
首先创建它,该怎么办) apache
用户身份启动工作人员(因为没有root,所以这是不可能的)所以我的问题是最好的方法是什么,对我来说这似乎是一个普遍的问题,任何开发人员都可能面临这个问题。或者除了上面提到的方法之外还有更好的方法吗?
答案 0 :(得分:0)
[..]其他用户没有文件的写入权限。
您确定要让这些用户直接访问该文件吗?您可以在laravel应用程序中添加一个API来提供此文件(甚至只提供一些过滤后的数据)。这也允许您在应用程序等中拥有更细粒度的访问控制。