摘要:phpstorm 利用 xdebug、dbgp-proxy配置远程调试

1.单客户机远程调试

DBGpProxy1.png

a.安装xdebug库文件(windows:php_xdebug.dll;linux:php_xdebug.so)

b.修改php.ini(php源码运行环境)

        ;xdebug库文件
        zend_extension = "d:/wamp/bin/php/php5.3.10/zend_ext/php_xdebug.dll"
        ;开启远程调试
        xdebug.remote_enable = On
        ;客户机ip
        xdebug.remote_host=localhost
        ;客户机xdebug监听端口
        xdebug.remote_port=9000
        xdebug.remote_handler=dbgp
        ;idekey
        xdebug.idekey=PhpStorm
        xdebug.profiler_enable = off
        xdebug.profiler_enable_trigger = off
        xdebug.profiler_output_name = cachegrind.out.%t.%p
        xdebug.profiler_output_dir = "d:/wamp/tmp"

c.客户机(IDE运行环境)
    1. Frameworks>PHP>Servers。
apache服务:其中"use path mappings"用于将本地代码与远程服务主机代码映射,然后跟踪
    2. 配置xdebug,phpstorm:File>Settings>Languages & Frameworks>PHP>Debug。
Debug port:默认9000,与"xdebug.remote_port"一致
    3. 单击“edit configurations”,选择服务器
    4. 在phpStorm里打开监听,就是一个电话一样的按钮
    5. 打开debug,就是那个像甲壳虫的小按钮(此操作会打开一个链接然后将连接后的参数XDEBUG_SESSION_START注入到cookie:XDEBUG_SESSION,该值唯一
标示一个ide)

2.多客户机远程调试

DBGpProxy2.png

a.在远程服务主机上,安装Komodo Remote Debugging(http://code.activestate.com/komodo/remotedebugging/)
 

    输入pydbgpproxy.exe --help,

    控制台输出:

      -i hostname:port listener port for IDE processes(defaults to '127.0.0.1:9001')
      -d hostname:port listener port for debug processes(defaults to '127.0.0.1:9000')

    启动pydbgpproxy.exe -i 0.0.0.0:9001 -d 9000

    控制台输出:

      INFO: dbgp.proxy: starting proxy listeners. appid: 10814
      INFO: dbgp.proxy: dbgp listener on 127.0.0.1:9000
      INFO: dbgp.proxy: IDE listener on 0.0.0.0:9001

      则成功启动

dbgp proxy server监听9000与远程主机服务通信,监听9001与IDE(phpstorm)通信

b.安装xdebug库文件(windows:php_xdebug.dll;linux:php_xdebug.so)

c.修改php.ini(php源码运行环境)

        ;xdebug库文件
        zend_extension = "d:/wamp/bin/php/php5.3.10/zend_ext/php_xdebug.dll"
        ;开启远程调试
        xdebug.remote_enable = On
        ;DBGP PROXY SERVER所在主机ip
        xdebug.remote_host=localhost
        ;DBGP PROXY SERVER监听端口
        xdebug.remote_port=9000
        ;代理
        xdebug.remote_handler=dbgp
        ;此种模式下该项不在起作用,可以取消
        ;xdebug.idekey=PhpStorm
        xdebug.profiler_enable = off
        xdebug.profiler_enable_trigger = off
        xdebug.profiler_output_name = cachegrind.out.%t.%p
        xdebug.profiler_output_dir = "d:/wamp/tmp"

d.客户机(IDE运行环境)

  1. 配置php程序远程服务,phpstorm:File>Settings>Languages & Frameworks>PHP>Servers
    apache服务:其中"use path mappings"用于将本地代码与远程服务主机代码映射,然后跟踪
  2. 配置xdebug,phpstorm:File>Settings>Languages & Frameworks>PHP>Debug
    Debug port:xdebug的监听端口xx(其中xx根据自己选择),listening for connections from 'xdebug'

    DBGP Proxy:
    IDE Key(IDE的唯一key,一定不要与其他客户机的key相同,否则不能注册)
    Host(DBGP Proxy server 的主机ip)
    Port(DBGP Proxy server与IDE通信的监听端口,与-i 0.0.0.0:9001里设置一致)
  3. 将IDE的配置注入到DBGP Proxy server
    单击工具栏"Tools",选择"Register IDE"进行注册(若果没有配置IDE,可以选择"configurations"进行配置,然后注册)
  4. 单击"edit configurations",选择服务器
  5. 在phpStorm里打开监听,就是一个电话一样的按钮
  6. 打开debug,就是那个像甲壳虫的小按钮(此操作会打开一个链接然后将连接后的参数XDEBUG_SESSION_START注入到cookie:XDEBUG_SESSION,该值唯一标示一个ide),将XDEBUG_SESSION_START参数值修改为IDE Key

参见:
http://matthardy.net/blog/configuring-phpstorm-xdebug-dbgp-proxy-settings-remote-debugging-multiple-users/
https://wenku.baidu.com/view/fe795cc48bd63186bcebbcbb.html

Komodo Remote Debugging

转载自:PhpStorm, XDebug, and DBGp Proxy - zbjice - 博客园,感谢作者