http://zhugebin.sinaapp.com/linux/make_xdebug/
Xdebug是一款开源的PHP跟踪调试器,它以PHP模块的形式加载和被使用。Xdebug可以以日志的形式记录PHP代码执行的每一个环节以及
消耗的时间,支持通过配置LOG的级别来选择记录信息的深度(比如是否记录方法调用的参数类型和值)。支持PHP的各IDE还没有在断点单步调试上做的很
优秀很到位的,那么调试的时候Xdebug便是一个非常不错的选择,通过查询Xdebug日志不仅可以很轻易的找到问题所在还可以带你按执行顺序流了解当
前程序的运行机制而不用翻看大把的源代码,对与想了解陌生的程序配上Xdebug运行一般即可尽收眼底,赶快行动吧。
本次记录的是Linux平台下Xdebug的编译安装方法,Windows平台的安装较简单就不赘述了。此处Linux平台以web服务常用OS的Centos6.0为例(其他版本基本一致,其他发行版根据OS的特性流程类似)。
首先下载Xdebug源代码,截至今日最新发布版本为Xdebug_2.1.2
。
源代码的编译需要使用到gcc、autoconfig、automake和make等工具,所以先确保一下这些工具已经安装。前面提到了Xdebug是以
PHP模块的形式加载和被使用,那么我们应该把它安装为PHP的模块,怎么安装为PHP的模块呢,当然是使用phpize了,没有安装phpize的可以
扩展php-devel模块。下面我们开始编译(代码中得php-config路径根据PHP环境的实际路径做调整,phpize也是),编译的步骤如
下:
1
2
3
4
|
tar
-zxvf
xdebug-2.1.2.tgz
cd
xdebug-2.1.2
phpize
./
configure --enable-xdebug
--with-php-config
=/
usr/
bin/
php-config
|
编译成功的话在xdebug的源码目录下会生成modules/xdebug.so文件,我们把这个xdebug.so文件copy到PHP的
扩展模块目录下(默认路径是/usr/lib/php/modules/),再到php.ini中添加xdebug.so模块的相关配置然后重启下
httpd。
1
2
3
4
5
|
[
Xdebug]
extension
=
xdebug.so
xdebug.auto_trace=
0
xdebug.collect_params=
4
xdebug.collect_return=
on
|
一切正常的话这个时候xdebug已经能使用了,我们可以使用“php
-m”命令来查看php模块的加载情况来确定xdebug是否被正常加载,很奇怪的是我们看到了xdebug得身影还看到了一个告警信息“PHP
Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line
0”,意思是Xdebug必须使用Zend扩展方式加载,这是因为我们没有安装Zend
Optimzer,但这并不影响xdebug的正常运行以及我们对PHP的跟踪。
xdebug的collect_params可配置值为1-4的数字,数值越高跟踪记录的信息越多,而collect_return设置为on
便可以记录方法的具体返回值,auto_trace是自动跟踪,xdebug消耗较大一般不开启(曾经一次开启了自动跟踪,安装wordpress的中文
版总是超时不成功),我们可以在需要被跟踪的代码中启动跟踪,方法如下:
1
2
3
4
5
6
7
8
|
/**
* 可以新建一个php文件,需要跟踪的php页面包含该页面即可
*/
define
(
'XDEBUG_TRACE_FILE'
,
'/tmp/'
.
date
(
'mdHis'
)
.
'.'
.
rand
(
)
)
;
// 一般不用改
// reg stop trace
register_shutdown_function
(
'xdebug_stop_trace'
)
;
// start trace
xdebug_start_trace(
XDEBUG_TRACE_FILE)
;
|
分享到:
相关推荐
只支持php7.0的xdebug扩展,编译安装。仅支持Linux系统。其他版本不支持,如有需要可留言。
xdebug远程调试开启配置,按文档显示加入php.ini配置文件即可。需要自己下载xdebug for windows/linux, linux还需要自己编译出.so, 这里附带两个版本的so(xdebug2.2.5/2.2.6)
您还可以通过pecl install xdebug使用pecl工具从源代码进行编译。 只要在Homebrew中安装了PHP,后者也可用于MacOS。 在Windows上,您需要一个二进制文件。 使用。 除非在Linux上使用软件包管理器安装了Xdebug,...
Xdebug这些是安装Xdebug的说明。 另请参阅http://xdebug.org/support.php以获得支持。 您需要与其他PHP分开编译Xdebug。 但是请注意,您需要访问脚本Xdebug Xdebug是PHP的调试工具。 它提供了逐步调试功能以及各种...
一、安装配置 1、下载PHP的XDebug扩展...、在Linux下编译安装XDebug 引用 tar -xzf xdebug-2.0.0RC3.gz cd xdebug-2.0.0RC3 /usr/local/php/bin/phpize ./configure –enable-xdebug cp modules/xdebug.so /usr/local/...
lnmp自动搭建Linux+Nginx+PHP+Mysql的运行环境,以及PHP程序相关的Memcached,redis, mongodb等软件的自动安装shell脚本。目前已在centos 6.x (64bit)测试正常。各软件列表:Nginx V1.9.5Tengine V2.1.1PHP V5.5.21与...
为了使xdebug配置在所有环境下都更容易,您可以定义一个自定义ENVVAR: XDEBUG_CLIENT_HOST 。 例如:对于OSX,XDEBUG_CLIENT_HOST = docker.for.mac;对于Windows用户和Linux用户,XDEBUG_CLIENT_HOST =
在Linux,OSX上编译 git clone https://github.com/2654709623/php-decrypt.git cd php-decrypt phpize ./configure make sudo make install 在Windows上编译 可以自行参考本篇文章: ://learnku.com/artic
为什么使用Docker加速本地的开发和建造流程,容器可以在开发环境整合,然后轻松地提交到测试环境,并最终进入生产环境能够在让独立的服务或应用程序在不同的环境中得到相同的运行结果创建隔离的环境来进行测试高端,...
兼容OPcache,Xdebug等其他扩展 兼容Linux,macOS,Windows等系统 兼容Apache,Nginx + PHP-fpm,命令行等运行模式 加密算法较简单,这是出于速度考虑,但仍不易解密 若项目的php文件很多,建议只加密部分重要代码...
- 更新eAccelerator为VC9编译版,防止Win7下无法加载 2011年10月4日 - Web站点根目录移动至User/WebApp,MySQL数据目录移动至User/MySQL - config.php添加参数XS.SQL和XS.WEB,用于分别制定MySQL数据和Web站点根...