phpstorm + Xshell隧道 + xdebug 远程调试云主机生产环境的php
- 1、Windows下使用Xshell创建隧道
- 1.1、新建会话
- 1.2不分配终端
- 1.3添加一个远程(R)隧道
- 1.4输入日志
- 1.5修改云主机ssh配置
- 1.6ssh隧道连接
- 1.7查看云主机 9090端口状态
- 2.1重启PHP
- 2.2检查云主机上xdebug是否正确安装
1、Windows下使用Xshell创建隧道
为了把阿里云主机上的9090端口的数据转发到本地无固定IP的Windows开发环境,我们使用Xshell,创建一个ssh隧道在ssh连接上建立加密通道,进行云主机9090端口数据的转发。
ssh隧道有三种:本地(L)、远程(R)和动态(D),我们场景需要使用的是远程(R)ssh隧道。
下面我们打开Xshell来创建隧道,步骤如下
1.1、新建会话
我们新建一个会话,填好名称、主机信息。注意:勾选连接异常关闭时自动重新连接,间隔可自己设置,这里是60秒
1.2不分配终端
为安全起见,服务器上用于建立隧道的用户,可以被被设置为不允许通过Shell登录的。如果设置了,那我们需要设置Xshell在进行SHH连接时不分配终端。
1.3添加一个远程(R)隧道
我们添加一个远程(R)隧道,则将云服务器的9090端口,映射到localhost:9090端口,从而达到将云服务器9090端口的数据转发到本地xdebug对应的9090端口的目的。
1.4输入日志
为了能了隧道的运行情况,我们设置Xshell输出隧道相关的日志。
到这里,Xshell创建隧道就快结束了。
1.5修改云主机ssh配置
在/etc/ssh/sshd_config中设置GatewayPorts yes
vi /etc/ssh/sshd_config
设置:
#GatewayPorts noGatewayPorts yes
保存后重启ssh服务
systemctl restart sshd.service
1.6ssh隧道连接
这时,我们可以进行连接创建ssh隧道,输出信息如下:
Xshell 6 (Build 1326)Copyright (c) 2002-2017 NetSarang Computer, Inc. All rights reserved.Type `help\' to learn how to use Xshell prompt.[c:\\~]$Connecting to 121.196.166.166:22...Connection established.To escape to local shell, press \'Ctrl+Alt+]\'.[13:31:07] Outgoing packet message id: 20, length: 1403[13:31:07] Incoming packet message id: 20[13:31:07] Outgoing packet message id: 30, length: 37[13:31:07] Incoming packet message id: 31[13:31:07] Outgoing packet message id: 21, length: 1[13:31:07] Incoming packet message id: 21[13:31:07] Outgoing packet message id: 5, length: 17[13:31:07] Incoming packet message id: 6[13:31:07] Outgoing packet message id: 50, length: 35[13:31:07] Incoming packet message id: 51[13:31:07] Outgoing packet message id: 50, length: 55[13:31:07] Incoming packet message id: 52[13:31:07] Outgoing packet message id: 80, length: 42[13:31:07] Incoming packet message id: 80[13:31:07] Incoming packet message id: 4[13:31:07] Incoming packet message id: 81[13:31:07] Trying to listen remote port 9090... Success.
1.7查看云主机 9090端口状态
netstat -lnpt |grep 9090
tcp 0 0 0.0.0.0:9090 0.0.0.0:* LISTEN 6094/sshd: root
我们的ssh隧道就创建好了。
2、云主机安装xdebug扩展
我们使用宝塔面板安装xdebug扩展。
我们对xdebug进行配置,和开发环境一致。
[Xdebug]xdebug.collect_params=1xdebug.collect_return=1xdebug.auto_trace=Onxdebug.profiler_enable = 1xdebug.profiler_enable_trigger = 0xdebug.remote_host = \"localhost\"xdebug.remote_port=9090xdebug.remote_handler=\"dbgp\"xdebug.profiler_append = 0xdebug.remote_enable=Onxdebug.idekey=phpstorm-xdebug
2.1重启PHP
2.2检查云主机上xdebug是否正确安装
我们通过phpinfo()来检查xdebug是否正确安装
<?phpphpinfo();?>
3、PHPStorm配置远程编码
大家可以参考《 阿里云centos搭建ftp+Phpstorm配置文件夹映射到云服务器进行远程编码》。
4、PHPStorm配置远程调试
现在,我们就可以像配置本地高度环境一样来配置远程调试环境。
大家可以参考《 PhpStorm2020 + phpstudyV8 +XDebug》。