日期:2014-05-16  浏览次数:20782 次

Windows 7 32位系统下Zend studio 9.04的XDebugger配置(详尽版)

为什么要使用XDebugger

最开始我只在我的Mac上使用Zend Studio 9.0.4开发环境,在Mac下载并直接安装好Zend Studio 9.0.4后就能直接进行调试了。但是最近想在我的Windows 7系统下也配置一个同样的开发环境。从网上下载并成功安装好windows 7下的Zend Studio 9.04后本想快速的在windows下进行Debug代码了,但是很奇怪所有设置的断点貌似都没有被命中。因此在网上查找了一些安装教程并对照了我当前Zend Studio环境的Debug配置。 点击Windows->Preferences菜单,在左侧菜单栏中展开并选中PHP->Debug,然后在后侧的明细信息中我发现当前的PHP Debugger为Zend Debugger。随即我又检查了我的LAMP下的PHP.ini文件,并通过查询phpinfo.php文件我确定我的php版本为5.4.7,而我的php.ini文件中[zend debugger]区间的配置是被注释掉的,难道是Zend Debugger没有配置正确?朝着这个思路我尝试着更新php.ini文件以及Zend Stuio中的Zend Debugger相关配置,但是始终也没有成功。最总我又细细查询了一下Zend Debugger文档,原来Zend Debugger对PHP只支持到5.3版本。

看来放在我面前的有两个选择:

  1. 重新下载一个带低版本PHP的WAMP包+对应的Zend Debugger版本;
  2. 选择XDebugger,下载适合PHP 5.4.7的XDeugger版本,配置Zend Studio使之与XDebugger能一起工作

 

在本文中我将着重尝试XDebugger的方式,请参考以下的具体步骤。

 

XDebugger安装

从http://www.xdebug.org/download.php中选择合适的版本(注意你的系统是否是64位系统,以及你当前的PHP版本号,其中以TS结尾的安装包为线程安全<Thread Safe>的安装包)

我的操作系统是32位的Windows 7,而且我也不能确定到底我是不是要下载线程安全的版本,因此我选择了PHP 5.4 VC9(32 bit)以及PHP 5.4 VC9 TS(32 bit)两个安装包。

解压安装包,并把文件复制到WAMPP目录下php/ext子目录下。

由于我不能确定我时候时候线程安全的版本,所以我把down下来的那个线程安全版本php_xdebug-2.2.2-5.4-vc9.dll更名为php_xdebug.dll以此先假设一下我当前需要的版本是线程安全的版本。

 

XDebugger配置

打开php.ini文件,以下是我本地的XDebugger配置:

 

接下来需要对Zend Studio进行一些配置操作

再次在菜单中选择Windows -> Preferences,在弹出的窗口中,在左侧边栏中选中PHP->Debug,在右侧窗口的将XDebug设置为PHP Debugger。

然而对于Zend Studio 9.04来说,默认的PHP Executable为PHP 5.3.15(CGI),而我们当前按的PHP版本为5.4.7,显然我们需要对此进行更改。对此我为PHP5.4.7增加了两个Executable(一个为CGI,另一个CLI),并将PHP 5.4.7(CGI)作为默认的PHP Executable,具体的配置如下图:

 

测试

在XAMPP Control Panel中重新启动Apache并重新启动Zend Studio, 打开测试项目设置断点并点击Debug按钮。 如果不出意外,我们的断点将会被精确的命中。

 

判断你的PHP是否是线程安全的,

通过浏览器打开phpinfo.php文件,如果你找到如下设置,那你的php就是线程安全的。

 

其他:

至于为什么Mac下Zend Studio 9.04无需任何配置就能进行调试,将会在其他文章中提及。

 

参考:

XAMPP

http://www.apachefriends.org/en/xampp.html

 

XDebug

http://www.xdebug.org/index.php

 

Zend Studio 9.0.4安装

http://www.geekso.com/ZendStudio9-key
 
 
关于对PHP线程安全的讨论
http://stackoverflow.com/questions/1623914/what-is-thread-safe-or-non-thread-safe-in-php