开发环境是这样:一台位于内网环境下的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号、电子邮件地址或其他隐私敏感信息,欢迎使用

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

  1. 将Visual Studio Code和Windows Subsystem for Linux一起使用

    目录 要求 启用Windows Subsystem for Linux 安装Linux(Ubuntu) 将VS Code与WSL一起使用 安装MobaXterm 配置X客户端 安装VS Code 结论 ...

  2. deepin终端编译c程序_Deepin Linux安装使用Visual Studio Code(VSCode)调试C++

    昨天换了Deepin Linux,感觉很不错的样子,至少对于对操作系统颜值很重视的我来说,非常好用.准备长期使用. 平时使用Windows下的DEV CPP比较爽,调试功能鼠标悬浮看变量的功能非常好用 ...

  3. linux不支持32,Visual Studio Code 1.36发布,不再支持Linux 32位

    VS Code 1.36,即2019年6月发布的Visual Studio Code,已发布.新版本已更新至Electron 4.x,意味着它将不再在Linux 32位上运行. 现在可以将文件夹从VS ...

  4. ubuntu下使用visual studio code来编译和调试C++

    最近想在linux上编译c++代码,自己却一直习惯window上的IDE.以前公司要我写Linux代码的时候,我一般都是用eclipse + CDT,而eclipse这东西吧,我个人感觉因为加载组件太 ...

  5. Visual Studio Code(VSCode) 编辑/编译/调试 C++ 代码

    前言 最近想要切换编辑工具,之前工作中使用过 Source Insight,Eclipse,CLion 来写 C++ 代码.目前来说 Source Insight 已经非常古老,只有编写代码还说得过去 ...

  6. 最新版Visual Studio Code下载及远程连接服务器(很详细哦)

    文章目录 前言 一.Visual Studio Code的下载 二.Visual Studio Code远程连接服务器 1.下载Remote Development 2.进行Config配置 3.进行 ...

  7. java 远程debug 内网_java jdb remote debug - java远程调试

    简介 用log来做调试的方法低效茫目 远程调试是jdk自带的一个有利调试工具,可以快速定位问题 在工作机上使用eclipse来自带的remote debug 问题 运维禁止使用remote debug ...

  8. Visual Studio 2012/2010/2008 远程调试

    远程调试应用场景 部署环境:ASP.NET(C#)+IIS+Win7 64 bit 很多公司的开发模式都是将开发机器和服务器分开,也就是开发一台机,服务器一台机.而测试人员会在服务器上录入测试数据,此 ...

  9. Linux环境中Visual Studio Code 安装配置及其卸载(详细教程)

    两篇相关博文: 在VMware15中创建虚拟机安装ubuntu系统(超详细教程) Linux环境编译运行C/C++语言程序----配置gcc.g++(详细教程) 此篇分享我在linux环境下安装VS ...

最新文章

  1. 强烈推荐——微软一站式开发技术框架 All-In-One Code Framework (CodeFx)
  2. Windows10/11安装Linux子系统Ubuntu 20.04LTS,轻松使用生信软件,效率秒杀虚拟机
  3. LeetCode自我总结(对链表进行插入排序)
  4. HTTP Status 500 - 问题
  5. Oracle_spatial的空间操作符介绍
  6. mysql自连接_MySQL自连接
  7. java org.jsoup does not exist_java使用Jsoup连接网站超时的解决方法
  8. 水晶报表的使用经验和资料总结
  9. 据我爱无人机网-英国政府向无人机研发项目提供3000万资助
  10. QT实现内录-电脑没有立体声混音,通过虚拟声卡实现内录
  11. mscomm32.ocx 注册 和 web 调用案例
  12. MSN Messenger的用户管理
  13. RPLIDAR激光雷达测试
  14. jQuery mobile ——制作表单
  15. MBTI职业性格测试
  16. 算法优化:旋转对称图最优解法及思路分享(几乎最优)
  17. App设计者开发APP要注意的21个雷区(上)
  18. configure使用说明
  19. TCP\IP 数据流与数据包
  20. 奇迹红孩子二---探讨商务互动社区

热门文章

  1. python3 django配置数据库(mysql)
  2. 洛谷 P1309 瑞士轮
  3. Zookeeper开源客户端框架Curator的简单使用
  4. OC中的NSNumber、NSArray、NSString的常用方法
  5. 苹果向求职者抛出的8大难题
  6. 查看linux系统的平均负载
  7. 控制编译文件控制代码质量
  8. 新浪微博登录接口实例
  9. [转] Leaving patterns practices
  10. oracle从备份提取归档,Oracle归档模式有备份,丢失数据文件的恢复