美文网首页
老法师谈技术 - PHP远程单步调试

老法师谈技术 - PHP远程单步调试

作者: xcity | 来源:发表于2016-11-19 23:40 被阅读0次

老法师谈技术 - �PHP单步调试方法(xdebug)

在production环境上面使用单步调试的机会其实不多,但是不妨碍在代码编写阶段,或者代码阅读阶段,单步调试重要性,有时候单步调试一段代码比单纯阅读要效率高很多。

借助于xdebug的库,PHP的单步调试能力非常强大,而且并不依赖于具体客户端,也就是说,无论你是使用PHPStorm或者是Sublime,还是VIM都可以调试PHP程序。鉴于PHP程序都是部署在服务器端,我们这里只讨论remote调试方法。

远程(Remote)调试服务器端PHP程序需要考虑到下面几个方面:

  • 在服务器端,配置xdebug支持remote调试,其实也就是让xdebug发送调试信息到制定地址和端口,
  • 在客户端(你的PC端),配置xdebug服务器,来接受远端(Remote)的调试信息
  • 在客户端映射代码,这样远端的调试信息可以定位到准确的代码位置

无论你是使用何种客户端,都需要考虑上面的三个方面,好下面开始正式的配置信息。

  1. 服务器端的xdebug配置

    首先需要安装xdebug,这里就不展开了,不同的系统安装方法略有不同。其次,配置xdebug,以ubuntu为例配置文件在(/etc/php7/mods-available/xdebug.ini)

    end_extension = "xdebug.so"
    xdebug.remote_autostart = 1
    xdebug.remote_enable = 1
    xdebug.remote_connect_back = 0
    xdebug.idekey=PHPSTORM
    xdebug.remote_handler = "dbgp"
    xdebug.remote_host = 10.0.1.4
    xdebug.remote_port = 9000
    xdebug.remote_log = "/tmp/xdebug/xdebug_remote.log"
    

    idekey是客户端用来认证xdebug发送过来的信息,所以确保两边配置的要完全一致。remote_host需要填写的是xdebug服务器的地址,在这里也就是你的PC机的地址。remote_log非常有用,发现远程调试不工作的时候,log会告诉你那里出了错。

  2. 客户端xdebug配置

    Sublime是常用的PHP编辑器,以Sublime举例来说,需要首先安装xdebug插件,最简单的办法就是使用Package Control,具体如何安装这里就不多说了,跟任何其他插件的安装没有任何区别。Sublime的xdebug的配置信息如下:

    {
        "path_mapping": {
            "/WeCenter/" : "/Users/aaa/Mydoc/Code/WeCenter/v319/wecenter-master/"
        },
        "url": "http://192.168.1.24:30080",
        "ide_key": "PHPSTORM",
        "port": 9000,
    }
    

    配置非常简单,唯一要注意的是path mapping,如果设置错误,中断的同时不能定位到具体的代码。点击Tools\xDebug\Start Debugging之后,在浏览器里面刷新页面的时候,应该可以看到如下界面:


    Sublime-xdebug.png

PHPStorm是另外一个广泛使用的PHP开发工具,其配置都是以图形界面的方式进行,我们下面开始一步步的配置:

在Preference\Languages & Frameworks\PHP\Servers:

PhpStorm1.png

在Preference\Languages & Frameworks\PHP\Debug\DBGp Proxy:


ps-2.png

在Preference\Languages & Frameworks\PHP\Debug:


PhpStorm3.png

在Run\Edit Configurations\Defaults\PHP Remote Debug:


PhpStrom4.png

在上述配置都完成了之后,点击Run\Start Listening on PHP Debug Connecting按钮就可以进行单步调试了。


PhpStorm5.png

相关文章

  • 老法师谈技术 - PHP远程单步调试

    老法师谈技术 - �PHP单步调试方法(xdebug) 在production环境上面使用单步调试的机会其实不多,...

  • 老法师谈技术 :PHP简单粗暴调试

    大型服务器端程序的调试方法跟运行在个人电脑或者手持设备的程序的调试思路完全不一样,主要体现在下面几点: [ ] 服...

  • 2019-07-15

    花了一周多时间最详细的整理了PHPSTORM+XDEBUG的调试教程,实现了php程序的远程调试、单步调试、跟踪等...

  • Chrome浏览器客户端调试JS代码

    Source调试JS代码 理解单步调试,单步进入块,单步退出块的区别 单步调试F10 跳过当前函数调用 单步进入块...

  • android studio mac快捷键

    1、调试 单步调试:fn + F8单步进入:fn + F7单步跳出:fn + F8 + shift单步进入源码:f...

  • 使用Eclipse进行远程debug程序

    1、什么是远程调试,就是在A机器上利用Eclipse单步跟踪调试B机器上的Web应用。项目部署以后经常会遇到各种各...

  • phpstorm+xdebug调试php代码

    调试Web应用 编辑php.ini文件 remote_enable=1 允许远程调试 remote_connect...

  • PHPDebug互动扩展【phpdbg】功能浅析

    对于 PHP 开发者来说,单步的断点 Debug 调试并不是我们的必修课,而 Java 、 C# 、 C++ 这些...

  • 那些远程桌面连接遇到的坑

    TestBird在远程调试上有非常成熟的技术,在APP测试中广受业界好评。下面我们谈谈WEB环境下如何避免远程调试...

  • 反调试 Fake F8

    欺骗单步步过调试 DTDebug 调试工具快捷键 快捷键作用注释F7单步步入设置EFLAGS的TF位为1 调试CA...

网友评论

      本文标题:老法师谈技术 - PHP远程单步调试

      本文链接:https://www.haomeiwen.com/subject/ocvepttx.html