YiluPHP
这家伙很懒,什么都没有留下...

经验 Centos中安装xdebug和使用kcachegrind分析PHP性能

浏览数 186832
一、安装PHP扩展xdebug
  1. 下载xdebug安装包
    到xdebug网站上找到最新的安装包,我使用的是Xdebug2.5.5版本
    https://xdebug.org/download.php
  2. 右击“source”按钮,复制链接地址
    https://xdebug.org/files/xdebug-2.5.5.tgz
  3. 在Centos系统中进入你的程序安装包存放目录
    cd /software
  4. 下载安装包
    wget https://xdebug.org/files/xdebug-2.5.5.tgz
  5. 解压安装包
    tar -zxvf xdebug-2.5.5.tgz
  6. 进入解压出来的目录
    cd xdebug-2.5.5
  7. 安装
    /usr/local/php/bin/phpize
    ./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config
    make && make install
    成功编译安装后,Xdebug会显示编译完成的.so文件目录,我们要记录下这个目录及xdebug.so的文件路径:
    /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
  8. 在php.ini中加入配置
    vi /usr/local/php/etc/php.ini
    加入以下配置代码:
    [xdebug]
    zend_extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"
    xdebug.auto_trace = on
    xdebug.auto_profile = on
    xdebug.collect_params = on
    xdebug.collect_return = on
    xdebug.profiler_enable = on
    xdebug.remote_enable = 1
    xdebug.remote_connect_back = 1
    xdebug.remote_port = 9000
    xdebug.scream = 0
    xdebug.cli_color = 1
    xdebug.show_local_vars = 1
    xdebug.trace_output_dir = "/logs/xdebug"
    xdebug.profiler_output_dir = "/logs/xdebug"
    xdebug.profiler_output_name = "callgrind.out.%p"
    xdebug.dump.GET = *
    xdebug.dump.POST = *
    xdebug.dump.COOKIE = *
    xdebug.dump.SESSION = *
    xdebug.var_display_max_data = 4056
    xdebug.var_display_max_depth = 5
  9. 创建存放调试文件的目录
    cd /
    mkdir logs
    cd logs
    mkdir xdebug
    chmod 777 xdebug
  10. 重启php-fpm,xdebug就可以使用了
    可以在php文件中输出phpinfo();查看到xdebug的模块


    接下来运行PHP页面就会在/logs/xdebug中输出调试的日志文件

二、使用kcachegrind分析PHP性能

有了上面输出的日志文件,我们需要借助一些工具在分析PHP的性能,比如:kcachegrind、WinCacheGrind.exe,这里简单说一下kcachegrind的使用和提供kcachegrind的文件下载

下载kcachegrind地址:

http://www.weinidai.com/sources/kcachegrind.zip

下载WinCacheGrind.exe地址:

http://www.weinidai.com/sources/WinCacheGrind.rar

下载解压kcachegrind后,找到kcachegrind.exe,运行它就打开主界面了。

把PHP生成的日志文件下载到windows系统

cd /logs/xdebug
打包所有文件
zip -r xdebug_log.zip ./*
下载
sz xdebug_log.zip

完成后可以在windows的默认“下载”目录中找到xdebug_log.zip,把它复制解压到你想入的文件夹中。


回到kcachegrind界面,菜单 File - Open 打开日志文件进行分析,分析方法在这里不说了,有很长的篇幅。

在找开日志文件的窗口我们可以看到,kcachegrind只支持callgrind.*格式的文件,所在在php.ini中配置文件名时一定要按照这个格式书写。

我来说说