首先,修改php-fpm文件夹下的xdebug.ini文件
; xdebug.remote_host=dockerhostxdebug.remote_connect_back=1xdebug.remote_port=9000xdebug.idekey=PHPSTORMxdebug.remote_autostart=0xdebug.remote_enable=0xdebug.cli_color=0xdebug.profiler_enable=0xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp/profiling"xdebug.remote_handler=dbgpxdebug.remote_mode=reqxdebug.var_display_max_children=-1xdebug.var_display_max_data=-1xdebug.var_display_max_depth=-1
用下方参数覆盖原代码
xdebug.remote_host=host.docker.internalxdebug.remote_connect_back=0
容器内的IP地址是动态变化的,xdebug.remote_host可以设置为host.docker.internal,该名称解析为主机使用的内部IP地址。
第二步,打开IDE(vscode)
点击vscode中的扩展按钮,搜索并安装”PHP Debug“插件
点击vscode中的“运行”按钮(ctrl+shift+d)
如果你之前没有配置过,需要打开或创建一个launch.json配置文件
点击创建launch.json文件后,会提示你选择环境
选择PHP后,将配置修改为下面示例
{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "pathMappings": { "/var/www/laravel": "${workspaceRoot}" }, "port": 9000, } ]}
注意:将代码中pathMappings中/var/www/laravel改为你的项目在容器中的实际地址
接下来编译php-fpm的镜像,等待编译完成,并重新运行容器
docker-compose build php-fpmdocker-compose up -d php-fpm
执行结果
之前就可以去我们的项目里验证效果了
可以先去看一下phpinfo里相关的配置是否生效了
这里我们看到配置已经生效,再看一下相关参数
这里看到远程调试已经开启,remote_host也和我们设置的参数一致,接下来就可以验证调试效果了
切换到vscode编辑窗口,按F5,连接远程调试,设置断点后,运行项目,就可以发现,我们现在已经可以进行远程逐点调试了。