由于一些奇怪的 Zend 错误导致 PHP5-FPM 核心转储

由于一些奇怪的 Zend 错误导致 PHP5-FPM 核心转储

我得到了一个非常奇怪的核心转储,它提到“没有 Zend”,尽管 zend 已安装并正常运行。

今天在我做了之后,这个问题开始出现apt-get upgrade,并且由于某种原因,它不允许我再降级,但这只是一个小小的改变,所以我不知道发生了什么变化。

这是核心转储:

Core was generated by `php-fpm: pool www                                                       '.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  _zend_mm_free_int (heap=0x7fcb09b027d0, p=0x7fcb09b027e0) at /build/php5-oxmf3S/php5-5.6.4+dfsg/Zend/zend_alloc.c:2104
2104    /build/php5-oxmf3S/php5-5.6.4+dfsg/Zend/zend_alloc.c: No such file or directory.
(gdb) bt
#0  _zend_mm_free_int (heap=0x7fcb09b027d0, p=0x7fcb09b027e0) at /build/php5-oxmf3S/php5-5.6.4+dfsg/Zend/zend_alloc.c:2104
#1  0x00000000006ac920 in sapi_deactivate () at /build/php5-oxmf3S/php5-5.6.4+dfsg/main/SAPI.c:525
#2  0x00000000006a3c35 in php_request_shutdown (dummy=<optimized out>) at /build/php5-oxmf3S/php5-5.6.4+dfsg/main/main.c:1893
#3  0x000000000046565d in main (argc=162534288, argv=0x7fcb09b01c30) at /build/php5-oxmf3S/php5-5.6.4+dfsg/sapi/fpm/fpm/fpm_main.c:2071
(gdb)

答案1

我升级到 PHP 5.5.9-1ubuntu4.11 时也遇到了同样的问题,我的堆栈跟踪看起来一样,我通过更改 nginx 配置成功解决了这个问题。这个一直都在工作,升级后就停止工作了:

location ~ \.php$ {
  try_files $uri =404;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/var/run/php5-fpm.sock;
  fastcgi_index index.php;
  include fastcgi_params;
}

添加fastcgi_param指令帮助我解决了这个问题,所以我将它添加到我的服务器上的每个网站:

location ~ \.php$ {
  try_files $uri =404;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/var/run/php5-fpm.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # This one
  include fastcgi_params;
}

但这个问题仍然有点奇怪。

相关内容