前言
不管是测试服务器,还是生产服务器,程序出现了问题,虽然可以根据日志来锁定问题,但从效率上来讲,总是那么不尽如人意。
虽然PHP
可以在代码中通过var_dump()
和dump()
来调试输出,但这效率,可真是一言难尽
啊。
由于Coder
开发都是在本地,一番测试各个功能并没有什么问题,可一旦部署到测试服务器上,再次进行测试时,却出现了诡异的问题,也许这些问题,是你见都没见过的问题。
面对这种困惑,我们能想到的就是,能不能在本地电脑通过工具,远程调试测试服务器上的PHP
代码呢?
答案当然是可以的。
VS Code安装 Remote
如果你的电脑还没有安装这款开源免费且开箱即用的IDE
,那么你可以先去下载安装它。
VS Code
官方下载地址:https://code.visualstudio.com/
作为一位Coder
,我想你应该不至于会去国内的什么下载站
进行下载李鬼
版的VS Code
吧,除了官方的,其他的都是盗版,如果你无知到下载了国内付费的VS Code
(原先武汉就有一家公司,无耻到把VS Code
开源代码套个壳,拿出来卖,什么公司忘了),那你算是给IT
界丢人了。
安装 Remote-SSH
在打开的VS Code
,在左侧的功能栏里,点击那个田字格
的图标,搜索框中输入remote
后,点开如下图所示的,点击install
,安装这个插件
,它就是用来远程连接
的。
连接远程服务
ctrl+shift+p
打开命令框输入remote ssh
,或者点击左下角绿色按钮,这里没能截取全图。
首次是需要建一个配置文件。
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host <给连接的服务器命名>
HostName <需要连接的服务器IP>
User <连接服务器的用户>
ForwardAgent yes
windows7出现的错误(非win7系统可以跳过)
选择远程服务器
的系统类型,出现下图的错误,那是因为在windows7
系统中没有安装SSH
,当然现如今,几乎很少开发者会在windows7
进行开发了。
64 位操作系统下载这个:点击下载(备用下载) 32 位操作系统下载这个:点击下载(备用下载)
将OpenSSH
安装路径添加到环境变量 Path
中。
使用 RSA 进行免密登录
生成公钥/密钥对
直接在VS Code
中打开terminal
,或者cmd
打开一个黑窗口,输入以下命令。
ssh-keygen -t rsa
将公钥添加到服务器上
把公钥文件id_rsa.pub
拷贝到需要登录的服务器上(存储路径可以随意,但是之后加入到另一个文件尾部的时候注意路径地址。)
将公钥id_rsa.pub
填充到authorized_keys
尾部。
cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
Remote-SSH配置中添加本地秘钥文件路径
我们打开之前的Remote-SSH
配置文件,在文件末尾加入以下内容。
IdentityFile <你本地的SSH秘钥文件路径> #这个非必要,通过它可以避免每次连接都要输入密码的麻烦。
最终的Remote-SSH
配置文件将会是这般。
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host <给连接的服务器命名>
HostName <需要连接的服务器IP>
User <连接服务器的用户>
ForwardAgent yes
IdentityFile <你本地的SSH秘钥文件路径> #这个非必要,通过它可以避免每次连接都要输入密码的麻烦。
VS Code 安装 PHP Debug
PHP
代码调式总是缺不了XDebug
这个扩展。
首先,我们需要先在VS Code IDE
中安装PHP Debug
这个插件。
注意:是连上了服务器以后,在服务器端的vscode
上安装调试的插件,安装的时候文字是install in xxx
(服务器在配置中的名字)。
为服务器上的 PHP 安装XDebug扩展
xdebug
是用来调试php
的扩展库,但是你要调试php
就一定要装他,注意xdebug
要和php
版本兼容,记得改wget
的文件名,安装完在自己的php.ini
中配置一下,我们用vscode
其实是本地调试。
xdebug
版本兼容参考https://xdebug.org/docs/compat#versions
如果不知道php.ini
在哪可以输这个命令。
php -i |grep php.ini
由于XDebug
对应的Linux
系统只提供了源码,需要你自己在服务器进行编译,然而编译XDebug
源码不在本文主题的范畴,遂不再这里做过多赘述。
打开php.ini
文件,在它末尾加入以下内容。
[xdebug]
zend_extension=/www/server/php/74/lib/php/extensions/no/debug-non-zts-20190902/xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=localhost
xdebug.client_port=13579
xdebug.remote_log=/tmp/xdebug.log
VS Code配置 XDebug
虽然我们在VS Code
上安装了PHP Debug
这款插件,也在服务器上安装了用来调式PHP
的XDebug
扩展。
要想XDebug
能够正常工作,我们需要配置监听XDebug
端口的配置文件。
你以为到这里就大功告成了吗?不,还差那么一丢丢。
那就是需要配置服务器上的PHP
解释器。
把图中红色部分修改你服务器上对应的PHP
解释器文件全路径即可。