php linux 调试工具,内网Visual Studio Code通过XDebug远程调试linux服务器PHP脚本

开发环境是这样:一台位于内网环境下的Windows机器使用VSCode作为IDE编写

{

"version": "0.2.0",

"configurations": [

{

"name": "Listen for XDebug",

"type": "php",

"request": "launch",

"port": 9000,

"serverSourceRoot": "/var/www/lighttpd/phpproj",

"localSourceRoot": "${workspaceRoot}"

},

{

"name": "Launch currently open script",

"type": "php",

"request": "launch",

"program": "${file}",

"cwd": "${fileDirname}",

"port": 9000,

"serverSourceRoot": "/var/www/lighttpd/phpproj",

"localSourceRoot": "${workspaceRoot}"

}

]

}

其中serverSourceRoot为项目位于服务器端的存储位置完整路径,localSourceRoot为本地项目存储位置完整路径,一般用环境变量${workspaceRoot}即可表示项目根目录。

调试用linux服务器端在PHP服务器可用的前提下,安装

yum install php-pecl-xdebug

安装,其它环境、安装方式可参考XDebug官方说明。

安装好后修改XDebug配置文件/etc/php.d/xdebug.ini,内容如下:

; Enable xdebug extension module

zend_extension=/usr/lib/php/modules/xdebug.so

[XDebug]

xdebug.remote_enable = 1

xdebug.remote_autostart = 1

xdebug.remote_connect_back = 0

开启XDebug的调试功能,然后重启web服务器以使安装好的XDebug扩展及相关配置生效。重启后可通过phpinfo()内容验证XDebug是否成功启用并且设置的参数是否正确。没问题后开发环境已经算是搭建好了,接下来要解决的就是开发机的内网问题,一般来说,如果开发机和服务器都位于公网或可随意映射端口时,通过XDebug调试的过程是这样:开发机访问服务器的web服务器上的PHP脚本,这时服务器端PHP的XDebug扩展会回连发起HTTP请求设备的调试端口(默认9000),成功后即可开始断点调试等操作。另外这种情况下还可通过xdebug.remote_host的方式指定开发机的IP来选择允许指定IP进行调试操作。但在开发机处于内网环境并无法暴露调试端口的情况下,显然XDebug的回连操作是无法成功的,这时就需要通过某种方式来使调试连接能够成功建立,这里我使用的是ssh tunnel的方式,下面操作是以token2shell作为ssh客户端,通过其自带SSHpf程序来完成隧道建立的,其它ssh客户端如putty等也可实现类似功能:

打开token2shell的SSHpf,编辑连接,输入正确的server信息,并添SSH Port Forwarding,Type使用Remote Forwarding,Remote Port填写9000,Destination Host的Address为127.0.0.1,Port 9000。设置好后点击连接,验证成功后隧道连接即建立完成,可以在服务器端console通过netstat -lap查看到sshd正在侦听9000端口。然后开启VSCode的调试Listen for XDebug,然后设置PHP脚本的断点,打开任意浏览器,访问服务器端的对应php文件(当然,事先需要将本地的php上传到服务器端),一切正确的话断点就可以命中了。

文字加密小工具v3

请输入要加密的内容

博主友情提示:

如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值