ThinkPHP5 在 LNMP 環境下訪問出現 HTTP ERROR 500

ThinkPHP5 在 LNMP 環境下訪問出現 HTTP ERROR 500

版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接和本聲明。
本文連接: https://blog.csdn.net/gu_wen_jie/article/details/83030862

ThinkPHP5 在 LNMP 環境下訪問出現 HTTP ERROR 500

這個問題之前遇到過很幾回,今天恰好遇到一個朋友又問我來着,解決完了,想着就給記錄一下吧,問題無論大小,記錄下來 ~~~
固然,這個並非TP5框架問題了,你換一個框架使用LNMP的的命令模式配置或者手動文件配置項目也會出現這種狀況,那麼爲何會出現呢?
以TP5爲例:
首先出錯了,會出現這樣一個頁面(500…)
在這裏插入圖片描述php

查錯

這個時候彆着急,你得知道這是爲何出現這個500錯誤。來個簡單的,在入口文件 index.php中加入:markdown

//打開全部錯誤報錯級別 error_reporting(E_ALL); ini_set('display_errors', '1'); 
  • 1
  • 2
  • 3

運行,如今你會看到這樣一個錯誤信息:
在這裏插入圖片描述
看到這個報錯信息就很清楚了,這是由於框架

因爲 open_basedir 配置的問題致使php不能引入其受權目錄上級及其以上的文件形成。
  • 1

知道了緣由就好解決了,咱們先來看一下第一個關於open_basedir的配置
注意:如下全部路徑信息僅供參考。atom

//php.ini文件 path:/usr/local/php/etc/php.ini ;open_basedir = 
  • 1
  • 2

若是不出意外,你的是默認註釋狀態,不用理會,來看下一個spa

//.user.ini文件 path:/home/wwwroot/default/.user.ini //找不到使用命令 find / -name .user.ini open_basedir=/home/wwwroot/default:/tmp/:/proc/ 
  • 1
  • 2
  • 3

到這裏我想就很明白了,就是由於存放項目路徑問題,已經存在設置的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/:/"; 
  • 1
  • 2
  • 3
  • 4

如今想要該項目運行起來只須要修改fasrcgi.conf中的這句話爲:code

fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/wwwroot/:/tmp/:/proc/:/"; 
  • 1

保存退出,如今重啓運行便可。blog

補充

固然這個地方這麼作是不太完善的,你須要的是對每一個項目作配置,這個地方其實不須要修改,可是這樣確實能夠解決問題,好比,你能夠這樣,在php.ini中添加這樣兩行代碼token

[HOST=你的域名] open_basedir=/home/wwwroot/項目文件夾/:/tmp/ [PATH=/home/wwwroot/wwwroot/項目文件夾/public]
相關文章
相關標籤/搜索