PhpStorm, XDebug, and DBGp Proxy
phpstorm 利用 xdebug、dbgp-proxy配置远程调试
1.单客户机远程调试
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.多客户机远程调试
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