xdebug - 加载/usr/lib/php7/modules/xdebug.so 失败:重新定位/usr/lib/php7/modules/xdebug.so 时出错:php_sprintf:找不到符号
问题描述
我们正在尝试在基于 Alpine Linux 并运行 php-fpm 的 Docker 容器中安装 XDebug。我们遵循了本页给出的安装说明。它说要为 Alpine Linux 运行以下命令,这就是我们所做的:
bash-5.0# apk add php7-pecl-xdebug
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
(1/2) Installing php7-common (7.3.22-r0)
(2/2) Installing php7-pecl-xdebug (2.9.1-r0)
OK: 85 MiB in 74 packages
然后我们可以看到.so
文件在下面/usr/lib/php7/modules/xdebug.so
,所以我们将它添加到我们的下面/usr/local/etc/php/php.ini
:
zend_extension = /usr/lib/php7/modules/xdebug.so
然后我们重新启动了容器。该网页说通过运行验证安装:
bash-5.0# php -v
当我们运行命令时,这是我们得到的输出:
bash-5.0# php -v
Failed loading /usr/lib/php7/modules/xdebug.so: Error relocating /usr/lib/php7/modules/xdebug.so: php_sprintf: symbol not found
PHP 7.4.4 (cli) (built: Mar 24 2020 01:34:16) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.4, Copyright (c), by Zend Technologies
我们如何解决这个问题?谢谢。如果有帮助:
bash-5.0# ls -al /usr/lib/php7/modules/xdebug.so
-rwxr-xr-x 1 root root 268088 Jan 18 2020 /usr/lib/php7/modules/xdebug.so
解决方案
我认为这个错误来自一些未安装在系统上的 C 库。我们从这个答案中执行了以下步骤并且它有效。它还安装最新版本xdebug
(版本 3.0.2)。apk add php7-pecl-xdebug
正在安装 2.9 版xdebug
。
第 1 步:安装依赖项:
apk --no-cache add pcre-dev ${PHPIZE_DEPS}
第 2 步:从源代码构建二进制文件:
pecl install xdebug
成功后应该以
Build process completed successfully
Installing '/usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so'
install ok: channel://pecl.php.net/xdebug-3.0.2
configuration option "php_ini" is not set to php.ini location
You should add "zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so" to php.ini
第 3 步:现在编辑php.ini
并设置zend_extension
为上面给出的路径
第 4 步:验证
bash-5.0# php -v
PHP 7.4.4 (cli) (built: Mar 24 2020 01:34:16) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Xdebug v3.0.2, Copyright (c) 2002-2021, by Derick Rethans
with Zend OPcache v7.4.4, Copyright (c), by Zend Technologies
推荐阅读
- r - 如何创建比较其他 2 列的新列
- django-channels - Django 通道阻止数据库访问
- netsuite - NetSuite Advanced PDF/HTML 简单权重转换
- powerapps - 在 Power Automate 中定义“记号”函数
- encryption - 加密和解密文件夹
- angular-ui-router - 如何在多布局角度 12 中呈现错误页面
- javascript - React App 错误中的 Onclick 事件格式
- javascript - Node.js 的 `fs` 模块如何将 `PathLike` s 转换为路径?
- html - 识别文本出现最少次数的元素的正确 XPath 是什么?
- python-3.x - 在python中计算一个系列