1. 程式人生 > >lnmp環境 open_basedir restriction in effect 錯誤解決

lnmp環境 open_basedir restriction in effect 錯誤解決

一、開發環境:
Linux  CentOS 6.7 PHP 5.6.15  nginx 1.10.1
二、問題描述
專案訪問的時候報如下錯誤:
Warning : require(): open_basedir restriction in effect. File(/data/www/basic/vendor/autoload.php) is not within the allowed path(s): (/data/www/basic/web/:/tmp/:/proc/) in 
/data/www/basic/web/index.php  on line  5
Warning : require(/data/www/basic/vendor/autoload.php): failed to open stream: Operation not permitted in  /data/www/basic/web/index.php  on line  5
Fatal error : require(): Failed opening required '/data/www/basic/web/../vendor/autoload.php' (include_path='.:/php/includes') in 
/data/www/basic/web/index.php  on line  5

三、問題解決
1、nginx錯誤日誌顯示,訪問指令碼不在 open_basedir的限定目錄裡面,配置open_basedir 一般會在php.ini 或 nginx 配置檔案裡面。

2、首先檢測php.ini 我發現並沒有配置 open_basedir 。

3、然後檢測nginx配置,在nginx配置檔案 nginx.conf 新增

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
4、在nginx專案配置檔案中新增 set $basedir "open_basedir= $document_root :/tmp/:/proc/:/php/includes/:/home";
$document_root 為網站目錄,例如,網站目錄 /data/ www /blog,應該配置成如下: set $basedir "open_basedir= /data/ www/blog:/tmp/:/proc/:/php/includes/:/home";
配置完之後重啟nginx即可