@ZEAL Blog·厉
WWW Zeal Blog
We stand alone,
TOGETHER.
+ 0 - 0 | §XAMPP+PHPStorm+XDebug调试环境

本文仅针对本地Windows开发环境。其他情况下关键点类似,但需要根据实际情况做调整。

XAMPP部分:

先确定你的XAMPP版本有没有自带XDebug模块(查找 Path_to_XAMPP/php/ext/php_xdebug.dll 文件)。如果没有,需要下载对应的正确XDebug模块文件并放到 Path_to_XAMPP/php/ext/ 目录下。然后编辑 Path_to_XAMPP/php/php.ini 配置文件,开启相应的XDebug配置部分。

[XDebug]
zend_extension = "Path_to_XAMPP\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "Path_to_XAMPP\logs\xdebug"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "Path_to_XAMPP\logs\xdebug"
; xdebug.idekey = "phpStorm"

通过 remote_host 和 remort_port 两个参数指定调试客户端位置。对于本地调试缺省即可,如果要远程调试,把参数改到对应接收调试信息的客户端地址即可。改完记得重启apache。

到命令行下输入 Path_to_XAMPP\php\php.exe -m ,如果看到xdebug已经加载,说明配置正确。否则请检查xdebug.dll文件版本是否正确并且配置参数都准确无误。

[Zend Modules]
Xdebug

PHPStorm部分:

基于 IntelliJ IDEA 的PHP IDE开发环境。用过 IntelliJ IDEA based 环境之后,你就会发现 Eclipse based 环境有多SHI(比如 Zend Studio)。

PHPStorm关于 XDebug 的配置有几处地方需要留意(其中Settings建议可以直接设置 Default Settings 以便对所有Project生效,如果你的开发环境比较单一的话):

  • File>Settings>PHP>Debug 下,找到 Xdebug 部分配置信息,看 Debug port 是否是 9000 (其实就是要和前面服务端php.ini里的remote_port保持一致);
  • File>Settings>PHP>Debug>DBGp Proxy 下,IDE key 随便填(好记就行,比如填 phpStrom 。后面浏览器扩展设置部分会用到这个key值);Host填你的XDebug所在服务器地址(本地调试那就是 localhost),Port 填你的HTTP应用所在的端口,缺省当然就是 80 ;
  • File>Settings>PHP>Servers 下,可以添加多个需要Debug的主机信息,便于以后快速切换使用;

浏览器扩展部分:

浏览器与IDE交流实际上是通过一个特定的cookie头信息来握手,所以要让PHPStorm能够抓到Debug请求并进入断点还需要在打开浏览器的时候设置相应的cookie值。

对于Firefox来说,可以安装类似 easy Xdebug (with moveable icon) 这样的扩展来快速激活Debug状态。!注意!有些xdebug相关扩展可能存在不兼容问题导致设置无效,请选择能够正常工作的扩展。一个不行换另一个试试。安装完之后需要设置一下扩展的参数。主要就是 Value of he debug cookie 的值,设置成与前面在DBGp Proxy下设置的IDE key一样即可。

Chrome下应该也有类似的快捷操作扩展可供安装。如果不想安装额外扩展的话,也可以到PHPStorm官网生成一个marklet添加到浏览器收藏夹,每次要调试的时候先执行一下产生正确的cookie信息即可。

=========得瑟的分割线============

至此,配置完毕。日常调试中,要做的步骤通常如下:

  1. 激活PHPStorm IDE的 "Start Listen for PHP Debug Connections" 按钮(右上角 Debug 区类似小电话的图标,带红色禁止小圆圈标志Start Listen for PHP Debug Connections表示未激活,变绿Stop Listen for PHP Debug Connections表示在监听中);
  2. 在PHPStorm中设置想要的断点;
  3. 在浏览器中激活xdebug cookie(如果是Firefox+easy Xdebug扩展的话,点击工具栏的两个图标Toggle xdebug cookie和Toggle Xdebug Profiler cookie,变红表示cookie已成功设置);
  4. 在浏览器中访问对应的PHP页面,正常情况下窗口会弹到 PHPStorm IDE中并进入Debug状态;

然后和大量的土制print调试语句告别吧:) ~~~

标签 ( PHP ) :
Since 2005.04.27  梦想 就像鸡蛋 要么孵化 要么臭掉RSS Feed (Entries) | About me | Back To Home | @ZEAL | zbird.com | 沪ICP备05024379号