這個問題之前遇到過很幾回,今天恰好遇到一個朋友又問我來着,解決完了,想着就給記錄一下吧,問題無論大小,記錄下來 ~~~
固然,這個並非TP5框架問題了,你換一個框架使用LNMP的的命令模式配置或者手動文件配置項目也會出現這種狀況,那麼爲何會出現呢?
以TP5爲例:
首先出錯了,會出現這樣一個頁面(500…)
php
這個時候彆着急,你得知道這是爲何出現這個500錯誤。來個簡單的,在入口文件 index.php
中加入:markdown
//打開全部錯誤報錯級別 error_reporting(E_ALL); ini_set('display_errors', '1');
運行,如今你會看到這樣一個錯誤信息:
看到這個報錯信息就很清楚了,這是由於框架
因爲 open_basedir 配置的問題致使php不能引入其受權目錄上級及其以上的文件形成。
知道了緣由就好解決了,咱們先來看一下第一個關於open_basedir
的配置注意:如下全部路徑信息僅供參考。
atom
//php.ini文件 path:/usr/local/php/etc/php.ini ;open_basedir =
若是不出意外,你的是默認註釋狀態,不用理會,來看下一個spa
//.user.ini文件 path:/home/wwwroot/default/.user.ini //找不到使用命令 find / -name .user.ini open_basedir=/home/wwwroot/default:/tmp/:/proc/
到這裏我想就很明白了,就是由於存放項目路徑問題,已經存在設置的open_basedir
值和項目目錄不匹配,沒法受權目錄,再來看另外一個地方.net
//fastcgi.conf文件 path:/home/wwwroot/default/.user.ini //找不到使用命令 find / -name fastcgi.conf //最下面一行 fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/:/";
如今想要該項目運行起來只須要修改fasrcgi.conf
中的這句話爲:code
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/wwwroot/:/tmp/:/proc/:/";
保存退出,如今重啓運行便可。blog
固然這個地方這麼作是不太完善的,你須要的是對每一個項目作配置,這個地方其實不須要修改,可是這樣確實能夠解決問題,好比,你能夠這樣,在php.ini
中添加這樣兩行代碼token
[HOST=你的域名] open_basedir=/home/wwwroot/項目文件夾/:/tmp/ [PATH=/home/wwwroot/wwwroot/項目文件夾/public]