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]
相关文章
相关标签/搜索