logs 日志权限问题

最近在开发项目的过程中遇到一个小问题在此记录一下:

最近每次在写日志的地方总会报出一个日志权限的错误

storage/logs/laravel-2019-02-14.log" could not be opened: failed to open stream: Permission denied

最开始的时候一直以为是被别人不小心改动了storage文件夹的权限(ps:这种东西谁会改啊 蠢货!!),于是就给storage改回了777的权限,之后就没继续深究下去。

结果第二天又出现了同样的问题。这我就不开心了,不小心一次就算了,又一个不小心是闹哪样(ps:这时候我还以为是有人在改动权限 蠢哭!!)。然后就跑到logs文件夹下看来一下每个日志的权限。不看不知道,一看吓一跳。
logs 日志权限问题
你这个拥有者变成root是闹哪样。于是进入到日志里面查看完才发先里面有计划任务产生的日志。到这时我才明白原来问题出来计划任务这里。果断去查看正在执行计划任务

logs 日志权限问题

原来如此,当初写计划任务的时候没有加上www。
加上之后的日志文件

logs 日志权限问题
脑子是个好东西,可惜我给弄丢了。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

因为这个问题,我们是分离了日志,计划任务的日志存在laravel-cli-2019-07-29.log 普通的日志存在laravel-2019--07-29.log,当然直接用文件夹分离也可以

4年前 评论
kiti (楼主) 4年前

可以创建www用户执行的crontab文件

4年前 评论
kiti (楼主) 4年前

可以通过permission字段来调整权限,亦可以通过用户组来调整。

        'daily' => [
            'driver' => 'daily',
            'path' => storage_path('logs/laravel.log'),
            'level' => env('LOG_LEVEL','notice'),
            'days' => 7,
            'permission' => 0666
        ],
4年前 评论
kiti (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!