标题:[实践OK]centos安装php版本对应的扩展xdebug链接以及因Xdebug版本太高WinCacheGrind无法解析只得采用kcachegrind并安装用kcachegrind系统分析,后缀变为callgrind。支持swoole的Xdebug版本。 出处:向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 时间:Tue, 25 Dec 2018 14:45:19 +0000 作者:jackxiang 地址:http://jackxiang.com/post/10007/ 内容: 支持swoole的Xdebug版本:https://github.com/mabu233/sdebug支持swoole的Xdebug扩展 看ELK里的failed (104: Connection reset by peer) 这种错误, php规定时间没正常执行完,返回给网关Nginx的数据为空导致。 试试含有Xdebug的镜像运行PHP压力测试时看PHP到底卡哪儿了: registry.qr.XXXX.net/irdc_irdcops/php-strace:7.1.6 一)Xdebug生成运行的时间文件在:/data/logs/xdebug 二)sz下来后用kcachegrind打开分析,kcachegrind下载:(PHP7版本wincachedgrind报错,无法显示。) https://phoenixnap.dl.sourceforge.net/project/precompiledbin/kcachegrind.zip https://sourceforge.net/projects/qcachegrind-fixed-source/postdownload AddTime:2022.06.01 加上Xdebug,Tps会下降严重可以忽略,是能看到其执行大体时间占比。 MacBook下面需要自己编译: https://tekkie.ro/computer-setup/how-to-install-kcachegrind-qcachegrind-on-mac-osx/ https://blog.josephscott.org/2013/07/03/qcachegrind-kcachegrind-on-mac-os-x/ xdebug是和PHP的版本对应起来的,这一步很重要,如下: https://xdebug.org/wizard.php centos安装php版本对应的扩展xdebug链接: /usr/local/php7/bin/phpize ./configure --with-php-config=/usr/local/php7/bin/php-config make && make install 安装时注意:./configure后面得加 --with-php-config=/usr/local/php7/bin/php-config,否则会报: checking Check for supported PHP versions... configure: error: not supported. Need a PHP version >= 7.0.0 and < 7.4.0 (found 5.6.38) 使用图形分析工具wincachedgrind分析生成的文件 下载地址:http://sourceforge.net/projects/wincachegrind/files/ centos安装php扩展xdebug安装以及用kcachegrind系统分析 Download: https://phoenixnap.dl.sourceforge.net/project/precompiledbin/kcachegrind.zip kali linux: Install kcachegrind Using apt Update apt database with apt using the following command. sudo apt update After updating apt database, We can install kcachegrind using apt by running the following command: sudo apt -y install kcachegrind 来自:https://installati.one/kalilinux/kcachegrind/ 百度网盘。 实践发现: 找开kcachegrind文件时要以它的后缀结尾,直接贴进去地址就成。 之前的后缀是cache,现在修改一下它这个后缀即可: xdebug.profiler_output_name="cachegrind.out.%H.%u.%s" 修改为: xdebug.profiler_output_name="callgrind.out.%H.%u.%s" #kcachegrind在Win下面只认这个前缀的才能打开分析,直接拖cachegrind.out*进去是打不开的。 解决kcachegrind在Win下面只认这个前缀的才能打开分析批量xdebug的文件重命名的办法: for i in $(ls -1 *) ;do echo mv $i ${i/cachegrind/callgrind};done|sh shell下的文本替换,Shell字符串替换学习---武明瑶:https://jackxiang.com/post/9922/ [Xdebug] zend_extension="/usr/local/php/ext/xdebug.so" xdebug.profiler_enable = on xdebug.default_enable = on xdebug.trace_output_dir="/data/logs/xdebug" xdebug.trace_output_name = trace.%c.%p xdebug.profiler_output_dir="/data/logs/xdebug" xdebug.profiler_output_name="cachegrind.out.%H.%u.%s" #删这行 xdebug.profiler_output_name="callgrind.out.%H.%u.%s" xdebug.dump_once=On xdebug.dump_globals=On xdebug.dump_undefined=On xdebug.dump.REQUEST=* xdebug.dump.SERVER=REQUEST_METHOD,REQUEST_URI,HTTP_USER_AGENT xdebug.show_exception_trace=On xdebug.show_local_vars=1 xdebug.var_display_max_depth=6 xdebug.max_nesting_level=50 mkdir -p /data/logs/xdebug chown -R www /data/logs/xdebug chmod -R 755 /data/logs/xdebug 打成RPM包的SPEC文件: cat xdebug-kphp71-2.7.2.el7.x86_64.spec %define builddate %(date +%y%m%d%H%M%%S) %define _php_fpm kphp %define php_dir /usr/local/php %define php_bin %{php_dir}/bin %define php_extdir /usr/local/php/ext %define php_version 7.1.6 Name: xdebug-php71 Version: 2.7.2 Release: %{builddate}%{?dist} Summary: xdebug Group: Development/Languages License: PHP URL: https://github.com/xdebug/xdebug-src/releases/tag/1.8.11-stable BuildRoot: %{_topdir}/BUILDROOT BuildRequires: gcc, make, autoconf, automake, libtool, %{_php_fpm} = %{php_version} Requires: %{_php_fpm} = %{php_version} %description The phpxdebug extension provides an API for communicating with the Redis key-value store. %prep tar zxf $RPM_SOURCE_DIR/xdebug-2.7.2.tgz -C $RPM_BUILD_DIR %build cd $RPM_BUILD_DIR/xdebug-2.7.2 %{php_bin}/phpize ./configure --with-php-config=%{php_bin}/php-config make make test %install rm -Rf $RPM_BUILD_ROOT cd $RPM_BUILD_DIR/xdebug-2.7.2 make install INSTALL_ROOT=$RPM_BUILD_ROOT mkdir -p %{buildroot}%{php_extdir} mv %{buildroot}%{php_dir}/lib/php/extensions/no-debug-non*/xdebug.so %{buildroot}%{php_extdir} %post mkdir -p /data/logs/xdebug && chown -R www.www /data/logs/xdebug && chmod -R 755 /data/logs/xdebug cat > %{php_dir}/etc/php.d/xdebug.ini << EOF [Xdebug] zend_extension="/usr/local/php/ext/xdebug.so" xdebug.profiler_enable = on xdebug.default_enable = on xdebug.trace_output_dir="/data/logs/xdebug" xdebug.trace_output_name = trace.%c.%p xdebug.profiler_output_dir="/data/logs/xdebug" xdebug.profiler_output_name="callgrind.out.%H.%u.%s" xdebug.dump_once=On xdebug.dump_globals=On xdebug.dump_undefined=On xdebug.dump.REQUEST=* xdebug.dump.SERVER=REQUEST_METHOD,REQUEST_URI,HTTP_USER_AGENT xdebug.show_exception_trace=On xdebug.show_local_vars=1 xdebug.var_display_max_depth=6 xdebug.max_nesting_level=50 EOF %postun rm -rf %{php_dir}/etc/php.d/xdebug.ini rm -rf /data/logs/xdebug %clean rm -Rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %{php_extdir}/xdebug.so 下载图形化工具kcachegrind在windows下的可执行版 下载地址http://sourceforge.net/projects/precompiledbin/files 用kcachegrind来看会更形象,注意需要修改从linux中执行的文件的php文件路径,这样就可以了sourcecode. 原文:https://blog.csdn.net/gdfjhc/article/details/84194948 Generated by Jackxiang's Bo-blog 2.1.1 Release