以下各種原因都可能導緻 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】
重新開機機器即可。