记一次远程调试
前言
docker for windows就是一个**(无能狂怒),想build一个环境复现,结果build不起来,无奈使用vps上的docker for linux进行远程调试。这里记录一下如何进行远程调试。
环境
1 | [win10]-①->[debian8-②->[docker]] |
本地环境为win10系统,使用vscode。
远程环境为debian8,拥有公网,开启一个docker容器暴露80端口
ssh
选择使用ssh作为第①步的链接
首先为vscode安装Remote-SSH扩展
安装完毕后,右侧栏会多出一个显示器一样的图标,点进后添加链接
之后进行设置设置 => 用户 => 扩展 => Remote-SSH => [Config file & Show Login Terminal]
将自己的ssh config file的path填入config file中,虽然vscode会自动寻找config file,但容易出错。
出错的原因应该是环境变量设置有问题,但我乱七八糟的环境变量太多了,懒得搞了=。=
之后选上Show Login Terminal选项,可以在终端显示密码的输入提示。虽然可以使用公匙登录,但因为windows的权限设置,如果公匙文件的权限没有严格锁死的话是不允许使用的。所以懒癌发作(
之后按照vscode的提示设置就好
成功连接后,我们就相当于在远程服务器的本地进行操纵了。
launch.json
接下来对php进行远程Debug
因为php环境是使用Docker环境搭建的,所以在填写launch.json时仍然需要按照远程环境的方法填写。
1 | { |
xdebug.ini
接下来填写xdebug.ini
因为其使用在docker环境,所以有一个专用的host——host.docker.internal
来访问到宿主主机
1 | zend_extension=xdebug.so |
Dockerfile
在设置dockerfile或者docker-compose的端口时,不必将容器内部的9000端口暴露
因为xdebug的本质是由ide来开放9000端口接受xdebug的请求,所以暴露容器的9000端口没有用=。=
最后
享受你的debug时光吧!(((