xdebug.so:未定义的符号:zend_ce_error

时间:2016-07-13 14:50:39

标签: php gnu-make xdebug

我需要调试旧的php版本:

PHP 5.6.22 (cli) (built: Jun 29 2016 14:26:09)   
Copyright (c) 1997-2016 The PHP Group  
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

在Ubuntu上:Ubuntu 16.04 LTS

我编译了适当的PHP,并从git repository检出了xdebug:
git://github.com/xdebug/xdebug.git

我尝试了不同的版本,但主人似乎正在编译 在我的错误中,我有:

Failed loading /usr/share/php53/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so:  /usr/share/php53/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so: undefined symbol: zend_ce_error

我知道这是xdebug的新版本,版本太旧了 如果我尝试编译例如xdebug 1_0,我有:

Makefile:181: recipe for target 'xdebug.lo' failed

对于其他版本,我还有其他错误。

我的基本问题是:如何为PHP 5找到合适的xdebug?

更新

  1. xdebug.org/download.php - 就不同版本而言,它只包含Windows二进制文件
  2. sudo apt-get install php5-xdebug - 不能在Ubuntu 16.04上运行,因为它不支持php5
  3. pecl install xdebug - 在最好的情况下会编译我已经拥有的最后一个版本,最坏的情况会失败(它发生在我身上,我试过),因为上面提到的相同的原因。

1 个答案:

答案 0 :(得分:1)

我在CentOS上也有同样的错误,也是从github编译的。我的解决方案是将我的phpfino复制并粘贴到向导https://xdebug.org/wizard.php中并完全按照说明进行操作。

在我的特定情况下,似乎答案是在http://xdebug.org/files/xdebug-2.4.1.tgz中找到,因为使用它而不是最新的github版本意味着apache可以加载它,它现在显示在我的phpinfo页面上