Xdebug 配置 php 调试器

到官网 http://www.xdebug.com/download.php 下载 Windows binaries 版 Xdebug 。linux 系统下载 source 版 tgz 压缩包
找到对应PHP版本的 Xdebug ,后面带 TS 的为线程安全,本机环境为 win XP + PHP5.2 ,下载的是 Xdebug 2.2.3 PHP 5.2 VC9 TS (32 bit) 
source 版下载的是 xdebug-2.2.3.tgz



安装:
Win   :将下载的dll文件(这里是php_xdebug-2.2.3-5.2-vc9.dll)放到 php 安装目录的 ext 文件夹下。本机放在 D:\ApacheServer\php\ext\

Linux :执行安装文件,此 linux 安装未经验证

tar -xvzf xdebug-2.2.3.tgz
cd  xdebug-2.1.2
phpize //如果 phpize 没有这个命令 ,需要安装一次 phpize 。phpize 可以让php支持扩展模块,安装 phpize:sudo apt-get install php5-dev 如果安装了继续进行下面命令
./configure
make
make install
cp modules/xdebug.so /usr/local/src/php/ext  //将 xdebug.so 文件移到 php 下面



编辑php.ini,加入下面几行

zend_extension_ts           = "D:\ApacheServer\php\ext\php_xdebug-2.2.3-5.2-vc9.dll"
xdebug.remote_enable        = true
xdebug.remote_host          = 127.0.0.1
#xdebug.remote_port         = 9000 #默认端口 9000

xdebug.profiler_enable      = on
xdebug.trace_output_dir     = "D:\ApacheServer\xdebug"
xdebug.profiler_output_dir  = "D:\ApacheServer\xdebug"

#其余参数
#开启自动跟踪
xdebug.auto_trace           = On
#开启异常跟踪
xdebug.show_exception_trace = On
#开启远程调试自动启动
xdebug.remote_autostart     = On
#收集变量
xdebug.collect_vars         = On
#收集返回值
xdebug.collect_return       = On
#用于zend studio远程调试的应用层通信协议
xdebug.remote_handler       =dbgp
#如果设得太小,函数中有递归调用自身次数太多时会报超过最大嵌套数错
xdebug.max_nesting_level = 10000


zend_extension_ts = "D:\ApacheServer\php\ext\php_xdebug-2.2.3-5.2-vc9.dll" 与 Zend Debugger 一样
不同系统及 PHP 版本有不同写法
Linux 和 Mac OS X               : zend_extension    = "D:\ApacheServer\php\ext\php_xdebug-2.2.3-5.2-vc9.dll"
Windows Thread-Safe 版 PHP      : zend_extension_ts = "D:\ApacheServer\php\ext\php_xdebug-2.2.3-5.2-vc9.dll"
Windows Non-Thread-Safe 版 PHP  : zend_extension    = "D:\ApacheServer\php\ext\php_xdebug-2.2.3-5.2-vc9.dll"
所以同一服务器只能加载一个调试工具,要么 Zend Debugger 要么 Xdebug
但在 PHP5.5 环境下测试, Thread-Safe 版 PHP 后面不能加 _ts 只能写成 zend_extension = 

xdebug.remote_enable = true 允许远程IDE调试

xdebug.profiler_enable = on 及后面的目录 "D:\ApacheServer\xdebug" 作用是开启把执行情况的分析文件写入到指定目录中的功能,可自由设置。也可不写
生成的文件,例如 cachegrind.out.4408 这种格式命名的文件,用编辑器打开可以看到很多程序运行的相关细节信息

重启Apache


重启
先写一个可以导致执行出错的程序,例如尝试包含一个不存在的文件。

<?php
require 'abc.php';
?>

然后通过浏览器访问,惊奇地发现,出错信息变成了彩色的了,并且Xdebug跟踪代码的执行



Zend Studio断点
修改 Zend Studio 设置
Window -> Preferences -> PHP -> Debug
将右侧 "Default Settings" 中的 "PHP Debugger" 设置为 "XDebug"


在代码中在左边行数栏上双击加断点
点击工具栏上"小蜘蛛"旁边的小箭头 -> Debug As -> PHP Web Application
会跳出 Debug 视图
点击工具栏向下箭头(Step Into)或按 F5 逐行执行。点击绿色向右箭头(Resume)或按F8一直执行,直到断点处停下
调试结束时菜单栏点击红色结束按钮(Terminate),再点击臭虫按钮重新开始调试
调试结束后要点击菜单栏红色结束按钮(Terminate),结束调试

你可能感兴趣的:(apache,http,PHP)