php开启xdebug扩展
1、下载Xdebug(先看php下的ext文件夹(C:\xampp\php\ext)下有没有php_xdebug.dll文件,如果有的话,就不用下了。)
到目前为止,Xdebug的最新版本为2.7.0,可以前往Xdebug官方网站下载与自己的PHP版本匹配的Xdebug模块文件。
由于笔者使用的是php5.6.37版本,因此下载的Xdebug模块文件为php_xdebug-2.5.5-5.6-vc11.dll
Xdebug 2.5.5
- source (SHA256: 72108bf2bc514ee7198e10466a0fedcac3df9bbc5bd26ce2ec2dafab990bf1a4)
- Windows binaries:
PHP 5.5 VC11 (64 bit) (SHA256: 44e5f00131f94e7e057b421f7a987e3feb6cdd612a0b2fdd6ddbf7236d458860)
PHP 5.5 VC11 (32 bit) (SHA256: 9f5f7613de935b0f3b2793940c0c9e629eb879dec9d6b8dd2adc9e48c923aa32)
PHP 5.5 VC11 TS (64 bit) (SHA256: 44874c2360dd63591d75da6f08213c1d71f5578cabff7935cd015c364f47d2ab)
PHP 5.5 VC11 TS (32 bit) (SHA256: 1f8bb426d7a151b37bf3d42ff7163ff64f9a7a9537205c1d18d70e6d22750999)
PHP 5.6 VC11 (64 bit) (SHA256: 990e457e05e0f8678db21534931b0699d89d5f06d9ee42e26cde9f225c4e4b8b)
PHP 5.6 VC11 (32 bit) (SHA256: d1fdcb4e7ff0de6d1b70fdb37a09a78178aab60d52e1999cc6776e1447c7b723)
PHP 5.6 VC11 TS (64 bit) (SHA256: 8ac0b0e148e437abcf9acf2baf0b40b356cb1a248c53807a5b956e7f8c5acc68)
PHP 5.6 VC11 TS (32 bit) (SHA256: 5b24d00b725370024d308ec58fd00a189980cf7b2cde58e20e2e0f3b0f6a8825)
PHP 7.0 VC14 (64 bit) (SHA256: b16b98782ebeafccf98b9b3dc90f98e0462b2775904edec11c805ef9325c90c6)
PHP 7.0 VC14 (32 bit) (SHA256: 24afc6cc972dd2affff27c23b4284f8a7e39b485be9717f768cf0476c46ad37f)
PHP 7.0 VC14 TS (64 bit) (SHA256: 44028857e52bcdf18a3b18e647be58bccb955ab3c8a8a6644174abb9e3e82f87)
PHP 7.0 VC14 TS (32 bit) (SHA256: 276efa640a30042491fccaefe3ef76edcfb21d8766511373a1e7f855bb03b373)
PHP 7.1 VC14 (64 bit) (SHA256: 143498e9f0ef95d832137acc5788ab0c603b7b14323c2e57327c3ad699776705)
PHP 7.1 VC14 (32 bit) (SHA256: f3fbdb299f1340f5e8c0e09ed9890638c02f8cbe9986b280021e8f2be0c5c047)
PHP 7.1 VC14 TS (64 bit) (SHA256: f6603e4cbe0b9dc6323f0e9fc66f2ef3bcca558f009528749f245f6e50f1d4b4)
PHP 7.1 VC14 TS (32 bit) (SHA256: 370834f3666e7e690d876a58b9b10a416b2284681d72809c7a45a893dec19ab2)
2、安装配置Xdebug
接着,我们将Xdebug模块文件放入PHP安装目录/ext文件夹中,接着我们在PHP配置文件php.ini中追加如下配置内容:
[Xdebug]
;指定Xdebug扩展文件的绝对路径
zend_extension="C:\xampp\php\ext/php_xdebug.dll"
;启用性能检测分析
xdebug.profiler_enable=on
;启用代码自动跟踪
xdebug.auto_trace=on
;允许收集传递给函数的参数变量
xdebug.collect_params=on
;允许收集函数调用的返回值
xdebug.collect_return=on
;指定堆栈跟踪文件的存放目录
xdebug.trace_output_dir="D:/debug"
;指定性能分析文件的存放目录
xdebug.profiler_output_dir="D:/debug"
xdebug.profiler_output_name = cachegrind.out.%t.%p
备注:在上述配置内容中,zend_extension用于指定Xdebug扩展模块的文件路径(由于Xdebug是基于Zend引擎的扩展,因此必须使用zend_extension配置指令,而不是extension。zend_extension指令的配置路径必须是绝对路径)。之后的6个配置语句是Xdebug的配置参数。
此时,我们重启服务器,通过访问含有phpinfo()函数的PHP文件,即可看到Xdebug模块的相关信息。
到这里就算配置完了!
3、配置参数选项附录
在上面的Xdebug配置中,我们只配置了6个常用的配置选项。当然,Xdebug还支持更多的配置参数,详情见下表。
配置参数选项
参数值类型与默认值 | 参数选项描述 | |
---|---|---|
xdebug.auto_trace | boolean类型,默认值=0 | 是否在脚本运行之前自动调用相关追踪函数。 |
xdebug.cli_color | integer类型,默认值=0 | 该参数自2.2版本开始引入。如果值=1,当处于CLI模式或连接虚拟控制台时,Xdebug将高亮显示var_dumps()和堆栈输出,;在Windows中,这需要安装ANSICON工具。如果值=2,不管是否处于CLI模式或连接虚拟控制台,Xdebug都会高亮显示var_dumps()或堆栈输出;这种情况下,你可能会看到转义后的代码。 |
xdebug.collect_assignments | boolean类型,默认值=0 | 该参数自2.1版本开始引入。用于控制是否为函数跟踪添加变量赋值功能。 |
xdebug.collect_includes | boolean类型,默认值=1 | 控制是否在跟踪文件中写入include()、include_once()、require()、require_once()等函数中用到的文件名。 |
xdebug.collect_params | integer类型,默认值=0 |
控制在调用函数时,是否收集传递给函数的参数信息。如果参数值过大,这可能会占用大量的内存;不过,在Xdebug 2中不会出现该问题,因为Xdebug 2将相关数据写入磁盘中,而不是占用内存。 如果值=0,则不显示任何信息。 |
xdebug.collect_return | boolean类型,默认值=0 | 控制是否在追踪文件中写入函数调用的返回值。 |
xdebug.collect_vars | boolean类型,默认值=0 | 控制是否收集指定作用域中的变量信息。由于需要反向工程PHP的操作码数组,因此Xdebug的分析速度可能比较慢。 |
xdebug.coverage_enable | boolean类型,默认值=1 | 该参数自2.2版本开始引入。控制是否允许通过设置内部结构来启用代码覆盖率功能。 |
xdebug.default_enable | boolean类型,默认值=1 | 当发生异常或错误时,是否默认显示堆栈信息。 |
xdebug.dump.* | string类型,默认值=Empty | 这里的*可以是COOKIE, FILES, GET, POST, REQUEST, SERVER, SESSION中的任意一个。用于指定发生错误时是否显示超全局变量数组中的索引变量信息。比如,你想要显示请求的IP地址和请求方式,可以设置为 xdebug.dump.SERVER=REMOTE_ADD,REQUEST_METHOD 多个索引变量用英文逗号隔开,如果要输出其中的所有变量,可以直接用*,例如: xdebug.dump.GET=* |
xdebug.dump_globals | boolean类型,默认值=1 | 控制是否显示通过xdebug.dump.*定义的所有超全局变量的信息。 |
xdebug.dump_once | boolean类型,默认值=1 | 如果出现多个错误,控制超全局变量信息是在所有错误中显示,还是只在第一个错误中显示。 |
xdebug.dump_undefined | boolean类型,默认值=1 | 控制是否显示超全局变量中未定义的值。 |
xdebug.extended_info | integer类型,默认值=1 | 是否强制进入PHP解析器的"extended_info"模式,这将允许Xdebug以远程调试器对文件或行添加断点。开启此模式将拖慢脚本的允许速度,该参数只能在php.ini中设置。 |
xdebug.file_link_format | string类型,默认值=, | 自2.2版本开始引入。用于指定堆栈信息中用到的文件名称的链接样式,这允许IDE通过设置链接协议,直接点击堆栈信息中的文件名称,即可快速打开指定的文件。例如:ZendStudio://%f@%l(%f表示文件路径,%f表示行号)。 |
xdebug.force_display_errors | integer类型,默认值=0 | 自2.3版本开始引入。是否强制显示错误信息。 |
xdebug.force_error_reporting | integer类型,默认值=0 | 自2.3版本开始引入。是否强制显示所有错误级别的信息。 |
xdebug.halt_level | integer类型,默认值=0 | 自2.3版本开始引入。指定出现那些错误级别的错误时,中止程序运行。例如:xdebug.halt_level=E_WARNING|E_NOTICE|E_USER_WARNING|E_USER_NOTICE(也仅支持上述4种错误级别)。 |
xdebug.idekey | string类型,默认值=*complex* | 指定传递给DBGp调试器处理程序的IDE Key。 |
xdebug.manual_url | string类型,默认值=http://www.php.net | 仅2.2.1以下版本可用,用于指定从函数堆栈和错误信息链接到的帮助手册的基本URL。 |
xdebug.max_nesting_level | integer类型,默认值=100 | 指定递归的嵌套层级数。 |
xdebug.overload_var_dump | boolean类型,默认值=1 | 自2.2版本开始引入,当php.ini中的html_error设为1时,Xdebug是否默认使用自身的改进版本来重载var_dump()。 |
xdebug.profiler_append | integer类型,默认值=0 | 当多个请求映射到相同文件时,指定是覆盖之前的调试信息文件还是追加内容到该文件中。 |
xdebug.profiler_enable | integer类型,默认值=0 | 指定是否启用Xdebug的性能分析,并创建性能信息文件。 |
xdebug.profiler_output_dir | string类型,默认值=/tmp | 指定性能分析信息文件的输出目录 |
xdebug.profiler_output_name | string类型,默认值=cachegrind.out.%p | 指定性能分析信息文件的名称 |
xdebug.remote_enable | boolean类型,默认值=0 | 是否开启远程调试 |
xdebug.remote_handler | string类型,默认值=dbgp | 指定远程调试的处理协议 |
xdebug.remote_host | string类型,默认值=localhost | 指定远程调试的主机名 |
xdebug.remote_log | string类型,默认值= | 指定远程调试的日志文件名 |
xdebug.remote_mode | string类型,默认值=req | 可以设为req或jit,req表示脚本一开始运行就连接远程客户端,jit表示脚本出错时才连接远程客户端。 |
xdebug.remote_port | integer类型,默认值=9000 | 指定远程调试的端口号 |
xdebug.trace_options | integer类型,默认值=0 | 指定对于之后的请求,追踪文件是追加内容还是覆盖之前内容。 |
xdebug.trace_output_dir | string类型,默认值=/tmp | 指定追踪文件的存放目录 |
xdebug.trace_output_name | string类型,默认值=trace.%c | 指定追踪文件的名称 |
更多信息请参考官方文档。
php开启xdebug扩展的更多相关文章
- php开启xdebug扩展及xdebug通信原理
xdebug调试原理 IDE(如PHPStorm)已经集成了一个遵循BGDP的XDebug插件,当开启它的时候, 会在本地开一个XDebug调试服务,监听在调试器中所设置的端口上,默认是9000,这个 ...
- 开启php的xdebug扩展及phpstorm配置xdebug,chrome调试插件组合
一. 开启php xdebug扩展 注意: 1. 原生php各版本需对应各自的xdebug版本,可到xdebug上对应下载 2. 若用wampserver等环境,wampse ...
- phpstudy2018 安装xdebug扩展
第一步:查看PHP版本信息 第二步:到xdebug下载页去下载最新的版本(注意:要下载PHP对应版本) 第三步:把扩展php_xdebug-2.7.0alpha1-7.2-vc15-nts.dll放到 ...
- phpstorm开启xdebug断点调试,断点调试不成功来这里
感谢一下两篇博主的文章 其他的就... https://paper.seebug.org/308/ https://www.cnblogs.com/jice/p/5064838.html 首先安装xd ...
- PHP7 学习笔记(三)关于PHP7如何安装调试工具Xdebug扩展以及Zephir的问题
前言: 1.自己摸索安装 2.快速安装 安装这个扩展是由于Zephir 编译不能始终通过,迫不得已啊,使用Zephir写扩展,总是出现以下错误: www@ubuntu1:~/phalcon-zephi ...
- PHP安装Xdebug扩展并配置PHPstorm调试(Centos、Windows)
一.给PHP安装Xdebug扩展 [windows] 废话不多说,直接上代码上方法安装扩展,我这里是在windows下. 首先需要确定的就是对应的PHP版本安装对应的Xdebug扩展文件,提供一个最快 ...
- vscode增加xdebug扩展
首先确保php增加了xdebug扩展,方法很多,可参考 https://www.cnblogs.com/wanghaokun/p/9084188.html.可通过phpinfo()查看是否已开启支持. ...
- php以pdo方式连接sqlserver,无法开启sqlsrv扩展
首先,PHP连接sqlserver代码如下: $host="aaaaa"; $dbname="aaaaa"; $user="aaaaa"; ...
- win10 64位安装memcache扩展和开启redis扩展
前面有关于win10下搭建wamp环境的介绍,在此不在赘述,php操作memcache有memcache库和memcached库,其中memcache是php内置的扩展库,支持面向对象和面向过程两种操 ...
随机推荐
- model browser 不出现时
1:当 创建 component 时, 创建完成后,没有出现model browser, 这时需要在model上面添加一个model,然后保存退出,重新进入,就会出现model browser
- [js]纯css强制不换行
要加在li上 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- js中的offsetLeft和style.left
(1)style.left是带单位"px"的,而offsetLeft没有单位,另外,style.left必须是内联样式,或者在JS中通过style.left赋值,否则取得的将为空字 ...
- (转)ThreadLocal-面试必问深度解析
ThreadLocal是什么 ThreadLocal是一个本地线程副本变量工具类.主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用, ...
- Linux下samba服务搭建
参考: https://www.cnblogs.com/lxyqwer/p/7271369.html https://www.cnblogs.com/liulipeng/p/3406352.html ...
- Flask框架从入门到实战
Flask简介: Flask是一个使用 Python 编写的轻量级 Web 应用框架,基于 WerkzeugWSGI工具箱和 Jinja2模板引擎.使用 BSD 授权. Flask也被称为 " ...
- 把文本数据转化为json
awk '{for (i=1 ;i<=NF;i++){ printf "\"" $i; if ( i==NF) {printf "\",&quo ...
- 纯css瀑布流布局
由于公司的项目需要才用到瀑布流布局 因为后台返回的json直接循环出来的,所以不能做左右浮动的那种,所以才用到了瀑布流布局 16年之前的瀑布流布局基本都时基于js或者直接用jq插件的,但是随着技术的进 ...
- 《linux就该这么学》找到一本不错的Linux电子书,《Linux就该这么学》。
本帖不是广告贴,只是感觉有好的工具书而已 本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国 ...
- mysql----------局域网数据库:如何让navicat链接局域网其他的数据库。
1.找到被链接的数据库,打开以后有一个自带的mysql数据库,打开以后下面有一个user表,把里面的第一条数据的第一个字段改成% 百分号,然后保存,重启数据库,搞定 2.如果是linux下的话,记得把 ...