大家好呀,我是yangyang.今天这篇开始,我要给大家出一系列xdebug3和xhprof的教程(xdebug类似),便于大家调试和性能分析(犹然记得当年我在一家公司的技术老大给我们讲述了他在腾讯某业务部现场处理一个外包我们做的项目的性能问题,老大临危受命,临危不惧,借助xdebug3、xhprof等其他工具分析解决了性能问题,稳定了巨大的屎山代码[我们在那个公司基于symfony构架了的公司内部框架的设计是真的厉害,不过业务人员多了,代码也乱了).
安装和配置xdebug
在 Linux 上安装#
使用包管理器安装 Xdebug 通常是最快的方法。根据您的发行版,运行以下命令:
- CentOS:
sudo yum install php-xdebug - CentOS (Remi Repo):
sudo yum install php74-php-xdebug3、 或
sudo yum install php80-php-xdebug3、 或
sudo yum install php81-php-xdebug3 - Ubuntu(18.04 LTS/Bionic、20.04 LTS/Focal):
sudo apt-get install php-xdebug - Ubuntu(Ond?ej Sury 的 PPA):
sudo apt-get install php7.4-xdebug、 或
sudo apt-get install php8.0-xdebug、 或
sudo apt-get install php8.1-xdebug - Debian(9/stretch、测试/buster/bullseye/sid):
sudo apt-get install php-xdebug - SUSE(openSUSE、Enterprise):, 或
sudo zypper in php7-xdebug
sudo zypper in php8-xdebug - Alpinelinux :
sudo apk add php7-pecl-xdebug, 或
sudo apk add php8-pecl-xdebug - Arch Linux::
sudo pacman -S xdebug
使用 PECL 安装
pecl install xdebug
# mac 可以指定php版本
/opt/homebrew/Cellar/php@8.2/8.2.14/bin/pecl install xdebug
window安装
直接下载dll文件(https://xdebug.org/download)
源码编译
git clone https://github.com/xdebug/xdebug.git
...
cd xdebug
phpize
./configure --enable-xdebug
# 指定版本
./configure --with-php-config=/opt/homebrew/Cellar/php@8.2/8.2.14/bin/php-config --enable-xdebug
make && make test
make install
配置调试环境
配置 xdebug
[xdebug]
zend_extension="xdebug.so"
xdebug.mode = debug // # 启用调试
xdebug.client_host = 127.0.0.1 //
xdebug.client_port = 9003 // 监听端口
xdebug.collect_return=On
xdebug.idekey="PHPSTORM"
xdebug.log="/tmp/xdebug.log"
;xdebug.log_level=0
注意 监听端口默认是 9000 , 和 php 默认监听重复, 注意尽量不用使用 9000, 以免出现不生效的情况
设置 phpstorm 配置并开启监听
配置端口
我们这里监听的是 9003 端口, 和 xdebug 配置监听数据端口一致;当然其实这里保持默认设置也是没问题的,默认设置是:9000,9003.它的意思是:xdebug2走9000,xdebug3走9003
DBGp代理配置
启动phpstorm 数据监听
点击图上的电话标识后,电话标识变成绿色,这时候就开启了监听,这时候,我们可以通过lsof命令观察配置的客户端端口9003
- 关闭时
- 开启时
php网页调试
- 服务器配置
添加一个服务器,也就是添加一个正运行的php项目进行调试启动.比如基于nginx启动的一个tp项目:test.com.cn,这时候我们可以添加一个新的服务器主机名test.com.cn,调试器为xdebug.服务器名称为tp8
- 验证连接
图上提示的发现客户端主机,关闭,可以不管它.但是其他项验证不过,需要检查你的xdebug配置和服务器的主机是否可以正常访问,php版本是否和xdebug版本适配
- 编辑配置
如果没有配置,我们这里就新建一个配置,选择php网页,然后设置名称、选择服务器,设置起始url(这里的url可以填写任何一种框架的路由:比如/users/100;/users)
- 开启调试
选择上面配置的服务器,然后在编辑器里针对需要调试的行打下断点,点击红色蜘蛛按钮开始断点调试(这里会在下一次的文章发布),这样我们就可以愉快的调试我们的tp8框架里
php脚本控制台调试
- 编辑配置
和上面类似,这里选择php脚本
- 开启调试
php脚本浏览器调试
脚本也可以通过运行到浏览器调试,可以直接添加一个javascript调试,不过也可以右键快速调试
设置 debug session
debug session 的工具的目的是设置一个cookie, 让每次发送数据的时候都会携带这个 cookie, 从而识别监听,这样才能使用调试.
安装浏览器调试插件
连接:https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc/related?hl=en
点击 图标设置session
已经设置了cookie, Key 是 XDEBUG_SESSION, 值是 PHPSTORM, 这里需要和php.ini的配置项`idekey`一样.
5) 运行页面
这里我们在断点位置可以看到输出的内容项目
本文暂时没有评论,来添加一个吧(●'◡'●)