很多laravel框架开发者可能都会遇到类似的问题。在开发中有时候可以正常反馈报错,但是有时候确显示无权限打开日志。小白的我对这个问题苦恼了很久。
1.首先了解日志文件是怎么产生和运行的
脚本是通过root/work用户跑的 用php内置函数 get_current_user() 获取
个人的开发环境是 cgi/nginx/apache(fast-cgi 网关通用接口)php-fpm 跑的 用php内置函数 php_sapi_name()获取
在每日的开发中如果先开发的脚本出现报错则 会生成 所有者为 root/work的日志文件,导致个人环境对日志没有可写操作(生成的日志文件默认权限是644),同理如果是在web端的开发先生成的日志文件则所有者为开发者本身,导致执行脚本时的报错不能写入日志文件。显示无权限(此图已通过acl权限方式处理,不会出现日志无权限访问的情况)
2.解决方法1
生成两个日志文件,分别以相对应的名字命名(不支持)
解决方法2 acl权限(最优)
setfacl -R -d -m user:www:rwx laravel/storage/logs/
setfacl -R -d -m group:www:rwx laravel/storage/logs/
解决办法3
看一下这里吧 https://stackoverflow.com/questions/27674597/laravel-daily-log-created-with-wrong-permissions