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年了,这是我第一次发现这样的问题,但我是云服务器的新手,所以我可能在那里做了一些错误的配置。寻找您宝贵的意见。
我从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.php
和page_two.php:1
等文件
当我点击它时,它会带我到chrome网络选项卡并显示该文件的以下信息:
我有以下标题信息:
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)
答案 0 :(得分:4)
当PHP退出segmentation fault
时,表示您的PHP安装有问题,而不是您的代码。通常它是一个延长失配。你需要确定它是哪个扩展名。或者您可以使用gdb来调试PHP,here's how it is done。
如果您发现很难按照调试步骤进行操作,则可以始终将几个步骤回滚到未发生错误的状态。然后逐个添加步骤,看看错误何时引入。如果您能够提供一个更简单的代码来重现该错误,那么所有这一切都会变得更容易。
答案 1 :(得分:3)
我想出来了。由于我开始怀疑Memcached,memcache + libevent和eAccelaretor,我只是卸载了这三个服务,现在网页工作正常。
现在我需要弄清楚,其中哪一个是创建问题并将更新我的答案。
感谢大家的帮助和支持。