用vscode调试远程服务器的php

2023-11-02

一开始用phpstorm+chrome的xdebug helper连接远程的腾讯云服务器进行xdebug调试,一直不成功,卡在:
phpstorm Waiting for incoming connection with ide key xxxxx
想了半天可能是腾讯云安全组没加规则,然后加上还是不行。
查了很多文章,弄了两三天,还是弄不好。(顺便说下好多文章是重复的,不知道连博客都要抄的意义)
最后换了vscode的remote ssh+php debug解决了。 谢天谢地
反正目标是调试成功,管他什么ide。其实有点反感phpstorm,太臃肿。vscode配置的时间没用多少,其他方案不行可以参考一下……

0.安装vscode

vscode也可以编其他语言。没有装的可以装一下。大部分人应该都装过,这里步骤略去

1.安装remote ssh插件

可以参考这篇教程,比我的详细
https://www.cnblogs.com/liyufeia/p/11405779.html
在这里插入图片描述

2.连接服务器

可以点击左下角的绿色按钮,或者ctrl+shift+p打开命令框输入remote ssh应该也有。
第一次用要新建一个配置文件,我这里不好复现配置过程,参考上面的教程吧。
在这里插入图片描述
(2020/10/3更新)每次都要输一遍密码比较烦,建议改用密钥,具体过程上面那个教程里也有,不过我没搞成功。后面查了ssh配置文件的文档,只要加IdentityFile配置就行了,比如说我windows密钥放在C:\Users\HP.ssh\tencent(HP是我的用户名,tencent是我的密钥文件名,一般是id_rsa)

IdentityFile C:\Users\HP\.ssh\tencent

3.在服务器端vscode安装php debug插件

在这里插入图片描述
注意是连上了服务器以后,在服务器端的vscode上安装调试的插件,安装的时候文字是install in xxx(服务器在配置中的名字)。

4.安装xdebug

xdebug是用来调试php的软件,原本和vscode没什么关系,但是你要调试php就一定要装他,安装过程网上一大把,我这里也推荐几篇,注意xdebug要和php版本兼容,记得改wget的文件名,安装完在自己的php.ini中配置一下,这两篇里有,不过是远程调试的,我们用vscode其实是本地调试,下面会讲配置
xdebug版本兼容参考https://xdebug.org/docs/compat#versions
xdebug安装教程1https://blog.csdn.net/song634/article/details/80170838
xdebug安装教程2https://www.cnblogs.com/wicub/p/6226996.html

如果不知道php.ini在哪可以输这个命令

php -i |grep php.ini
原理是用grep从php -i中输出有"php.ini"的一段

在这里插入图片描述
我的配置是这个,看[xdebug]里的。zend_extension扩展路径,是xdebug安装完以后输出的路径,可以翻一下控制台输出复制过来,按教程来一般是一样的。然后增加remote_port,改了下端口,不弄也行。有很多是之前配置phpstorm时弄的,已经注释掉了(前面有分号、颜色是蓝色)
在这里插入图片描述
重启httpd(或者其他http服务器),只是单纯php的话不用管

service httpd restart
也可以验证一下xdebug开启没有
php -i |grep xdebug
如果看到一大堆xdebug配置就是表明xdebug已经加入到php中了

5.vscode配置

具体参考vscode上php debug的说明文档,我这里简单说一下
随便打开一个php文件点三角形按钮调试,一开始应该是没有调试php的配置的,他会弹出命令框,然后新建一个launch.json,里面会自动创建php的两条配置
在这里插入图片描述
我的配置是这样的
上面一个“Listen for XDebug”是用在php被动启动的情况,比如html里form提交到php,因为直接调试没有http request,所以要监听,记得打断点。第二个就是直接调试当前的php。注意port端口号,和php.ini的port要一样,如果之前没设,那这里一般是9000。
在这里插入图片描述
考虑到不小心删了什么的,我这里就文本也放一段

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 13795
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 13795
        }
    ]
}

配置完了以后再按按钮开始调试,就可以停在断点了

总结

利用vscode的插件把远程连接调试php转化为本地调试php,通讯从php xdebug通讯变成vscode通讯,不能说流程简单了一点,但是也是可行的。

vscode在其他语言也用的到,remote ssh也可以用在其他和服务器有关的开发中,所以其实只是添加了一个php debug插件。

配置环境实在是太难了,各种奇怪问题都找不到办法……

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用vscode调试远程服务器的php 的相关文章

随机推荐