为什么使用文件作为缓存驱动,有时候创建的文件没有权限?
程序使用文件做为缓存驱动,有时候发现会server error,发现是file_put_contents错误,是创建的缓存文件权限不够,不懂这是什么情况?
补充一下:肯定是给storage设置了权限的,这里疑惑的是这个问题是小概率出现的。
补充错误提示:file_put_contents(/codes/chain/storage/framework/cache/data/ef/1b/ef1bceb9a53905150469c7ca2eefc5c7c294e6ac): failed to open stream: No such file or directory {“exception”:”[object] (ErrorException(code: 0): file_put_contents(/codes/chain/storage/framework/cache/data/ef/1b/ef1bceb9a53905150469c7ca2eefc5c7c294e6ac): failed to open stream: No such file or directory at /codes/xinhua/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:133)
对应的文件权限:644,但是所属的用户和用户组特别奇怪
最新补充:并不清楚框架会在什么情况下偶尔会创建644权限的缓存文件,目前我是进入到容器内给storage授权为www-data:www-data 755的权限,并没有找到更好的办法解决这个问题,这意味着我在部署新项目或者重新构建镜像的时候需要再次进入容器去给文件夹授权,但是应该还是解决不了问题,毕竟上面的截图显示的所属用户和用户组是33 tape
:joy:没有人遇到这个问题么,触发频率好像不低
贴图出来啊,看下文件归属
如果是win系统,可能是文件被占用,也就是已经有进程在写入了,但是提示还是没有权限,放在linux下面设置好权限就没事了
是否会用到root权限,cli模式是会发生
我也遇到过类似的情况,感觉是使用
git pull
时权限变了,git pull
是使用root权限执行的,拉取的文件就变成了root
权限,导致www
用户没有权限看下php-fpm进程用户是不是root用户导致的权限不够
我曾经遇到过日志文件是root权限 无法写入,后来排查原因是因为用了队列,队列的执行用户是root,如果是队列先创建了日志文件就会出现权限不足。
有没有可能是类似的情况?
去我的提问看下