为了账号安全,请及时绑定邮箱和手机立即绑定

PHP file_put_contents:failed to open stream: Permission denied

PHP file_put_contents:failed to open stream: Permission denied

PHP
萧十郎 2019-03-05 13:41:11
环境:PHP:5.6.31系统:UbuntuTHinkPHP5LNMP一键安装包 问题描述:经常出现这个没有缓存文件没有权限打开 已经尝试过:chown -R www.www 目录和chmod -R 777 目录 但只能一时生效,过段时间还会出现 错误原因推测:我写了一些定时任务,不知道是不是定时任务生成的缓存文件
查看完整描述

5 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

查看你的定时任务是否需要写入文件,如果有,那么使用用户权限是什么?

web目录权限一般会设置为www,如果定时任务是有root执行的,那么定时任务操作过的文件www用户是没有权限修改的

定时任务如果没有特殊需求,只需要执行web目录里的代码和修改该目录的文件,那么定时任务的执行用户可以修改为www

定时任务crontab指定执行用户

查看完整回答
反对 回复 2019-03-18
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

定时任务执行的时候估计你是root用户执行,php-fpm用户不同的话是不可以写入的。建议定时任务写入完之后执行

chmod($filename,666);

运行其他用户读取和写入

查看完整回答
反对 回复 2019-03-18
?
温温酱

TA贡献1752条经验 获得超4个赞

Permission denied:没有权限
虽然你

chown -R www.www

但是你PHP的运行用户是www嘛?
定时任务的话,你可能手动php task.php了,那php的用户可能是root了

查看完整回答
反对 回复 2019-03-18
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

我是用laravel 的php artisan config:cache和php artisan config:clear,在删除缓存文件后运行,就解决了,当初大体原因是在开发的时候,本地开发后把整个项目上传上去,导致服务器记录的缓存文件不存在,删除并重置后就解决了,菜鸟一枚,答案不知道对不对,你可以尝试去查下这方面tp有没有解决办法

查看完整回答
反对 回复 2019-03-18
  • 5 回答
  • 0 关注
  • 807 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信