首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在docker的官方php高寒映像上安装XDebug?

如何在docker的官方php高寒映像上安装XDebug?
EN

Stack Overflow用户
提问于 2017-10-19 08:19:45
回答 5查看 36.1K关注 0票数 36

我使用的是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

在构建时导致错误:

代码语言:javascript
运行
复制
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.
EN

Stack Overflow用户

发布于 2022-09-02 02:02:36

可以通过apk安装xdebug,但需要进行一些调整。

确定PHP扩展和配置目录

  1. php -i的输出复制到剪贴板上。
  2. 转到X调试安装向导并将结果粘贴到框中。
  3. 保持这个输出在手边,因为我们稍后会需要它。我们主要关注额外的配置文件路径和扩展目录。示例x调试安装向导输出

找出apk包的安装位置。

根据您选择的版本,您的结果可能会有所不同。

您可以通过查看xdebug 文档找到可用的版本。在本文撰写之时,只列出了主要的PHP版本,但我能够手动指定一个特性发布。只是不包括点(例如,81 而不是 8.1)。

运行apk info -a php<your-php-version>-pecl-xdebug获取包的内容。

根据apk info -a php81-pecl-xdebug的输出,我的位置是:

代码语言:javascript
运行
复制
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。

代码语言:javascript
运行
复制
zend_extension=xdebug

要使它做任何有用的事情,还需要更多的选项,但我将把这一点留给读者。

创建您的Dockerfile

在您的dockerfile中,按照前面的步骤安装包并链接/复制这些文件。例如:

代码语言:javascript
运行
复制
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>

就我而言:

代码语言:javascript
运行
复制
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。

希望这能让别人省去几个小时的挫折。

已安装

票数 2
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46825502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档