首页 文章

升级Apache和PHP后,某个功能会导致分段错误

提问于
浏览
6

我从drupal.stackexchange.com手动迁移此问题(此后已被删除) .

我最近将我的本地开发环境(Vagrant,Ubuntu 12.04)从PHP 5.3.X升级到5.5.14,将Apache 2.2.X升级到2.4.9 . 升级后,每当我调用the debug function dpm()时,都会导致分段错误 . 来自Apache日志的片段:

[Wed Jul 09 14:33:11.474063 2014] [核心:通知] [pid 6513] AH00051:子pid 6644退出信号分段错误(11),/ etc / apache2中可能的coredump [Wed Jul 09 14:33:18.483516 2014] [核心:通知] [pid 6513] AH00051:子pid 6640退出信号分段错误(11),/ etc / apache2中可能的coredump [Wed Jul 09 14:33:25.494786 2014] [核心:通知] [pid 6513 ] AH00051:子pid 6619退出信号分段故障(11),/ etc / apache2中可能的coredump

请注意,在升级PHP和Apache之后,我后来决定将Ubuntu升级到14.04 . 问题依然存在 .

Drupal 7.30 Devel 7.x-1.5(Drupal模块)

禁用OpCache并没有解决问题 .

我安装了 gdb 并获得了核心转储 . 结果如下:

/vagrant/web [git::goomba *] [vagrant@dev] [9:04]
> gdb apache2 -core core
GNU gdb (Ubuntu 7.7-0ubuntu3.1) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from apache2...(no debugging symbols found)...done.
[New LWP 8265]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/sbin/apache2 -k start'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fd091fda437 in ?? () from /usr/lib/apache2/modules/libphp5.so

当我运行 (gdb) backtrace full 时:

#0  0x00007fd091fda437 in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#1  0x00007fd091fdb044 in vspprintf () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#2  0x00007fd092038537 in zend_error_noreturn ()
   from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#3  0x00007fd09205d7ff in zend_std_read_property ()
   from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#4  0x00007fd0920633c7 in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#5  0x00007fd0920a7178 in execute_ex () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#6  0x00007fd092027e86 in dtrace_execute_ex ()
   from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#7  0x00007fd0920e2f27 in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#8  0x00007fd0920a7178 in execute_ex () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#9  0x00007fd092027e86 in dtrace_execute_ex ()
   from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#10 0x00007fd0920e2f27 in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#11 0x00007fd0920a7178 in execute_ex () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#12 0x00007fd092027e86 in dtrace_execute_ex ()

dpm()详情

这是一个漂亮打印PHP变量的调试函数 . 在引擎盖下,它使用Krumo,具体来说,它调用krumo::dump() .

2 回答

  • 0

    我停止了这个问题一段时间,因此停止使用触发问题的 dpm() 函数 . 在某些时候,这个问题对我来说已经消失了 . 我确实这么说了 .

  • 7

    我在这里有一个非常类似的问题错误(很多):

    [核心:通知] [pid 1550] AH00051:子pid 2226退出信号分段错误(11),/ etc / apache2中可能的coredump

    罪魁祸首是xcache被删除:

    apt-get --purge remove php5-xcache
    

    使用Apache 2.4.7 php -v输出:PHP 5.5.9-1ubuntu4.5(cli)(内置:2014年10月29日11:59:10)

相关问题