侧边栏壁纸
博主头像
秋码记录

一个游离于山间之上的Java爱好者 | A Java lover living in the mountains

  • 累计撰写 142 篇文章
  • 累计创建 317 个标签
  • 累计创建 46 个分类

vs code远程调试Linux服务器上的php代码

前言

不管是测试服务器,还是生产服务器,程序出现了问题,虽然可以根据日志来锁定问题,但从效率上来讲,总是那么不尽如人意。

虽然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,安装这个插件,它就是用来远程连接的。

image-20241212101519354

连接远程服务

ctrl+shift+p打开命令框输入remote ssh,或者点击左下角绿色按钮,这里没能截取全图。

image-20241212103741110

首次是需要建一个配置文件。

image-20241212103825611

image-20241219111018224

# 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进行开发了。

image-20241212180346150

64 位操作系统下载这个:点击下载备用下载) 32 位操作系统下载这个:点击下载备用下载

image-20241212180750941

OpenSSH安装路径添加到环境变量 Path中。

image-20241212181225327

使用 RSA 进行免密登录

生成公钥/密钥对

直接在VS Code中打开terminal,或者cmd打开一个黑窗口,输入以下命令。

ssh-keygen -t rsa

image-20241219112600731

将公钥添加到服务器上

把公钥文件id_rsa.pub拷贝到需要登录的服务器上(存储路径可以随意,但是之后加入到另一个文件尾部的时候注意路径地址。)

image-20241219113731191

将公钥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秘钥文件路径> #这个非必要,通过它可以避免每次连接都要输入密码的麻烦。

image-20241212181549572

VS Code 安装 PHP Debug

PHP代码调式总是缺不了XDebug这个扩展。

首先,我们需要先在VS Code IDE中安装PHP Debug这个插件。

image-20241217173817500

注意:是连上了服务器以后,在服务器端的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

image-20241217174242333

VS Code配置 XDebug

虽然我们在VS Code上安装了PHP Debug这款插件,也在服务器上安装了用来调式PHPXDebug扩展。

要想XDebug能够正常工作,我们需要配置监听XDebug端口的配置文件。

image-20241217174409206

image-20241217174518083

你以为到这里就大功告成了吗?不,还差那么一丢丢。

那就是需要配置服务器上的PHP解释器。

image-20241217174635982

把图中红色部分修改你服务器上对应的PHP解释器文件全路径即可。

image-20241219172827242

浏览器定制 | Windows11 编译 Chromium 133.0.6885.0(截稿前Chromium最新版之编译篇[一])
« 上一篇 2024-12-12
谁说Win7安装不了Node.js最新版的呢?都2025年,还不更新系统到Win11
下一篇 » 2024-12-26

相关推荐