PHP执行一些行,段错误后意外停止页面

时间:2013-12-16 11:40:06

标签: javascript php apache memcached rackspace-cloud

PHP版 = 5.3, 操作系统 = CentOS 6, 提供商 = Rackspace, 类型 =云


问题

所以我有一个PHP页面命名为195行的page_two.php。我通过以下方式从page_one.php调用此页面:

if(result=='success')
{
    var params =  'top=0, left=0';
    params += ', width='+screen.width+', height='+screen.height+',statusbar=no,toolbar=no, location=no,directories=no,menubar=no,resizable=no';
    params += ', scrollbars=yes, status=no, fullscreen=yes, titlebar=no';
    newwin=window.open("page_two.php","_blank",params);
    if (window.focus) {newwin.focus()}
    return false;
}

以上代码在一个新的弹出窗口中打开php页面。

现在这个页面在我的本地系统上运行正常,没有错误,也适用于我的共享godaddy服务器。最近我带了一个Rackspace云服务器并将相同的文件上传到它上面。但是我也安装了诸如 Memcached,memcache + libevent和eAccelaretor 之类的东西。

我的整个网站工作正常。我面临的唯一问题是页面在此云服务器上的特定行之后停止执行。

所以我有以下代码块打开连接并通过config.php页面建立会话:

<?php
include("../config.php");
if(!isset($_SESSION['my_code'])){header('Location:index.php');}
?>

然后我有很多带有CSS javascript和外部文件的html代码(仅限css和js)。

我在LINE 111的会话中做了回音: -

<?php echo $_SESSION['my_code']; ?>

以上ecoz代码没有问题。

然后我在行号175

上有另一个回音
<?php echo $_SESSION['getText1']; ?>

但是在进入这行代码页后停止并且没有其他代码(html和php都显示)。

我可以从Mozilla和Chrome的源代码中看到所有直到LINE 174的行都已加载,我可以在Mozilla中看到,但是在Google Chrome上,我无法在前端看到任何内容,但在mozilla中可以看到前端的html部分直到174行号。

所以我在互联网上进行了广泛的搜索,但我还没有找到任何东西。我有的主要疑问是,它是服务器相关的错误或配置错误,或者我必须做一个PHP更新或者可能有一些我需要更改的PHP东西。我实际上是无能为力的,它的编程或服务器。

我可以保证的是,它不是弹出问题,因为当我直接导航到该页面时它也无法正常工作。

有没有人遇到过这种问题。我已经使用PHP 6年了,这是我第一次发现这样的问题,但我是云服务器的新手,所以我可能在那里做了一些错误的配置。寻找您宝贵的意见。


进展1

是否与内存相关?

我从Jason Judge那里看到了这个article,但我真的不知道究竟需要做什么,这是一个肯定存在的问题,但没有规定解决方案,至少我无法找到它。有人可以调查一下,因为它真的会危及生命吗

我也觉得它与APACHE有关或与内存或缓存有关的事情,因为只是PHP我真的不觉得有什么不对,因为它与localhost和我的Godaddy共享服务器,问题工作正常坚持使用Rackspace云托管。你认为什么可能导致这个问题?

问题就是<?php ?>脚本失败了,所以如果删除这行<?php echo $_SESSION['getText1']; ?>,它会在下一个<?php ?> PHP代码块上失败


的修改

编辑1:

与会话相关的php日志文件中没有错误

编辑2

当我在Google Chrome控制台中办理登机手续时,它会向我显示红色十字,其中包含http://myserver.com/page_two.phppage_two.php:1等文件

当我点击它时,它会带我到chrome网络选项卡并显示该文件的以下信息:

enter image description here

我有以下标题信息:

Request URL:http://mywebsite.comm/page_two.php
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,hi;q=0.6,en-GB;q=0.4
AlexaToolbar-ALX_NS_PH:AlexaToolbar/alxg-3.2
Cache-Control:max-age=0
Connection:keep-alive
Cookie:PHPSESSID=i4oqva0ruaahg6gcmnsslc64e3
Host:mywebsite.com
Referer:http://mywebsite.com/page_one.php
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Response Headersview source
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:close
Content-Type:text/html; charset=UTF-8
Date:Mon, 16 Dec 2013 12:43:34 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Pragma:no-cache
Server:Apache/2.2.15 (CentOS)
Transfer-Encoding:chunked
X-Powered-By:PHP/5.3.3

编辑3 - 经过php错误日志后,我发现这个奇怪的错误信息对我来说没有任何意义的错误发生

[Tue Dec 17 13:23:09 2013] [notice] child pid 19700 exit signal Segmentation fault (11)

当我在页面上回应这些会议时,它的工作非常精细。它没有与会话一起做,因为当我只是简单回声“HI”仍然没有它回应它和页面发出

2 个答案:

答案 0 :(得分:4)

当PHP退出segmentation fault时,表示您的PHP安装有问题,而不是您的代码。通常它是一个延长失配。你需要确定它是哪个扩展名。或者您可以使用gdb来调试PHP,here's how it is done

如果您发现很难按照调试步骤进行操作,则可以始终将几个步骤回滚到未发生错误的状态。然后逐个添加步骤,看看错误何时引入。如果您能够提供一个更简单的代码来重现该错误,那么所有这一切都会变得更容易。

答案 1 :(得分:3)

我想出来了。由于我开始怀疑Memcached,memcache + libevent和eAccelaretor,我只是卸载了这三个服务,现在网页工作正常。

现在我需要弄清楚,其中哪一个是创建问题并将更新我的答案。

感谢大家的帮助和支持。