1. 程式人生 > >搭建ThinkCMF訪問Nginx報500錯誤,日誌出現的open_basedir的問題

搭建ThinkCMF訪問Nginx報500錯誤,日誌出現的open_basedir的問題

Open_basedir介紹

open_basedir 將PHP所能開啟的檔案限制在指定的目錄樹中,包括檔案本身。當程式要使用例如fopen()或file_get_contents()開啟一個檔案時,這個檔案的位置將會被檢查。當檔案在指定的目錄樹之外時,程式將拒絕開啟。本指令不受安全模式開啟或關閉的影響。

 事情起因:  ThinkCMF專案是從阿里雲伺服器Copy下來的,然後上傳到騰訊雲伺服器,兩臺伺服器安裝環境都是Lnmp一鍵安裝。阿里雲伺服器上面訪問完全沒問題,遷移到騰訊雲後搭建專案訪問時日誌報Open_basedir錯誤。

2018/08/09 10:28:58 [error] 10209#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning:  require(): open_basedir restriction in effect. File(/home/wwwroot/ThinkCMF/simplewind/thinkphp/base.php) is not within the allowed path(s): (/home/wwwroot/ThinkCMF/public/:/proc/) in /home/wwwroot/ThinkCMF/public/index.php on line 38

 事情經過:  排查了一會,發現需要修改fastcgi.conf下面的open_basedir的路徑。(位置:/usr/local/nginx/conf/)

 原來預設是"open_basedir=$document_root/:/tmp/:/proc/" 。

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

 後來修改為如下:因為我的專案站點目錄是/home/wwwroot/。

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/../:/tmp/:/proc/";

重啟 service nginx restart 

以上修改後重啟Nginx後站點訪問正常了。當然了這只是其中一種方法,希望能對你有所幫助。