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
每天进步一点点,更多精彩内容,欢迎关注公众号“编程社”!!!