1. 需要在php.ini中填写xdebug的相关配置;
(在WAMPServer之中,需要左键单击WAMPServer的图标,通过菜单编辑php.ini配置;若直接改写php.ini,会被WAMPServer所覆盖)
在php.ini的最末尾,作如下设置:
;(以实际路径为准)
zend_extension = "d:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
[xdebug]
xdebug.remote_enable = On
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
;(以实际路径为准)
xdebug.profiler_output_dir = "d:/wamp/tmp"
xdebug.show_local_vars=0
xdebug.idekey = "PHPSTORM"
仅使用XDebug的remote debug功能,不使用profiler功能;idekey用于和开发环境(如“PHPStorm”,“Zend Studio”)、浏览器进行通讯(据说用Firefox比较多,调试扩展稳定;chrome的调试扩展不好用)。
2. 进入PHPStorm的File->Setting,在左侧找到PHP->Servers,添加一个Web开发服务器。Host与Port填写开发服务器的实际地址,实际服务端口。Debugger选择XDebug。
3. 在Settings对话框中找到PHP->Debug,确保PHPStorm监听XDebug的调试端口9000.不做其他的修改。
(如果用了phpfpm,或手工配置了fastcgi,有可能会出现9000端口占用冲突;此时需要重新分配端口)
4. 进入PHP->Dbgp Proxy,填写IDE key为”PHPSTORM”,Host为本机,端口为80:
5. 进入“Web Browsers”,只勾选Firefox,其他的浏览器统统去掉;
6. 新建一个工程,加上一个测试用的php文件,确保它能够正确地上传到服务器
(在Tools->Deployment->Configuration对话框中,Deployment path不能置空,至少需要设为“/”;设为空,无法部署,Deployment显示为灰色)
7. 勾选”Run->Start Listening for PHP Debug Connection”,IDE开始监听调试端口;
8. 在Firefox中安装PHP调试扩展“The easiest Xdebug 2.1.1-signed”,重启FireFox浏览器,为调试扩展设置如下参数:
在此与php.ini保持一致,不开启trace和profiler。
9. 在FireFox浏览器右侧工具栏中会多出三个图标,按下“爬虫”图标启用调试(任何一个选项卡都可以用):
10. 在PHPStorm之中找到悬浮的“火狐”图标,点击它(也可以点击上方的箭头,Run xxx.php),就能看到断点里打了一个勾,表示断点已生效。在下方的窗口里单击“单步步过”,能观察到断点里的勾消失掉。反应速度有些慢。
此时已能够单步调试PHP代码,Enjoy it!
配置好之后,如果需要单步调试,在PHPStorm中勾选“Run->Start Listenning for PHP Debug Connections”,在Firefox浏览器中点击“爬虫”图标,在PHPStorm中运行需要调试的页面即可(不需要通过PHPStorm的Debug启动模式,直接Run)。