php fopen函數返回false


使用yum安裝的apache2.4.6   php 7.2.2  正確安裝后使用fopen()函數打開文件時返回false

百度一下又三種原因

1、目錄或者文件夾權限原因 

(可以用   chmod -R 777 根目錄      文件夾設置最高權限) 

2、打開文件路徑錯誤

3、打開方式錯誤(w,r,a)等

已確定不是上述錯誤

手動添加php錯誤報告

//error handler function
function customError($errno, $errstr){ 
         echo "<b>Error:</b> [$errno] $errstr";
 }

//set error handler
set_error_handler("customError");

返回的錯誤信息為

failed to open stream: Permission denied

證明沒有權限

換成只讀模式可以正常打開

猜想是php限制了權限

在php.ini中搜索 open_basedir 查看配置,默認是注釋掉的,也就是說沒有限制權限

最后在網上各種百度

發現centos系統中默認安裝的有selinux 權限管理,並且是默認開啟的

百度了一下selinux,介紹的好像大部分都是直接關閉的,配置起來好像很麻煩

那就還是關閉吧

vim /etc/selinux/conf

可以看到

SELINUX= enforcing

修改為 

SELINUX=disabled

即可

重啟服務器

再次寫入文件正常


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM