vscode + phpxdebug 实现在服务器端进行断点调试
运行环境:linux + 宝塔面板 + php7.2 + Nginx
一、必须安装的扩展和插件
- 下载xdebug扩展,如果是在linux下需要自己编译安装
- vscode里面下载Romto-SSH,这是一款强大的款跨平台插件,具体能干啥自己看插件介绍
- vscode里面下载PHP Debug插件
二、配置讲解
2.1 下载xdebug扩展,如果是windows平台需要去xdebug官网下载对应php版本的xdebug, 如果是其他平台可以参照官网文档进行配置,下载后将文件放在:\php\php7.3.4nts\ext\的目录下,然后修改php.ini文件(修改文件后记得要重启Apache或者Nginx),在文件里面加上
zend_extension = xdebug || full path #full path 就是指下载的xdebug存放的文件路径
2.1 查看xdebug是否配置成功,在应用目录运行:php -v 命令,当显示有with Xdebug 就表示配置成功,配置失败可以检查一下xdebug的路径是否正确
PS G:\phpstudy\WWW\test> php -v Failed loading G:\phpstudy\Extensions\php\p
PHP 7.3.4 (cli) (built: Apr 2 2019 21:57:22) ( NTS MSVC15 (Visual C++ 2017) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans
2.3 xdebug扩展配置:
找到对应 php版本 的php.ini文件,文件里面加入:
参数说明:
- remote_enable 是否开启远程调试
- remote_autosrart 是否开启远程调试自动启动
- remote_host 允许调试的客户端IP
- remote_port 远程调试的端口
注意:配置的端口号请检查有没有放行,更多配置参数说明,可以查看官网文档
2.Romto-SSH插件使用:
2.1 插件介绍
2.2 安装插件
2.3 安装后点击左侧图标:依次点击设置按钮 > 选择对应的配置文件;我这里已经配置过 ,所以和初次配置有点区别
2.4 编辑配置文件 > 设置连接参数
参数说明:
- Host 主机名 可以随意填写
- HostName 服务器地址
- User 登录到服务器的用户名
2.6 连接到远程服务器
点击图标会打开一个新窗口,鼠标右键的选项可以选择在当前窗口打卡或者新窗口打开
2.7 验证密码
这里选择的是linux平台,其他平台暂未尝试
2.8 添加需要进行调试的项目
以上步骤都完成了就表示连接服务器成功
3.安装PHP debug插件
注意:这个是给线上服务器安装PHP debug插件,不要和本地的搞混了,安装插件流程和本地的项目没有什么区别,直接安装即可
4.PHP debug插件在vscode中的使用
4.1添加、删除、编辑断点
- 添加断点:鼠标左键单击代码行号左侧出现一个小圆点 ● 就表示断点添加成功
- 删除断点:鼠标左键单击小圆点 ● 即可删除,或者在小圆点 ● 上面单击鼠标右键通过菜单项删除
- 编辑断点:在小圆点 ● 上面单击鼠标右键通过菜单项进行编辑,调试中很少用到
4.2 配置PHP debug 插件
参数说明:
- name:debug 会话名称,可以随意填写
- port:xdebug 运行的端口号,也就是php.ini配置文件中的xdebug.remote_port参数的值
- 添加其他参数或者了解其他的参数含义请参考官方文档
4.3 调试代码
两种方式运行断点调试:
- 1.如上图所示手动点击启用
- 2.使用快捷键F5启用
支持如下操作:
- Continue / Pause F5
- Step Over F10
- Step Into F11
- Step Out Shift+F11
- Restart Ctrl+Shift+F5
- Stop Shift+F5
开启调试后可以看到调用的堆栈信息,也可以鼠标移到某个语句和变量上查看最终的值,在调试的过程中也可修改和删除业务代码,只不过要等下一次调试才会修改的内容才会生效。