1. 程式人生 > >TP5項目在lnmp環境上線出現500錯誤

TP5項目在lnmp環境上線出現500錯誤

ram pro edi dir error erro perm path all

在windows下沒問題,但是上傳到服務器後訪問接口出現500錯誤

用的是lnmp的環境,文件上傳後把所有權限都打開,都顯示

HTTP ERROR 500的錯誤,服務器內部錯誤


該網頁無法正常運作

mz.kechangfu.cn 目前無法處理此請求。
HTTP ERROR 500

1
2
3
4
5
6



在入口文件index.php中加入

error_reporting(E_ALL);
ini_set(‘display_errors‘, ‘1‘);

1
2

來打印所有錯誤信息

代碼打印出


Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/mz.kchangfu.cn/thinkphp/start.php) is not within the allowed path(s): (/home/wwwroot/mz.kchangfu.cn/public/:/tmp/:/proc/) in /home/wwwroot/mz.kchangfu.cn/public/index.php on line 22


Warning: require(/home/wwwroot/mz.kchangfu.cn/thinkphp/start.php): failed to open stream: Operation not permitted in /home/wwwroot/mz.kchangfu.cn/public/index.php on line 22

Fatal error: require(): Failed opening required ‘/home/wwwroot/mz.kchangfu.cn/public/../thinkphp/start.php‘ (include_path=‘.:/usr/local/php/lib/php‘) in /home/wwwroot/mz.kchangfu.cn/public/index.php on line 22

1
2
3
4
5
6

三、分析錯誤內容

  查看問題描述以及資料,發現是php open_basedir 配置的問題,php不能引入其授權目錄上級及其以上的文件,默認配置在php.ini(/usr/local/php/etc/php.ini),但是我的open_basedir 並沒有配置,默認被註釋了。

#在php.ini
open_basedir = //沒有打開也是空的
#在.user.ini
open_basedir=/home/wwwroot/mz/public:/tmp/:/proc/
#在fastcgi.conf
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

1
2
3
4
5
6

只需把
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
改成

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

1

解決

open_basedir 配置項的文件權限問題,如果遇到了這樣的情況,把php.ini 服務器nginx、Apache的配置文件都檢查下。

TP5項目在lnmp環境上線出現500錯誤