系统信息
- macOS 13.2.1 (22D68)(英特尔处理器)
- 通过 Homebrew 软件安装的 PHP 版本
- 通过 pecl 安装 Xdebug
- Xdebug 版本 3.2.0(应受支持 -> 请参阅 https://xdebug.org/docs/compat)
错误描述
我正在尝试让 Xdebug 在 PHP 8.1 上运行。
虽然它在 PHP 8.2 上运行良好
PHP 8.2.4 (cli) (built: Mar 16 2023 16:46:52) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.4, Copyright (c) Zend Technologies
with Xdebug v3.2.0, Copyright (c) 2002-2022, by Derick Rethans
with Zend OPcache v8.2.4, Copyright (c), by Zend Technologies
与 php8.1 一起使用时收到以下错误消息
Failed loading /usr/local/lib/php/pecl/20220829/xdebug.so: dlopen(/usr/local/lib/php/pecl/20220829/xdebug.so, 0x0009): symbol not found in flat namespace '_zend_get_parameters_array_ex'
PHP 8.1.17 (cli) (built: Mar 16 2023 13:19:00) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.17, Copyright (c) Zend Technologies
with Zend OPcache v8.1.17, Copyright (c), by Zend Technologies
以下行已添加到 php.ini
中。
zend_extension="/usr/local/lib/php/pecl/20220829/xdebug.so"
我尝试/做过的事情
- 重新安装 Xdebug(pecl 卸载然后安装)
- 使用
extension=xdebug.so
(无法加载动态库 - 适用于 8.2) - brew 更新/升级
有人知道我还可以尝试什么吗?
最佳答案
此错误意味着您正在尝试使用错误的 PHP 版本 (8.1) 加载某个 PHP 版本 (8.2) 的 Xdebug 版本。每个 PHP 版本都需要有自己的 xdebug.so
文件。
如果您使用 pecl
,那么您需要确保使用与您的 PHP 版本的安装目录相匹配的 pecl
命令。该工具应位于与 php
二进制文件相同的目录中,您将拥有多个该二进制文件。
关于PHP 8.1 与 Xdebug - 在平面命名空间中找不到符号 '_zend_get_parameters_array_ex',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75788629/