我使用的是wordpress:php7.1-fpm-alpine
,它基于php:7.1-fpm-alpine
(https://github.com/docker-library/wordpress/blob/master/php7.1/fpm-alpine/Dockerfile)。
我试过RUN pecl install xdebug-2.5.0 && docker-php-ext-enable xdebug
在构建时导致错误:
Step 19/19 : RUN pecl install xdebug-2.5.0 && docker-php-ext-enable xdebug
---> Running in 52c988e12cb2
downloading xdebug-2.5.0.tgz ...
Starting to download xdebug-2.5.0.tgz (267,640 bytes)
........................................................done: 267,640 bytes
76 source files, building
running: phpize
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
发布于 2022-09-02 02:02:36
可以通过apk安装xdebug,但需要进行一些调整。
确定PHP扩展和配置目录
php -i
的输出复制到剪贴板上。找出apk包的安装位置。
根据您选择的版本,您的结果可能会有所不同。
您可以通过查看xdebug 文档找到可用的版本。在本文撰写之时,只列出了主要的PHP版本,但我能够手动指定一个特性发布。只是不包括点(例如,81
而不是 8.1
)。
运行apk info -a php<your-php-version>-pecl-xdebug
获取包的内容。
根据apk info -a php81-pecl-xdebug
的输出,我的位置是:
php81-pecl-xdebug-3.1.5-r0 contains:
etc/php81/conf.d/50_xdebug.ini
usr/lib/php81/modules/xdebug.so
创建您的x调试配置
我喜欢将我的xdebug.ini保存在VS代码.devcontainer文件夹中,这就是我在这个示例中要遵循的路线。您还可以直接在其目标中创建配置文件。
如果采用后一条路径,请将文件99-xdebug.ini
命名为文档。
在这两种情况下,真正需要的是这一行来启用xdebug。
zend_extension=xdebug
要使它做任何有用的事情,还需要更多的选项,但我将把这一点留给读者。
创建您的Dockerfile
在您的dockerfile中,按照前面的步骤安装包并链接/复制这些文件。例如:
ADD <local_xdebug.ini_path> <PHP Extra Configuration Files Path>99-xdebug.ini
RUN apk update && apk add php<version>-pecl-xdebug && \
ln -s /<apk_xdebug.so_path> \
<PHP Extensions directory>
就我而言:
ADD ./xdebug.ini /usr/local/etc/php/conf.d/99-xdebug.ini
RUN apk update && apk add php81-pecl-xdebug && \
ln -s /usr/lib/php81/modules/xdebug.so \
/usr/local/lib/php/extensions/no-debug-non-zts-20210902/xdebug.so
重新生成容器并验证是否启用了xdebug
重新生成容器后,通过运行php -m
验证是否安装了xdebug模块。
我是一个PHP虚拟人,所以我像以前一样使用X调试安装向导来验证是否启用了xdebug。
希望这能让别人省去几个小时的挫折。
https://stackoverflow.com/questions/46825502
复制相似问题