Log in Laravel 5.1的文件权限

时间:2016-02-03 11:26:02

标签: php linux laravel laravel-5

我正在使用Laravel 5.1,每天都会生成Log。

我大量使用乔布斯。 Web服务器是Apache,因此PHP以apache用户身份执行,因此在一天结束时,apache用户生成一个新的日志文件,文件权限为0644。我是通过Supervisor配置的工作人员,由apache用户运行。 (到目前为止一切顺利)

现在Queue中有一个随机峰值,我有一个脚本设置来运行更多的worker(Queue的消费者)。我面临的问题是,由于日志文件是以0644权限生成的,因此其他用户没有写入文件的权限。

我能想到的几个解决方案是 -

  • root用户启动工作人员(无法执行,因为我没有权限)
  • 每天00:00:00将文件权限更改为0646的cron(也需要root权限)
  • 当前用户在00:00:00手动生成日志文件,这样我就有权将权限更改为0646(不可靠,如果apache首先创建它,该怎么办)
  • apache用户身份启动工作人员(因为没有root,所以这是不可能的)
  • Unix SE网站上的
  • This Question

所以我的问题是最好的方法是什么,对我来说这似乎是一个普遍的问题,任何开发人员都可能面临这个问题。或者除了上面提到的方法之外还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

  

[..]其他用户没有文件的写入权限。

您确定要让这些用户直接访问该文件吗?您可以在laravel应用程序中添加一个API来提供此文件(甚至只提供一些过滤后的数据)。这也允许您在应用程序等中拥有更细粒度的访问控制。