当我们使用app_dev.php
页面(开发版)时,没有问题,一切运行正常。
但是当我们尝试访问app.php页面时,有些页面会使Apache崩溃。
以下是我们的配置:
coredump给我们以下结果:
#0 0x00007feab144e556 in zend_std_read_property (object=0x3, member=0x7feaa30ab840, type=3) at /tmp/buildd/php5-5.3.3/Zend/zend_object_handlers.c:340
#1 0x00007feab1463604 in zend_fetch_property_address_read_helper_SPEC_VAR_CONST (type=3, execute_data=0x7feab5cf5eb0) at /tmp/buildd/php5-5.3.3/Zend/zend_vm_execute.h:10084
#2 0x00007feab1453570 in execute (op_array=0x7feab5c863d8) at /tmp/buildd/php5-5.3.3/Zend/zend_vm_execute.h:107
#3 0x00007feab1420ef4 in zend_call_function (fci=0x7fff2689bfb0, fci_cache=0x0) at /tmp/buildd/php5-5.3.3/Zend/zend_execute_API.c:963
#4 0x00007feab1442047 in zend_call_method (object_pp=0x7fff2689c0d8, obj_ce=0x7feab63ea400, fn_proxy=0x7fff2689c0e8, function_name=0x7feab181e556 "__destruct",
function_name_len=646561136, retval_ptr_ptr=0x0, param_count=-1320891466, arg1=0x7fea00000000, arg2=0x0) at /tmp/buildd/php5-5.3.3/Zend/zend_interfaces.c:97
关于第一帧的更多细节:
#0 0x00007feab144e556 in zend_std_read_property (object=0x3, member=0x7feaa30ab840, type=3) at /tmp/buildd/php5-5.3.3/Zend/zend_object_handlers.c:340
340 property_info = zend_get_property_info(zobj->ce, member, (zobj->ce->__get != NULL) TSRMLS_CC);
发送的第一个参数,zobj-> ce = 0x3,似乎很可疑,所以我查看了zobj内容:
(gdb) p *zobj
$3 = {ce = 0xa5935461f887fe37, properties = 0xa5935461f8e5bbb7, guards = 0x0}
但是什么包含zobj-> ce?
(gdb) p *(zobj->ce)
Cannot access memory at address 0xa5935461f887fe37
这个地址似乎导致无效的内存位置。 令人不安的是,只有在使用Symfony2应用程序的生产版本时才会出现此问题。它可能表明APC或仅加载了生产版本的其他模块存在问题,但我们没有发现可能导致此问题的线索。
我们尝试重新安装我们安装的大多数PHP扩展,但在此之前没有结果。
编辑:按需,这是app.php代码,这是Symfony2附带的原始文件。不过,我真的不相信这是问题的原因。
header('P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT');
require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';
//require_once __DIR__.'/../app/AppCache.php';
use Symfony\Component\HttpFoundation\Request;
$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);
$kernel->handle(Request::createFromGlobals())->send();