【yii2从Apache迁移到nginx上访问报500错误】

今天迁移yii2项目从Apache到nginx,出现了几个小问题,记录一下

index.php 加上

error_reporting(E_ERROR); ini_set('display_errors', 'yes');

来临时打开错误级别和错误显示,500 是内部错误,一般是程序有问题。

用ip从目录访问不报错,最后看到了域名的.conf配置文件open_basedir=$document_root字段,也就是说把活动限制在了web目录下,

直接从直接从nginx.conf拿出的一段server{} 放在vhost/xxxx.conf里面,没有注意到open_basedir,于是注释掉了这句配置文件

nginx在server{}中加了伪静态配置

location / {  

    if (!-e $request_filename){  

        rewrite ^/(.*) /index.php last;  

    }  

}

页面能打开,刷新一下变成500,再刷新两下又能打开,再刷新又是500状态,如此循环。

nginx拿到错误日志,一下报三条。

2016/04/22 20:56:18 [error] 28923#0: *558 FastCGI sent in stderr: "PHP message: PHP Warning:  realpath(): open_basedir restriction in effect. File(/home/wwwroot/php/zlxoc/trunk/admin) is not within the allowed path(s): (/home/wwwroot/php/zlxoc/trunk/admin/web:/tmp/:/proc/) in /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Module.php on line 220

PHP message: PHP Stack trace:

PHP message: PHP   1. {main}() /home/wwwroot/php/zlxoc/trunk/admin/web/index.php:0

PHP message: PHP   2. yii\base\Application->__construct() /home/wwwroot/php/zlxoc/trunk/admin/web/index.php:17

PHP message: PHP   3. yii\base\Application->preInit() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:202

PHP message: PHP   4. yii\base\Application->setBasePath() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:223

PHP message: PHP   5. yii\base\Module->setBasePath() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:358

PHP message: PHP   6. realpath() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Module.php:220

PHP message: PHP Warning:  include(): open_basedir restriction in effect. File(/home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/InvalidParamException.php) is not within the allowed path(s): (/home/wwwroot/php/zlxoc/trunk/admin/web:/tmp/:/proc/) in /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/BaseYii.php on line 288

PHP message: PHP Stack trace:

PHP message: PHP   1. {main}() /home/wwwroot/php/zlxoc/trunk/admin/web/index.php:0

PHP message: PHP   2. yii\base\Application->__construct() /home/wwwroot/php/zlxoc/trunk/admin/web/index.php:17

PHP message: PHP   3. yii\base\Application->preInit() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:202

PHP message: PHP   4. yii\base\Application->setBasePath() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:223

PHP message: PHP   5. yii\base\Module->setBasePath() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:358

PHP message: PHP   6. spl_autoloa

2016/04/22 20:56:18 [error] 28923#0: *558 FastCGI sent in stderr: "nk/vendor/yiisoft/yii2/base/Application.php:358

PHP message: PHP   6. spl_autoload_call() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:224

PHP message: PHP   7. yii\BaseYii::autoload() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:0

PHP message: PHP Warning:  include(): open_basedir restriction in effect. File(/home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/UnknownClassException.php) is not within the allowed path(s): (/home/wwwroot/php/zlxoc/trunk/admin/web:/tmp/:/proc/) in /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/BaseYii.php on line 288

PHP message: PHP Stack trace:

PHP message: PHP   1. {main}() /home/wwwroot/php/zlxoc/trunk/admin/web/index.php:0

PHP message: PHP   2. yii\base\Application->__construct() /home/wwwroot/php/zlxoc/trunk/admin/web/index.php:17

PHP message: PHP   3. yii\base\Application->preInit() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:202

PHP message: PHP   4. yii\base\Application->setBasePath() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:223

PHP message: PHP   5. yii\base\Module->setBasePath() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:358

PHP message: PHP   6. spl_autoload_call() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:224

PHP message: PHP   7. yii\BaseYii::autoload() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:0

PHP message: PHP   8. spl_autoload_call() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:291

PHP message: PHP   9. yii\BaseYii::autoload() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:0

PHP message: PHP Warning:  include(/home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/UnknownClassException.php): failed to open stream: Operation not permitted in /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/BaseYii.php on line 288

PHP message: PHP Stack trace:

PHP messag

2016/04/22 20:56:18 [error] 28923#0: *558 FastCGI sent in stderr: "ii2/base/Application.php:0

PHP message: PHP   8. spl_autoload_call() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:291

PHP message: PHP   9. yii\BaseYii::autoload() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:0

PHP message: PHP Fatal error:  Class 'yii\base\UnknownClassException' not found in /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/BaseYii.php on line 291

PHP message: PHP Stack trace:

PHP message: PHP   1. {main}() /home/wwwroot/php/zlxoc/trunk/admin/web/index.php:0

PHP message: PHP   2. yii\base\Application->__construct() /home/wwwroot/php/zlxoc/trunk/admin/web/index.php:17

PHP message: PHP   3. yii\base\Application->preInit() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:202

PHP message: PHP   4. yii\base\Application->setBasePath() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:223

PHP message: PHP   5. yii\base\Module->setBasePath() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:358

PHP message: PHP   6. spl_autoload_call() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:224

PHP message: PHP   7. yii\BaseYii::autoload() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:0

PHP message: PHP   8. spl_autoload_call() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:291

PHP message: PHP   9. yii\BaseYii::autoload() /home/wwwroot/php/zlxoc/trunk/vendor/yiisoft/yii2/base/Application.php:0" while reading response header from upstream, client: 192.168.26.97, server: admin.zlxoc.com, request: "GET /weixin/test.html HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "admin.zlxoc.com"

看过日志中间的问题,基本上锁定了一会儿200,一会儿500状态的根源在哪里,还是在open_basedir 上面。

于是重新开启把路径限制在项目根目录下,/etc/init.d/nginx restart ,不再出现此问题

【yii2从Apache迁移到nginx上访问报500错误】的更多相关文章

  1. yii2:doajax(post)会报500错误

    yii2:doajax(post)会报500错误:这是因为yii2开启了防御csrf的攻击机制,可去先去掉,在控制器里去掉:public $enableCsrfValidation = false , ...

  2. 部署网站: 配置项目到iis上运行报目录错误

    配置项目到iis上运行报目录错误 以下三种方法可使用: 1.添加文件访问权限 everyone  (线上环境慎用) 2.重新注册iis 3.web.config 加一段话 在<system.we ...

  3. 解决nginx转发websocket报400错误

    解决nginx转发websocket报400错误 说明 由于个人服务器上面有多个项目,配置了二级域名,需要对二级域名进行转发,在转发工作这快采取了大名鼎鼎的nginx.在这之前所有的项目运行转发都没问 ...

  4. 【Web应用】JAVA网络上传大文件报500错误

    问题描述 当通过 JAVA 网站上传大文件,会报 500 错误. 问题分析 因为 Azure 的 Java 网站都是基于 IIS 转发的,所以我们需要关注 IIS 的文件上传限制以及 requestT ...

  5. Nginx 自定义404、500错误页面跳转

    自定义Nginx错误界面跳转 1.开启Nginx.conf配置文件下的自定义接口参数. http { fastcgi_intercept_errors on; } 2.在Server区域添加自定义的错 ...

  6. .NET core 项目部署在windows 服务器方法以及iis 访问报 500.19错误的解决办法

    将本地发布的服务本地运行没问题,发布上云windows 服务器就报 500.19 0x8007000d 是因为云服务器没有安装.net core相关的插件,比如.NET CORE sdk等,请按照该文 ...

  7. nginx 反向代理报400错误与Host关系

    转载自:https://blog.csdn.net/qq_22208737/article/details/80787396 如果后端真是的服务器设置有类似防盗链或者根据http请求头中的host字段 ...

  8. [DEBUG] spring boot在eclipse中用maven打包成jar访问templates报500错误

    更新:打war包的话只要把html文件放在resources/templates下即可,根本不需要放外面. 配置application.yml和templates放外面这种做法,打war包确实不行. ...

  9. Nginx 反向代理报400错误解决方法!

    如果后端真是的服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,如果反向代理层的nginx不重写请求头中的host字段,将会导致请求失败,报400错误,解决办法: ...

随机推荐

  1. ansible modules开发(一)

    一 模块说明 官方是否有提供的类似功能模块? 可从下面两个连接确定官方提供的模块,以免重复造轮子 官方已发布的模块 http://docs.ansible.com/ansible/modules.ht ...

  2. Python中面向对象的一些关于类变量与实例变量的理解

    1. 要写出有意义的面向对象的代码,最核心的:类.对象.三大特性:继承.封装.多态 类变量与实例变量: class Student(): # 类变量 name = '张' age = 0 def __ ...

  3. [转载]各种java生成word解决方案的优缺点对比

    解决方案 优点 缺点 Jacob 功能强大 直接调用VBA接口,程序异常复杂:服务器必须是:windows系统+安装Office:服务器端自动化com接口容易产生死进程造成服务器宕机 Apache P ...

  4. 【fzu-2261】浪里个浪

    TonyY是一个喜欢到处浪的男人,他的梦想是带着兰兰姐姐浪遍天朝的各个角落,不过在此之前,他需要做好规划. 现在他的手上有一份天朝地图,上面有n个城市,m条交通路径,每条交通路径都是单行道.他已经预先 ...

  5. Linux(CentOS 7) 新增或修改 SSH默认端口

    通过ssh连接到服务器,登录root用户 执行命令编辑sshd配置文件 vi /etc/ssh/sshd_config 找到这一行 # Port 去除#号,修改22 为你想要的端口 重启sshd服务 ...

  6. OC-字符串、数组、字典总结

    #import <Foundation/Foundation.h> /* ∆以NSMutable开头的都是可变类型,以NSMutable开头定义的对象都是可以对数据进行修改: NSStri ...

  7. ubuntu15.10运行android studio出错unable to run mksdcard sdk tool

    问题:ubuntu运行android studio出错unable to run mksdcard sdk tool 系统版本:系统是ubuntu 15.10 64位 确认原因:缺少lib 解决方法: ...

  8. Linux:tr命令详解

    tr tr命令可以对来自标准输入的字符进行替换.压缩和删除 语法 tr(选项)(SET1 SET2) 选项 -c或——complerment:取代所有不属于第一字符集的字符: -d或——delete: ...

  9. java入门学习(3)—循环,选择,基础算法,API概念

    1.顺序结构:也就是顺着程序的前后关系,依次执行.2.选择分支:利用if..else , / switch(){case [ 这个必须是常量]:}; / if..else if….. ….else.. ...

  10. Android MVC,MVP,MVVM模式入门——重构登陆注册功能

    一  MVC模式: M:model,业务逻辑 V:view,对应布局文件 C:Controllor,对应Activity 项目框架: 代码部分: layout文件(适用于MVC和MVP两个Demo): ...