📅  最后修改于: 2023-12-03 14:52:16.839000             🧑  作者: Mango
Xdebug 是一种基于 PHP 的调试器,它可以帮助程序员在调试和开发过程中更快速和高效地定位和纠正错误。在 Docker Compose 上使用 Xdebug 可以方便地对多个 PHP 项目进行调试,并且如果需要新建或者更新项目也很容易。
在开始之前,需要先确保安装好 Docker 和 Docker Compose,并且有基本的 Docker 和 Docker Compose 使用经验。
以下是配置 Xdebug 的步骤:
php.ini
文件中,添加以下 Xdebug 的配置信息:[xdebug]
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
# 如果您正在使用的是 PHP-FPM,可以通过以下命令重启服务
$ service php-fpm restart
# docker-compose.yml
...
services:
php:
build: .
environment:
XDEBUG_CONFIG: remote_host=${DOCKER_HOST_IP:-172.17.0.1}
...
在 environment
部分添加了 XDEBUG_CONFIG
环境变量,在其中设置了 remote_host
的值为 Docker 宿主机的 IP 地址,这里使用了 ${DOCKER_HOST_IP:-172.17.0.1}
这种语法,是为了兼容 Windows 和 Linux 平台获取不同的 IP 地址。
# docker-compose.yml
...
services:
xdebug:
build: .
ports:
- "9000:9000"
command: tail -f /dev/null
...
在 xdebug
中,我们定义了一个与 PHP 容器在同一网络的容器,其中 ports
用于暴露 Xdebug 的端口。
在配置 IDE 之前,需要先进入 xdebug 容器中:
$ docker-compose run --rm xdebug sh
然后,在容器中编辑 xdebug.ini
文件:
$ vi /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
添加以下内容:
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=xdebug
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
保存文件并退出。
最后,在 IDE 中添加一个 PHP Remote Debug 配置,配置如下:
配置完成后,可以使用以下命令启动 Docker Compose 服务以运行 Xdebug:
$ docker-compose up -d
此时,您就可以在 IDE 中开启断点,对 PHP 项目进行远程调试了!
参考链接: