使用Xdebug的远程调试,Xdebug作为一个嵌入到PHP的程序,扮演着客户端的角色,而IDE则作为服务器。下面的动态图展示了连接建立的过程。

服务端的IP为10.0.1.2, 使用HTTP协议,端口为80
IDE在IP地址为10.0.1.42的机器上,xdebug.remote_host被设置为10.0.1.42
IDE监听9000端口,因此,xdebug.remote_port设置为9000
HTTP请求从运行这IDE的服务器上发起
Xdebug连接到10.0.1.42:9000
调试开始运行,返回HTTP响应 使用非固定IP,多个开发者
如果使用了xdebug.remote_connect_back指令的话,连接的建立过程是不同的: 服务端的IP是10.0.1.2, 端口为80
IDE运行在一个动态IP的计算机上,因此设置xdebug.remote_connect_back为1
IDE监听端口 9000, 因此,配置xdebug.remote_port 为9000
发送HTTP请求,Xdebug检测HTTP header中的IP地址
调试开始运行,产生HTTP响应 多用户调试
Xdebug只允许你使用指定的IP地址(xdebug.remote_host)进行远程调试连接.他不会自动的连接回浏览器运行访问的机器IP,除非你是用xdebug.remote_connect_back指令。
如果你的开发者们在同一个服务器上的不同的项目上面进行开发,你可以使用Apache的每个目录中的.htaccess功能指定xdebug.remote_host指令,配置php_value xdebug.remote_host=10.0.0.5。 但是,如果是多个开发者在同样的代码上进行开发的话,.htaccess将无法完成该项功能。
针对这个问题,这里有两个解决方案。第一个是你可以使用DGBp代理,对于如何使用这个代理,请查看多用户调试这篇文章。你可以在 ActiveState的站点 下载这个代理。这里有更多的文档在Komodo FAQ.
第二个方案是可以使用xdebug.remote_connect_back配置项(Xdebug 2.1之后引入)。
更多参考:
https://blog.csdn.net/21aspnet/article/details/47756651

下面用图说明Netbeans+Xdebug调试过程中,Xdebug扮演着客户端的角色,而IDE则作为服务器


而Xdebug完或结束调试后,Xdebug才把php处理结果交给apache,apache通过页面形式展示给用户,可以通过tail -f access.log验证。debug结束前无access日志,结束后产生相应access日志。

特别说明:

netbeans+xdebug单步调试遇PHP致命错误终止执行,单点调试也会随即停掉

NetBeans+Xdebug调试原理的更多相关文章

  1. windows7 + iis7 + fastcgi + php5 + netbeans + xdebug 调试 php

    Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况. windows7 + iis7 + fastcgi + php5 + netbe ...

  2. NetBeans+Xdebug调试php代码

    本文目录 : Xdebug的工作原理 Xdebug扩展的配置 NetBeans的配置 调试实例 本文小结 参考文档 Xdebug:是PHP的调试器和分析器(Debugger and Profiler ...

  3. NetBeans + Xdebug 调试WordPress

    用NetBeans进行WordPress的相关开发和定制很顺手,配合Xdebug后调试起来也很方便. 详细配置过程如下(本例中Xampp安装目录为D:\xampp): 1: 下载xdebug(版本需匹 ...

  4. php开启xdebug扩展及xdebug通信原理

    xdebug调试原理 IDE(如PHPStorm)已经集成了一个遵循BGDP的XDebug插件,当开启它的时候, 会在本地开一个XDebug调试服务,监听在调试器中所设置的端口上,默认是9000,这个 ...

  5. 用netbeans和xdebug调试php的配置

    xdebug的chrome.firefox插件 chrome:Xdebug helper firefox:easy Xdebug ----------------------------------- ...

  6. 关于用netbeans和xdebug调试php的配置

    之前用过一段时间在apache,netbeans下通过xdebug调试.感觉不错,最近事情不多想从新配置下,是基于最新版本的php5.4做的,后来参考了下xdebug的官网说明完成的.官网地址:htt ...

  7. netbeans xdebug

    xdebug配置 装了wamp后,xdebug默认就安装好了,为了能够用netbeans远程调试,配置文件里得加几句 [xdebug] xdebug.remote_enable = on xdebug ...

  8. PHP CLI应用的调试原理

    我们在Eclipse里选中一个PHP文件,右键选择Debug As->PHP CLI Application. 所谓CLI应用,是指这种脚本文件不需要任何Web服务器即可运行,当然, PHP运行 ...

  9. Mac: phpstorm中使用xdebug调试php

    Mac: phpstorm中使用xdebug调试php###phpstorm和webserver都在同一台机器上这种情况1.安装xdebug使用pecl安装即可2.php.ini配置[xdebug]z ...

随机推荐

  1. 015——VUE中使用key唯一令牌解决表单值混乱问题

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. axios 讲解 和vue搭建使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Spring AOP(面向切面示例)

    什么是AOP?基本概念切面(aspect):横切关注点被模块化的特殊对象.通知(advice):切面必须要完成的工作.切面中的每个方向称之为通知.通知是在切面对象中的.目标(target):被通知的对 ...

  4. 解决 jsonP 安全问题

    jsonp安全性防范,分为以下几点: 1.防止callback参数意外截断js代码,特殊字符单引号双引号,换行符均存在风险 2.防止callback参数恶意添加标签(如script),造成XSS漏洞 ...

  5. Leetcode 1020. Number of Enclaves

    dfs或者bfs class Solution: def dfs(self, A, rows, cols, i, j): if not (0 <= i < rows and 0 <= ...

  6. 在ubuntu16.04上安装php7 mysql5.7 nginx1.10并支持http2

    安装nginx 首先更新软件包 并且安装nginx sudo apt-get update sudo apt-get install nginx 开放防火墙配置 sudo ufw allow 'Ngi ...

  7. 使用LNMP环境安装typecho博客的全程记录

    虽然我是搞asp.net的 但是十分欣赏php,php有很多开源的博客程序 比如大名鼎鼎的Wordpress.还有各种独立博客大牛使用的z-blog,以及短小精悍的emblog. wordpress臃 ...

  8. fedora 安装新字体 courier new xxx

    fedora安装新字体 1.将windows字体拷贝到/usr/share/fonts/truetype下面,文件夹名字可以随便起 cp /media/c/WINDOWS/Fonts/* /usr/s ...

  9. bzoj 4806 炮

    Written with StackEdit. Description 众所周知,双炮叠叠将是中国象棋中很厉害的一招必杀技.炮吃子时必须隔一个棋子跳吃,即俗称"炮打隔子". 炮跟炮 ...

  10. Bean后置处理器 BeanPostProcessor

    1.BeanPostProcessor接口的作用 Bean后置处理器允许在调用初始化方法前后对Bean进行额外的处理,Bean后置处理器对IOC容器的所有bean实例逐一处理,而非单一实例. 我们可以 ...