PhpStorm, XDebug, and DBGp Proxy

时间:2022-08-13 12:28:53

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

1.单客户机远程调试

  PhpStorm, XDebug, and DBGp Proxy

  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运行环境)

    I.配置php程序远程服务,phpstorm:File>Settings>Languages & Frameworks>PHP>Servers

      apache服务:其中"use path mappings"用于将本地代码与远程服务主机代码映射,然后跟踪

    II.配置xdebug,phpstorm:File>Settings>Languages & Frameworks>PHP>Debug

      Debug port:默认9000,与"xdebug.remote_port"一致

    III.单击“edit configurations”,选择服务器

    IIII.在phpStorm里打开监听,就是一个电话一样的按钮

    V.打开debug,就是那个像甲壳虫的小按钮(此操作会打开一个链接然后将连接后的参数XDEBUG_SESSION_START注入到cookie:XDEBUG_SESSION,该值唯一

      标示一个ide)

2.多客户机远程调试

  PhpStorm, XDebug, and DBGp Proxy

  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"

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

    I.配置php程序远程服务,phpstorm:File>Settings>Languages & Frameworks>PHP>Servers

      apache服务:其中"use path mappings"用于将本地代码与远程服务主机代码映射,然后跟踪

    II.配置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里设置一致)

    III.将IDE的配置注入到DBGP Proxy server

      单击工具栏"Tools",选择"Register IDE"进行注册(若果没有配置IDE,可以选择"configurations"进行配置,然后注册)

    IIII.单击"edit configurations",选择服务器

    V.在phpStorm里打开监听,就是一个电话一样的按钮

    VI.打开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/

    http://wenku.baidu.com/link?url=ppL0e290lQSjle8jkI3Apaqvi5yYkv_kuSxl6SYnvwZFWPVMemRl8NrLO_QKmm6Kunn1JBmMmBLs5I4IL5yW5ixI2KQ0mFmcr1hL9uyIgq3

Komodo Remote Debugging