AI智能
改变未来

phpstorm + Xshell隧道 + xdebug 远程调试云主机生产环境的php

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、云主机安装xdebug扩展
    • 2.1重启PHP
    • 2.2检查云主机上xdebug是否正确安装
  • 3、PHPStorm配置远程编码
  • 4、PHPStorm配置远程调试
  • 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》。

    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » phpstorm + Xshell隧道 + xdebug 远程调试云主机生产环境的php