【问题标题】:Apache segfault by cakePHP websitecakePHP 网站的 Apache 段错误
【发布时间】:2011-09-01 16:00:57
【问题描述】:

没有任何明显的原因,我的一个 cakePHP 网站 (v1.3.11) 已停止工作(在 chrome 中显示“未收到数据”页面 - 错误 324)但另一个仍然很好 - 至少目前-.

/var/log/apache2/error.log 显示[notice] child pid 8502 exit signal Segmentation fault (11)

和 /var/log/messages 显示 kernel: [15482058.932226] apache2[8502]: segfault at 7fff7f14fb58 ip 7f1b9d886e55 sp 7fff7f14fb60 error 6 in libphp5.so[7f1b9d576000+588000]

这是我的 php -v

PHP 5.2.6-1+lenny13 with Suhosin-Patch 0.9.6.2 (cli) (built: Jul  1 2011 16:01:01)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

我完全不知道发生了什么,所以欢迎任何想法。

编辑:

看起来 /cake/libs/controller/controller.php 中的 render() 函数正在执行无限循环。任何想法为什么会发生这种情况? (它发生在网站的所有页面上,最近没有代码更改......)

【问题讨论】:

  • 您最近是否更改/更新了服务器上的 PHP 版本?还值得注意的是,每次我在 PHP 中遇到段错误时,都是因为递归函数被调用太多次并且内存不足。 Zend 引擎不正确地处理此问题并导致段错误。我还没有弄清楚原因。
  • 已经重启了apache2,没有成功。
  • @Dave:我不这么认为,虽然上面的 php -v 似乎是这么说的。那我怎么能降级呢?正如你所说,我认为它更有可能是一个循环。
  • @Dave:看看编辑部分。
  • @Nicholas 我对蛋糕的内部运作不是那么好,我可能不得不在这一点上鞠躬,虽然听起来你越来越接近答案......如果我可以想出什么我会让你知道的。

标签: php apache cakephp segmentation-fault


【解决方案1】:

我对 cakephp 2.2.1 也有同样的问题。 我已经通过在 App.php 的加载函数中添加 flush() 解决了这个问题。

public static function load($className) {
    if (!isset(self::$_classMap[$className])) {
        return false;
    }
    flush();
    ...

【讨论】:

    【解决方案2】:

    我刚刚将我的框架降级到以前的水平,这要归功于我在更新之前所做的那些文件的备份,现在一切都很好了。

    可能在上传过程中出现了问题,或者与最新版本的框架不兼容。稍后我会对此进行一些测试,并对这个“解决方案”发表评论。

    【讨论】:

      【解决方案3】:

      在 core.php 上

      配置::write('debug',0);

      【讨论】:

      • 令人惊讶的是,这样的事情如何解决了这个问题,我绝望了!
      【解决方案4】:

      我想知道这是否可能是 Debian 上次安全更新中的回归。我得到了和你非常相似的错误,但我们没有运行蛋糕。如果我们可以确认这一点,我们应该在 Debian 上提交一个错误。

      /var/log/messages[39144630.700032] apache2[13693]: segfault at 7fffff7fdfb8 ip 7f5195606a6a sp 7fffff7fdf50 error 6 in libphp5.so[7f519535c000+588000]

      /var/log/apache2/error.log[error] child died with signal 11

      $ php -v

      PHP 5.2.6-1+lenny13 with Suhosin-Patch 0.9.6.2 (cli) (built: Jul  1 2011 16:01:01) 
      Copyright (c) 1997-2008 The PHP Group
      Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

      【讨论】:

        【解决方案5】:

        仅供参考,我今天遇到了同样的问题。关闭调试工具包为我解决了这个问题

        【讨论】:

          【解决方案6】:

          我在本地虚拟主机上的博客教程中添加了帖子编辑后突然遇到了这个问题。 对我来说,当我回顾文件并发现语法错误时,这个问题就消失了。一旦我修复了语法,它就可以正常工作了。

          【讨论】:

            【解决方案7】:

            不管怎样,关闭 DebugKit 为我在 CakePHP 2.3.5 中解决了这个问题。除了添加 DebugKit 之外,CakePHP 安装是全新的。我在 Chrome 中遇到了与原帖中提到的相同的错误 324。

            【讨论】:

              猜你喜欢
              • 2011-05-24
              • 2017-05-16
              • 2017-06-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-09-26
              • 1970-01-01
              • 2014-02-14
              相关资源
              最近更新 更多