资讯专栏INFORMATION COLUMN

PHP性能测试利器-Xdebug和phpstorm

MoAir / 2172人阅读

摘要:是一个开放源代码的程序调试器即一个工具,可以用来跟踪,调试和分析程序的运行状况。以下为安装示例,安装请参考集成开发和断点调试环境的配置。指令的配置路径必须是绝对路径。

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

一、下载Xdebug

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

查看php版本

echo phpinfo();

下载XdebugV5.6:

二、安装Xdebug 1、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中添加下面的一段扩展代码,然后保存。

[xdebug]

;指定Xdebug扩展文件的绝对路径 
zend_extension=”D:xamppsphpextphp_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

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

2、重启Apache

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

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

查了下原因,是因为apache为32位,php为x86即32位,而自己装了一个64位的Xdebug,所以,安装扩展失败了,这里需要找一个32位的Xdebug,并且php编译版本为V11的Xdebug:

三、出现的问题

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

Waiting for incoming connection with ide key "15222"

四、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

然后创建 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;

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

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22237.html

相关文章

  • PHPStorm-Xdebug-Laravel 快速上手

    摘要:是调试的组件是调试利器,在日常开发中排错时其断点调试功能非常有帮助使得我们开发者不用依赖于传统的比较的调试。并且还有一个好处通过我们还可以查看代码运行的逻辑,比如要研究的源码那么这时使用,将会达到事半功倍的效果。 Introduction xdebug是php调试的组件,是调试利器,在日常开发中排错时,其断点调试功能非常有帮助,使得我们开发者不用依赖于传统的var_dump()/ech...

    BenCHou 评论0 收藏0
  • 使用 XdebugPHPStorm 中调试 PHP 程序(框架/原生均适用)

    摘要:红色方形,表示中断当前程序调试。第三个图形示,強制进入当前函数內部的程序。框架说明加载的文件列表可以观察到所有全局变量当前局部变量的数值可以新增变量,观察变量随着程序执行的变化。参考文章使用与调试一 序言 Xdebug 作为 PHP 调试工具,提供了丰富的调试函数和配置,可以直观的看到 PHP 源代码的步进和性能数据,以便优化PHP代码。 使用 phpstorm + xdebug 来调...

    cloud 评论0 收藏0
  • Mac OS xDebug PhpStorm 快速配置

    摘要:确定环境的干净。这一步要优化的话应该是做一个类似缓存的机制,对于这种配置加载的性能提升所以我们在调试必然是要在这里配置环境的接口。 前言 在网上找了一些相关配置的例子,觉得很多比较复杂,并且配置项过于多了,有很多冗余并不是最开始就需要的配置,所以写一下记录,也方便以后自己查阅。 一、brew 安装 php 在 Mac OS 这边不需要手动去下载编译打包,直接使用 brew 进行快捷安装...

    forrest23 评论0 收藏0
  • 如何愉快的在PhpStorm中进行PHPUnit单元测试Xdebug断点调试?

    摘要:配置执行程序点击那个同步的小图标,如果看到就说明配置有效指定模块配置选择,搜索,左侧选择,点击新增一个。 前言 如果你想做个接口测试,但并不想公开内部接口 如果你只是想对自己封装的某块代码做个小测试 如果你想要编写代码边调试,又不想操作 Postman 或前端的功能来调用 API 本文暂时仅介绍在 Laravel 和 Comoposer Library 项目中如何配置 PHPUni...

    Flink_China 评论0 收藏0
  • PHP开发人员使用工具(个人爱好)

    摘要:管理工具是一款非常好用的管理和开发工具。接口调试开发的一款功能强大的网页调试与发送网页请求。 PHPIDe 我首先力荐PHPstorm10。目前用起来很爽,集成xdebug,集成git进去,当然英文不好的同学在下载个汉化包,在线调试。提供诸于:智能HTML/CSS/JavaScript/PHP编辑、代码质量分析、调试和测试等功能。另外,它还是跨平台。 Mysql管理工具 Navicat...

    Null 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<