2016/11/18

[Linux] CentOS 7 主機遇到 file_put_contents(): failed to open stream: Permission denied 的解決方法

今日在客戶的 Linux (CentOS 7) 主機遇到從來未遇過的事, 不管權限加到多高, 擁有者, 該設定的讀寫權限全設定了。卻仍在網站的 log 看到 file_put_contents(): failed to open stream: Permission denied.

弄了一下午,終於找到原兇了,原來是 SELinux 搞的鬼!

查看 SELinux 的設定狀態
sestatus

暫時關閉,不用重開機的方法
setenforce 0

要完全關閉則需修改 /etc/sysconfig/selinux 把 SELINUX 的設定值從 enforcing 改成 disabled,存檔後再重新開啟主機即會套用設定
SELINUX=disabled

另外在這之前,網站曾處在 httpd 403 forbidden 的錯誤,一併記錄以免忘記 這也是因為 SELinux 在搞鬼,只要下以下指令即可
restorecon -r /var/www/html

以上都是用 root 權限去設定的 感謝有一群社群技術支援的朋友們,才解開這個羅生門~ 

References:

沒有留言: