PHP性能测试利器-Xdebug和phpstorm

Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),能够用来跟踪,调试和分析PHP程序的运行情况。如下为Windows+Phpstorm+Xampp+Xdebug安装示例,MAC安装请参考集成开发和断点调试环境的配置Mac+PhpStorm+XAMPP+Xdebugphp

1、下载Xdebug

在下载xdebu以前,咱们须要先看下咱们的php版本,找到与之对应的Xdebug版本下载便可,我这里的PHP版本为V5.6.15,因此,Xdebug的版本也必须是V5.6版本。 重要的事情再说一遍:php版本和xdebug版本必定要相对应哦!!!Xdebug官网下载html

查看php版本apache

echo phpinfo();

clipboard.png

下载XdebugV5.6:vim

clipboard.png

2、安装Xdebug

一、php.ini的配置

将下载大的扩展文件php_xdebug-2.5.0-5.6-vc11-x86_64.dll放置到php的ext扩展目录下,这个是个人扩展路径:D:xamppsphpextphp_xdebug-2.5.0-5.6-vc11-x86_64.dll,而后在php.ini中添加下面的一段扩展代码,而后保存。segmentfault

[xdebug]

;指定Xdebug扩展文件的绝对路径 
zend_extension=”D:\xampps\php\ext\php_xdebug-2.5.0-5.6-vc11-x86_64.dll”
;启用性能检测分析 
xdebug.remote_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.remote_handler = dbgp
xdebug.remote_host= localhost

xdebug.remote_port = 9000

xdebug.idekey = PHPSTORM

clipboard.png

说明::在上述配置内容中,zend_extension用于指定Xdebug扩展模块的文件路径(因为Xdebug是基于Zend引擎的扩展,所以必须使用zend_extension配置指令,而不是extension。zend_extension指令的配置路径必须是绝对路径)。remote_handler 、remote_host、remote_port 这些都有默认值,但仍是建议设置下,至少知道要设置这些参数~php7

二、重启Apache

重启Apache,而后查看phpinfo(),是否已经安装Xdebug扩展成功ssh

若是加载扩展失败,请看失败日志:
错误信息存在apache的logs文件中,error.log,查看方法如图phpstorm

clipboard.png

查了下缘由,是由于apache为32位,php为x86即32位,而本身装了一个64位的Xdebug,因此,安装扩展失败了,这里须要找一个32位的Xdebug,而且php编译版本为V11的Xdebug:ide

clipboard.png

3、出现的问题

安装好Xdebug后,进行断点调试又出现这样的幺蛾子:函数

Waiting for incoming connection with ide key '15222'

clipboard.png

4、Homestead 安装Xdebug扩展

1.编译安装Xdebug

在经历了很长一段时间后,Xdebug从2.4.0版本开始,支持调试PHP 7代码,接下来,咱们采用源码编译的方式进行安装。

首先,咱们执行 vagrant ssh 登陆到Homestead虚拟机;

其次,下载并解压Xdebug源代码:

wget http://xdebug.org/files/xdebug-2.4.0rc1.tgz
tar xvzf xdebug-2.4.0rc1.tgz

接下来,进入解压缩的目录,使用phpize7.0生成配置文件、configure、make、make install:

cd xdebug-2.4.0RC1
sudo phpize7.0
sudo ./configure --enable-xdebug
sudo make
sudo make install

clipboard.png

而后建立 xdebug.ini 配置文件

mkdir -p /usr/local/php/xdebug
sudo cp /usr/local/xdebug-2.4.0RC1/modules/xdebug.so /usr/local/php/xdebug/xdebug.so
sudo vim xdebug.ini

xdebug.ini

zend_extension="/usr/local/php/xdebug/xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.max_nesting_level = 500
sudo mkdir /etc/php/mods-available
vagrant@homestead:/usr/local/xdebug-2.4.0RC1$ sudo cp xdebug.ini /etc/php/mods-available

接下来,在当前PHP 7 CLI和FPM的conf.d目录建立对应的符号连接:

sudo ln -snf /etc/php/mods-available/xdebug.ini /etc/php/7.0/cli/conf.d/20-xdebug.ini
sudo ln -snf /etc/php/mods-available/xdebug.ini /etc/php/7.0/fpm/conf.d/20-xdebug.ini

最后,咱们重启php7.0-fpm,让新的配置生效:

sudo service php7.0-fpm restart

咱们有不少方式来确认Xdebug已经正常工做了:

在Terminal执行 php -m ,在输出结果最后的[Zend Modules]部分,能够看到有Xdebug
执行php -i |grep xdebug,在输出的结果中,能够看到有xdebug support => enabled;

clipboard.png

哈哈,咱们看到Xdebug已经安装成功了

在导航上 Run->edit Configurations... 进入如下界面

clipboard.png

相关文章:
phpstorm配置Xdebug进行调试PHP教程
上手并过渡到PHP7(1)——基于Homestead的PHP7和XDdebug环境
本地xdebug调试搭建 Laravel+homestead+phpstorm

相关文章
相关标签/搜索