📜  xdebug docker (1)

📅  最后修改于: 2023-12-03 15:35:46.722000             🧑  作者: Mango

XDebug Docker

如果你是一名 PHP 程序员或者在使用 PHP 进行开发,那么 XDebug Docker 就是一个必须要掌握的工具。 XDebug 是一个 PHP 扩展程序,它能够帮助程序员调试代码并且实现远程调试。

什么是 Docker?

Docker 是一个容器化平台,它能够帮助开发者更快速更方便地构建、发布、部署软件。Docker 的优势在于它将一个软件及其所有的依赖、环境都打包成一个镜像,开发人员可以将这个镜像发布到任何地方,只需要运行这个镜像就可以把应用程序部署起来。

为什么要使用 XDebug Docker?

当你在使用 Docker 进行开发时,这时候你的代码是运行在 Docker 容器里的。而且如果你想实现远程调试,那么调试的是 Docker 容器里的代码而不是宿主机器上的代码。这就需要使用 XDebug Docker。

怎样使用 XDebug Docker?

在使用 XDebug Docker 之前,我们需要安装一些工具,例如:

  1. Visual Studio Code(一款非常优秀的编辑器)
  2. PHP
  3. Docker
  4. Docker Compose
步骤一:安装 XDebug

我们可以使用 pecl 命令来安装 XDebug。

pecl install xdebug

之后我们需要在 PHP 的配置文件里加入以下内容。

[xdebug]
zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so"
xdebug.mode=develop,debug
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
xdebug.start_with_request=yes
步骤二:配置 Dockerfile

Dockerfile 里面配置 PHP 的环境。

FROM php:7.4.20-fpm-alpine3.13

RUN docker-php-ext-install pdo_mysql

RUN apk add --no-cache $PHPIZE_DEPS \
    && pecl install xdebug \
    && docker-php-ext-enable xdebug

RUN echo "xdebug.mode=develop,debug" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.discover_client_host=true" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.client_host=host.docker.internal" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.client_port=9003" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/conf.d/xdebug.ini
步骤三:配置 docker-compose.yml

这里是一个简单的 docker-compose.yml 配置文件。

version: '3.8'

services:
  php:
    build:
      context: .
      dockerfile: Dockerfile
    working_dir: /var/www/html
    volumes:
      - ./:/var/www/html
    ports:
      - 9000:9000
步骤四:配置 Visual Studio Code

我们需要在 launch.json 文件中添加以下配置。

{
    "name": "Listen for XDebug",
    "type": "php",
    "request": "launch",
    "hostname": "0.0.0.0",
    "port": 9003,
    "log": true,
    "pathMappings": {
        "/var/www/html": "${workspaceFolder}"
    }
}
步骤五:启动容器

最后我们进入项目目录,执行以下命令。

docker-compose up -d
结论

XDebug Docker 是进行 PHP 开发中远程调试工具的必备之选,在日常的开发工作中也非常有用。希望这篇介绍能够帮助到 PHP 开发者。