Yii配合Yar在php5.3.3环境下的错误以及解决方案

简介: 首先感谢鸟哥,解决这个问题!这里做个简单的总结。 问题 在阿里云服务器上,安装了最新版本的yar和yii,上传了项目代码,但是调用yar封装的接口时,始终提示错误。 curl exec failed 'Server returned nothing (no headers, no data)'分析 查看错误日志,发现这样的问题。


首先感谢鸟哥,解决这个问题!这里做个简单的总结。


问题

在阿里云服务器上,安装了最新版本的yar和yii,上传了项目代码,但是调用yar封装的接口时,始终提示错误。

curl exec failed 'Server returned nothing (no headers, no data)'

分析

查看错误日志,发现这样的问题。

GET /path/to/url HTTP/1.1" 500 16933 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0

服务器的500错误,再检查server的日志, httpd下的error_log

 [Thu Jan 02 14:08:22 2014] [notice] child pid 29414 exit signal Segmentation fault (11)

发现的情况是这样的。

服务器没有打开coredump,所以暂时还没有core产生。

解决


然后,经过鸟哥4个小时的排查错误,发现,这是由于php5.3.3的bug导致的。

gdb作为测试工具,测试脚本。

修改了yii框架的代码。

/framework/web/actions/CInlineAction.php

原来是这样的

 public function runWithParams($params)
        {
                $methodName='action'.$this->getId();
                $controller=$this->getController();
                $method=new ReflectionMethod($controller, $methodName);
                if($method->getNumberOfParameters()>0)
                        return $this->runWithParamsInternal($controller, $method, $params);
                else
                        return $controller->$methodName();
        }

修改后

 public function runWithParams($params)
        {
                $methodName='action'.$this->getId();
                $controller=$this->getController();
                $method=new ReflectionMethod($controller, $methodName);
                if($method->getNumberOfParameters()>0)
                        $ret = $this->runWithParamsInternal($controller, $method, $params);
                else
                        $ret = $controller->$methodName();
                return $ret;
        }

这样就ok啦。

后记

鸟哥对自己的作品负责的态度真是佩服,连夜为我们测试,十分感动,谢谢鸟哥的帮助。

对于自己的知识体系来说,在linux上的测试环节和管理都是不熟悉的,一定会把这部分缺口补齐的!

加了个油! 奋斗




目录
相关文章
|
29天前
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
37 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
1天前
|
SQL 安全 JavaScript
在多用户环境中,如何确保 PHP Shell 的安全性?
在多用户环境中,如何确保 PHP Shell 的安全性?
|
1月前
|
Web App开发 关系型数据库 PHP
使用 Docker 快速搭建多版本 PHP 开发环境
使用 Docker 快速搭建多版本 PHP 开发环境
44 2
|
26天前
|
应用服务中间件 Linux 网络安全
【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法
【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法
|
26天前
|
Linux PHP
【Azure 应用服务】PHP项目部署到App Service for Linux环境中,如何修改上传文件大小的限制呢?
【Azure 应用服务】PHP项目部署到App Service for Linux环境中,如何修改上传文件大小的限制呢?
|
29天前
|
应用服务中间件 Linux PHP
Linux搭建tengine2.0<Nginx>+php7环境
本文介绍了在Linux系统上搭建Tengine 2.0(一个Nginx的增强版本)和PHP 7环境的详细步骤,包括创建安装目录、下载源码包及依赖库、编译安装Nginx、配置Nginx、安装PHP及其依赖、设置PHP-FPM、配置环境变量、安装Git和Composer,以及服务管理和日志查看等。
51 0
|
3月前
|
运维 Serverless 数据处理
函数计算产品使用问题之 php环境中如何修改PHP允许的文件上传大小和POST最大大小
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
应用服务中间件 Linux 网络安全
PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法
在Azure App Service for Linux上部署的PHP应用遇到上传文件超过1MB时出现413 Request Entity Too Large错误的解决之法
197 0
|
3月前
|
PHP Windows
windows 安装php7.4并配置phpstorm环境
windows 安装php7.4并配置phpstorm环境
353 0
|
4月前
|
IDE 网络安全 PHP
IJ中PHP环境的搭建和使用教程
搭建PHP环境与配置IDE,在学习网络安全的过程中,了解并掌握编程语言是必要的。本文主要介绍了如何搭建PHP开发环境以及在IntelliJ IDEA (IJ) 中配置PHP环境,以方便进行PHP代码的编写和测试。本章是在学习网络安全过程中,我们需要对两门编程语言有所了解,今天要进行的就是其中的一门.