Docker + PhpStorm + Xdebug
安装 Docker
从 Docker 官网 下载桌面应用安装包
安装 dnmp
在日常开发中,使用 php 的同时还会使用到 Nginx、Mysql、Redis、RabbitMQ 等程序,所以需要通过 Docker Compose 来构建一个完整的开发环境,比较流行的就是 yeszao/dnmp。
我们从 github 上把项目 clone 下来
git clone https://github.com/yeszao/dnmp.git
.
.
.
# 下载完成后
cd dnmp
cp .env.sample .env
cp docker-compose.sample.yml docker-compose.yml
以 php8.0 为例,在 .env 文件中找到 PHP80_EXTENSIONS
配置项,根据提示把 xdebug 加进去,然后在 ./services/php80/php.ini
配置文件底部加入 xdebug 对应的配置项:
[XDebug]
zend_extension=xdebug
xdebug.mode=debug
; 每次请求总会开启 debuging session
xdebug.start_with_request=yes
; IDE 所在的 IP 地址或主机名 ; docker 环境用 host.docker.internal
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
; 调试日志
xdebug.log=/var/log/php/xdebug.log
同时给自己的项目添加一个 Nginx 的配置文件
cd ./services/nginx/conf.d
# {your_project} 需替换为自己的项目名称
cp localhost.conf ${your_project}.conf
修改 ${your_project}.conf 配置文件, 把fastcgi_pass php:9000;
改为fastcgi_pass php80:9000;
即可。
回到 dnmp 目录下,启动容器 nginx 和 php80,当然你也可以启动全部容器,只需去掉后边儿的 nginx 和 php80。
docker compose up nginx php80
由于某些原因,docker 国内的镜像源已全部被封禁,所以需要科学上网才能 up 成功。
接口调试
调试之前请确保 php 对应版本已安装 xdebug 并配置,在 Settings 中找到 PHP -> CLI Interpreter
另外还需添加项目路径映射
一切准备就绪,点击图标
开始监听 PHP Debug 连接,项目代码中添加对应断点,在 postman 或 apifox 中直接发起接口调用即可。
常见问题
- PHP_IDE_CONFIG 环境变量未设置
在对 php 命令行 debug 时, IDE 往往报PHP_IDE_CONFIG
环境变量未设置,此时只需在 PHP->Server 设置中添加一个服务器假设命令为 local,并配置路径映射,最后在运行 php 脚本之前 执行export PHP_IDE_CONFIG="serverName=local"
即可。
参考链接
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: