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 日志权限问题
脑子是个好东西,可惜我给弄丢了。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 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年前

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