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运行环境)
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.多客户机远程调试
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运行环境)
- 配置php程序远程服务,phpstorm:File>Settings>Languages & Frameworks>PHP>Servers
apache服务:其中"use path mappings"用于将本地代码与远程服务主机代码映射,然后跟踪 配置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里设置一致)
- 将IDE的配置注入到DBGP Proxy server
单击工具栏"Tools",选择"Register IDE"进行注册(若果没有配置IDE,可以选择"configurations"进行配置,然后注册) - 单击"edit configurations",选择服务器
- 在phpStorm里打开监听,就是一个电话一样的按钮
- 打开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
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。