laravel monolog 日志权限问题

今天系统出现了一个问题:

使用了console任务计划,monolog生成的日志文件,权限是:root,而它执行的可能是凌晨,导致之后www用户写入同一个文件,权限不足!

查看了下monolog源码,以及一些资料,在 'RotatingFileHandler' 中,可以修改文件权限:

new RotatingFileHandler($path, $days, $this->parseLevel($level), 777)// 默认是644

然而laravel自己本身,使用的是:

Illuminate\Log\Writer里的useDailyFiles()方法,并不能修改权限,除非修改底层源码!

网上查看资料,有人提出了同样的问题,太良心回答了!!分享下:

https://stackoverflow.com/questions/27674597/laravel-daily-log-created-with-wrong-permissions

简单写下解决方法

1.使用了2个PHP的内置函数:

php_sapi_name()  // 区分的是 cli 还是 apache,nginx等

get_current_user() // 区分的是脚本执行的用户,可能是root、www

然后会各自生成各自的文件

这种方式就是不能生成一个文件

2.直接在服务器上,提前给日志目录,设置 ACL 权限:

setfacl -R -d -m user:www:rwx  laravel/storage/logs/

setfacl -R -d -m group:www:rwx  laravel/storage/logs/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值