phpStorm中使用xdebug工具调试docker容器中的程序
最近使用了
docker
容器来构建项目,这种方式虽然极大的加快了构建的项目速度,但是也会对之前的本地开发带来一些挑战,比如今天讲到的调试程序,大家对于xdebug
一定不会陌生,但是如果php-fpm
放到了容器里面,又该如何进行远程debug呢,今天就来解决这个问题。
前提准备
- 为现有的php环境安装好
xdebug
扩展,安装成功之后可以通过页面输出phpinfo()
查看是否安装成功xdebug。
- 安装能够进行调试的ieda环境,一般对于php程序开发者来说,使用
phpStorm
较多,本文也是通过这个讲述。 - 成熟的
docker
构建的环境。
开始配置
1、在容器中配置好xdebug支持,这个取决于php的版本,有的版本有单独的xdebug.ini配置文件,有的需要在php.ini的结尾添加以下信息:
;开启xdebug支持远程调试
xdebug.remote_enable=1
;远程调试的主机,一般都是docker宿主机器,本地调试就是本机,ip可以通过`docker inspect 容器名获得`
xdebug.remote_host=172.23.0.1
;远程调试机器的端口,一般是9000,和后面讲到的phpStorm里面保持一致
xdebug.remote_port=9000
;idekey 对接调试的密钥,和后面phpStorm里面的务必保持一致
xdebug.idekey=PHPSTORM
;自动触发调试,可以将这个值设为1;
xdebug.remote_autostart=1
;更多参数介绍请参见这里 https://xdebug.org/docs/all_settings
xdebug.remote_connect_back=1
xdebug.remote_handler=dbgp
xdebug.max_nesting_level=250
xdebug.remote_log='/var/www/xdebug_logs/xdebug_docker.log'
2、重启容器 docker restart 容器名称
3、配置phpStorm
,主要包括配置基础debug,配置server,启动debug等几个步骤。
- 配置xdebug的基础信息打开
setting->debug
里面做如下配置,9000表示启动的端口,和上面的xdebug里面的保持一致。
- 再
setting->server
中做如下配置,下面的Use path mapping一定要勾选配置好,不然可能出现控制台能够看到调试,但是phpStorm断点拦截不到的情况。
- 配置和启动一个xdebug程序,编辑配置。
- 再弹出框的左上角点击+号,增加一个
PHP Remote Debug
应用,选择刚刚上面创建的server(remoteDebug),然后Session id为PHPSTORM,和上面xdebug里面的保持一致。然后点击右下角Apply和OK。
- 倒数第二步,开启xdebug监听,先点击电话,然后点击甲壳虫,直到显示为下面这个状态
- 最后打开浏览器访问网站,phpStorm自动断点。
windows docker desktop 下调试 参考 https://segmentfault.com/a/1190000022269173 https://learnku.com/articles/32746
每天进步一点点,更多精彩内容,欢迎关注公众号“编程社”!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」