Yii框架下安装xhprof

xhprof 是一款非常不错的php性能分析工具,由facebook开发,有直观的图形分析,可以看到各个流程的性能损耗。下面是在Yii框架下安装xhprof
1,安装xhprof
如果安装了php,很简单执行:pecl install xhprof 就可以了
否则找个靠谱的源 sudo yum install xhprof 也可以
2,配置php.ini

1 view plaincopy
[xhprof]  
extension=xhprof.so  
xhprof.output_dir=/home/work/tmp/xhprof  

其中oupput_idr 是输出文件的目录
3,安装libpng

wget http://nchc.dl.sourceforge.net/project/libpng/libpng15/1.5.1/libpng-1.5.1.tar.gz  
tar zxf libpng-1.5.1.tar.gz  
cd libpng-1.5.1  
./configure  
make  
make install 

或者直接sudo yum install libpng* 简单
4 安装Graphviz

 
wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz  
tar zxf graphviz-2.24.0.tar.gz  
cd graphviz-2.24.0  
./configure --with-png=yes
make  
make install

5 配置nginx


server {  
    listen 8088;  
    root /home/work/local/php-5.5.18/lib/php/xhprof_html;  
  
    location @php {  
        include fastcgi_params;  
        fastcgi_param  SCRIPT_FILENAME "$document_root/index.php";  
        fastcgi_pass php;  
    }     
  
    location ~ /robots\.(txt|php) {  
        include fastcgi_params;  
        fastcgi_param  SCRIPT_FILENAME "$document_root/robots.php";  
        fastcgi_pass php;  
    }     
  
    location ~ \.php$ {  
        include fastcgi_params;  
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
        fastcgi_pass php;  
        fastcgi_index index.php;  
    }     
  
  
    location / {   
        try_files $uri @php;  
    }     
}  

重启nginx , nginx -s reload
重启php-fpm , pkill -USR2 php-fpm, php-fpm
6 配置Yii框架下使用xhprof
找到protected目录下的yii.php
加入以下代码

public static function createApplication($class,$config=null) {  
<span style="white-space:pre">    </span>$app->attachEventHandler("onBeginRequest", function() {  
                xhprof_enable(XHPROF_FLAGS_NO_BUILTINS);  
            });   
       $app->attachEventHandler("onEndRequest", function() use ($app) {  
                $data = xhprof_disable();   //返回运行数据  
                include_once "xhprof_lib/utils/xhprof_runs.php";  
                $objXhprofRun = new XHProfRuns_Default();   
                $run_id = $objXhprofRun->save_run($data, $app->name);  
            });   
}  

7 结束
打开你的任意网页,会在/home/work/tmp/xhprof目录下产生性能分析文件,之后通过localhost:8088/index.php就可以访问文件了,点击view_all_callgraph还可以看到直观的性能分析图。

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*