最近在linux系統下開發一個小程序時,碰到一個很奇怪的問題:目錄的權限都777了,用file_put_contents()卻不能夠向目錄下的文件寫入數據,這是為什么呢?百度了一下,還真有好多的人也破到了這個問題,一般都是說把權限改成777就可以了。可是,我的目錄權限已是777了,目錄下的所有文件也都是可寫的。這就不是這個方法所能解決的了。
那倒底是什么原因呢?為什么權限都777了,就是不能寫入呢?
繼續百度,呵呵,終於在51cto的一個博客里找到了答案:原來是selinux惹得禍。selinux是個什么東東,大家可以百度一下,說是對0-day安全漏洞有幫助。
解決方法:
查看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】
重啟機器即可。
經過上面的設置,file_put_contents()就可以向文件寫入數據。
