以下各种原因都可能导致 file_put_contents写入失败
一、权限问题
没有文件、目录权限
二、目标目录不存在
三、php.ini中 open_basedir 进行了限制
open_basedir 可将用户访问文件的活动范围限制在指定的区域,
假设open_basedir=/home/wwwroot/home/web1/:/tmp/,那么通过web1访问服务器的用户就无法获取服务器上除了/home/wwwroot/home/web1/和/tmp/这两个目录以外的文件。
注意用open_basedir指定的限制实际上是前缀,而不是目录名。
例如,“open_basedir = /dir/user”, 那么目录 “/dir/user” 和 "/dir/user1"都是可以访问的。所以如果要将访问限制在仅为指定的目录,需用斜线结束路径名。
四、SELinux限制
查看SELinux状态:/usr/sbin/sestatus -v
SELinux status: enabled 即为开启状态
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0 设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
2、彻底关闭:修改/etc/selinux/config 文件,
将【SELINUX=enforcing 】改为【SELINUX=disabled】
重启机器即可。