【yii2从Apache迁移到nginx上访问报500错误】
【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错误】的更多相关文章
- yii2:doajax(post)会报500错误
yii2:doajax(post)会报500错误:这是因为yii2开启了防御csrf的攻击机制,可去先去掉,在控制器里去掉:public $enableCsrfValidation = false , ...
- 部署网站: 配置项目到iis上运行报目录错误
配置项目到iis上运行报目录错误 以下三种方法可使用: 1.添加文件访问权限 everyone (线上环境慎用) 2.重新注册iis 3.web.config 加一段话 在<system.we ...
- 解决nginx转发websocket报400错误
解决nginx转发websocket报400错误 说明 由于个人服务器上面有多个项目,配置了二级域名,需要对二级域名进行转发,在转发工作这快采取了大名鼎鼎的nginx.在这之前所有的项目运行转发都没问 ...
- 【Web应用】JAVA网络上传大文件报500错误
问题描述 当通过 JAVA 网站上传大文件,会报 500 错误. 问题分析 因为 Azure 的 Java 网站都是基于 IIS 转发的,所以我们需要关注 IIS 的文件上传限制以及 requestT ...
- Nginx 自定义404、500错误页面跳转
自定义Nginx错误界面跳转 1.开启Nginx.conf配置文件下的自定义接口参数. http { fastcgi_intercept_errors on; } 2.在Server区域添加自定义的错 ...
- .NET core 项目部署在windows 服务器方法以及iis 访问报 500.19错误的解决办法
将本地发布的服务本地运行没问题,发布上云windows 服务器就报 500.19 0x8007000d 是因为云服务器没有安装.net core相关的插件,比如.NET CORE sdk等,请按照该文 ...
- nginx 反向代理报400错误与Host关系
转载自:https://blog.csdn.net/qq_22208737/article/details/80787396 如果后端真是的服务器设置有类似防盗链或者根据http请求头中的host字段 ...
- [DEBUG] spring boot在eclipse中用maven打包成jar访问templates报500错误
更新:打war包的话只要把html文件放在resources/templates下即可,根本不需要放外面. 配置application.yml和templates放外面这种做法,打war包确实不行. ...
- Nginx 反向代理报400错误解决方法!
如果后端真是的服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,如果反向代理层的nginx不重写请求头中的host字段,将会导致请求失败,报400错误,解决办法: ...
随机推荐
- BZOJ 1003 [ZJOI2006]物流运输trans ★(Dijkstra + DP)
题目链接 http://www.lydsy.com/JudgeOnline/problem.php?id=1003 思路 先Dijkstra暴力求出i..j天内不变换路线的最少花费,然后dp[i] = ...
- 数论基础算法总结(python版)
/* Author: wsnpyo Update Date: 2014-11-16 Algorithm: 快速幂/Fermat, Solovay_Stassen, Miller-Rabin素性检验/E ...
- iOS安全系列之 HTTPS 进阶
上一篇<iOS安全系列之一:HTTPS>被CocoaChina转载,还顺便上了下头条: 打造安全的App!iOS安全系列之 HTTPS,高兴之余也有些诚惶诚恐,毕竟那篇文章只是介绍了比较偏 ...
- Mac安装MySQLdb遇到的坑
最近项目移植, 再进行virtualenv环境安装的时候遇到mysql-python死活安装失败 首先是这个错误: sh: /usr/local/bin/mysql_config: No such f ...
- icmp隧道手工操作
ICMP协议被用于检测网络连通状态的协议,通常情况下,防火墙会默认放过该协议. 渗透测试中经常出现一种情况是,我们通过某一种方式取得了一台主机的权限,得到了一些文件,比如域hash,密码文件之类的东西 ...
- Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
这里也会遇到一次性关闭所有modal引起阴影遮罩的问题,也就是所有modal都关闭了,但是主页面仍然被阴影遮罩. 这个问题从哪来的,是因为modal叠加,我们点击窗口之外的空白部分,一次性关闭所有mo ...
- linux和windows双系统设置默认启动系统
1.以root身份登录linux系统: 2.启动终端,输入命令:vi /boot/grub/grub.conf,文件内容如下: #boot=/dev/sda default=0 (默认启动哪个系统的设 ...
- jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行?
jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行? 因为在解析时最新解析的就是JA ...
- jauery-layer弹出框的使用
一布局: <div id="detailLayer"> <div class="box-header"> <div class=& ...
- 错误:XMLHttpRequest cannot load
原因:Chrome浏览器不支持本地ajax访问,具体就是ajax不能访问file 有3种解决办法:http://frabbit2013.blog.51cto.com/1067958/1254285 其 ...