天天看點

php file_put_contents不能寫入問題一、權限問題二、目标目錄不存在三、php.ini中 open_basedir 進行了限制四、SELinux限制

以下各種原因都可能導緻 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】

重新開機機器即可。