加载 xdebug.so 未定义符号失败:zend_empty_string

Posted

技术标签:

【中文标题】加载 xdebug.so 未定义符号失败:zend_empty_string【英文标题】:Failed loading xdebug.so undefined symbol: zend_empty_string 【发布时间】:2019-10-16 20:04:03 【问题描述】:

我无法在 Visual Studio Code - Linux (Ubuntu 18.04.2 LTS) 中调试 php 脚本。

在更新之前,我正在获取错误的 Xdebug 版本,例如:

Xdebug 需要 Zend Engine API 版本 320170718。 安装的 Zend Engine API 版本 320160303 已过时。

更新后的 Xdebug 版本现在获取以下错误:

错误:加载 /opt/lampp/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so 失败:/opt/lampp/lib/php/extensions/no-debug-non-zts -20160303/xdebug.so:未定义符号:zend_empty_string。

这是我的 PHP 状态:

php -v

PHP 7.2.17-0ubuntu0.18.04.1 (cli) (built: Apr 18 2019 14:12:38) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.17-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans

如果我最后有任何遗漏,请纠正我。

【问题讨论】:

【参考方案1】:

我建议使用 Xdebug 网站上的定制向导:

Xdebug Wizard

您似乎在混合 PHP 版本:Zend Engine API 版本 20160303 对应于 PHP 7.1。对于 7.2,您需要 API 版本 20170718

我想你有几个版本的 PHP 活跃——很可能是 7.1、7.2 和 7.3。在这种情况下,您需要在通过向导时运行正确的 phpize - phpize7.2

【讨论】:

以上是关于加载 xdebug.so 未定义符号失败:zend_empty_string的主要内容,如果未能解决你的问题,请参考以下文章

brew php54-xdebug 加载 xxx.xdebug.so 失败 找不到符号

加载/usr/lib/php7/modules/xdebug.so 失败:重新定位/usr/lib/php7/modules/xdebug.so 时出错:php_sprintf:找不到符号

Xdebug 错误:“加载 xdebug.so 失败:xdebug.so:无法打开共享对象文件:没有这样的文件或目录”

加载 xdebug 安装失败 - xdebug.so,9 找不到合适的图像

mac phpstorm xdebug启动失败怎么解决

尝试使用 dlopen 加载库时未定义的符号