PHP file_put_contents:failed to open stream: Permission denied

https://img2.mukewang.com/5c8f51ba00016c9208000299.jpg

环境:
PHP:5.6.31
系统:Ubuntu
THinkPHP5
LNMP一键安装包

问题描述:
经常出现这个没有缓存文件没有权限打开

已经尝试过:
chown -R www.www 目录

chmod -R 777 目录

但只能一时生效,过段时间还会出现

错误原因推测:
我写了一些定时任务,不知道是不是定时任务生成的缓存文件

萧十郎
浏览 808回答 5
5回答

拉丁的传说

查看你的定时任务是否需要写入文件,如果有,那么使用用户权限是什么? web目录权限一般会设置为www,如果定时任务是有root执行的,那么定时任务操作过的文件www用户是没有权限修改的 定时任务如果没有特殊需求,只需要执行web目录里的代码和修改该目录的文件,那么定时任务的执行用户可以修改为www 定时任务crontab指定执行用户

守着星空守着你

定时任务执行的时候估计你是root用户执行,php-fpm用户不同的话是不可以写入的。建议定时任务写入完之后执行 chmod($filename,666); 运行其他用户读取和写入

温温酱

Permission denied:没有权限虽然你 chown -R www.www 但是你PHP的运行用户是www嘛?定时任务的话,你可能手动php task.php了,那php的用户可能是root了

慕田峪4524236

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