📅  最后修改于: 2023-12-03 15:35:46.722000             🧑  作者: Mango
如果你是一名 PHP 程序员或者在使用 PHP 进行开发,那么 XDebug Docker 就是一个必须要掌握的工具。 XDebug 是一个 PHP 扩展程序,它能够帮助程序员调试代码并且实现远程调试。
Docker 是一个容器化平台,它能够帮助开发者更快速更方便地构建、发布、部署软件。Docker 的优势在于它将一个软件及其所有的依赖、环境都打包成一个镜像,开发人员可以将这个镜像发布到任何地方,只需要运行这个镜像就可以把应用程序部署起来。
当你在使用 Docker 进行开发时,这时候你的代码是运行在 Docker 容器里的。而且如果你想实现远程调试,那么调试的是 Docker 容器里的代码而不是宿主机器上的代码。这就需要使用 XDebug Docker。
在使用 XDebug Docker 之前,我们需要安装一些工具,例如:
我们可以使用 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
里面配置 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
配置文件。
version: '3.8'
services:
php:
build:
context: .
dockerfile: Dockerfile
working_dir: /var/www/html
volumes:
- ./:/var/www/html
ports:
- 9000:9000
我们需要在 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 开发者。