环境:
PHP:5.6.31
系统:Ubuntu
THinkPHP5
LNMP一键安装包
问题描述:
经常出现这个没有缓存文件没有权限打开
已经尝试过:
chown -R www.www 目录
和
chmod -R 777 目录
但只能一时生效,过段时间还会出现
错误原因推测:
我写了一些定时任务,不知道是不是定时任务生成的缓存文件
环境:
PHP:5.6.31
系统:Ubuntu
THinkPHP5
LNMP一键安装包
问题描述:
经常出现这个没有缓存文件没有权限打开
已经尝试过:
chown -R www.www 目录
和
chmod -R 777 目录
但只能一时生效,过段时间还会出现
错误原因推测:
我写了一些定时任务,不知道是不是定时任务生成的缓存文件
查看你的定时任务是否需要写入文件,如果有,那么使用用户权限是什么?
web目录权限一般会设置为www,如果定时任务是有root执行的,那么定时任务操作过的文件www用户是没有权限修改的
定时任务如果没有特殊需求,只需要执行web目录里的代码和修改该目录的文件,那么定时任务的执行用户可以修改为www
定时任务执行的时候估计你是root用户执行,php-fpm用户不同的话是不可以写入的。建议定时任务写入完之后执行
chmod($filename,666);
运行其他用户读取和写入
Permission denied:没有权限
虽然你
chown -R www.www
但是你PHP的运行用户是www嘛?
定时任务的话,你可能手动php task.php
了,那php的用户可能是root了
我是用laravel 的php artisan config:cache和php artisan config:clear,在删除缓存文件后运行,就解决了,当初大体原因是在开发的时候,本地开发后把整个项目上传上去,导致服务器记录的缓存文件不存在,删除并重置后就解决了,菜鸟一枚,答案不知道对不对,你可以尝试去查下这方面tp有没有解决办法
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答894 阅读✓ 已解决
1 回答592 阅读✓ 已解决
1 回答5.3k 阅读
2 回答5.9k 阅读
1 回答8.8k 阅读✓ 已解决
1 回答6.8k 阅读
1 回答8k 阅读✓ 已解决
应该是定时任务执行后对权限进行了更改,例如你的定时文件 start.sh 可操作用户是 user,当他执行的时候,所有被操作的文件夹及文件都会归属用户都会变成user,或者无法操作。