- wget
去这里找最新的包下载,我现在最新的是xhprof-0.9.4.tgzcd /tmp mkdir xhprof && cd xhprof wget http://pecl.php.net/get/xhprof-0.9.4.tgz tar -xvf xhprof-0.9.4.tgz cd xhprof-0.9.4/extension/ phpize
我在进行这步的时候,提示我没有安装phpize,下一步就是安装phpize,如果已经安装了phpize,可以跳过下一步
- phpize
因为phpize在php-devel包里面,所以先需要安装php-develyum search php-devel
如果你和我一样,找不到这个包的话,建议添加电子科技大学的源
cd /tmp wget http://mirrors.stuhome.net/files/centos_repo/6/CentOS-Base.repo cp CentOS-Base.repo /etc/yum.repos.d/CentOS-Base-Uestc.repo -v yum makecache yum install php-devel -y
装好了phpize就可以进行安装了
phpize
- 接下来是源码安装三部曲:
whereis php-config /*看看你的php-config在什么路径,然后放到后面的path-to php-config,一般是/usr/bin/php-config */ ./configure --with-php-config=<path to php-config > make make install mkdir -p /var/tmp/xhprof
- 编译添加了xhprof.so文件,现在需要配置php启用这个so文件,去/etc/php.d/文件夹下面添加文件xhprof.ini
extension=xhprof.so xhprof.outout_dir=/var/tmp/xhprof /*请确定上面配置的/var/tmp/xhprof目录是存在的*/
然后就是重新启动你的php,之后用命令查看
php -ini | grep xhprof -i
看看是否已经安装上了,安装好了之后,就可以开始设置监控了
- 将文件拷贝到网站目录里面,然后添加监控代码到统计文件中
mkdir -p /var/www/xhprof && cd /var/www/xhprof/ cp -r /tmp/xhprof/xhprof-0.9.4/xhprof_html/ ./ cp -r /tmp/xhprof/xhprof-0.9.4/examples/ ./ cp -r /tmp/xhprof/xhprof-0.9.4/xhprof_lib/ ./ mkdir logs
配置nginx的虚拟主机目录,在/etc/nginx/conf.d/目录下面新建xhprof.conf
然后修改文件内容为:server{ listen 80; server_name effect.vpsbuy.info; root /var/www/xhprof; access_log /var/www/xhprof/logs/access.log; error_log /var/www/xhprof/logs/error.log; index index.php; location = favicon.ico { log_not_found off; access_log off; } location = /robots.txt{ allow all; log_not_found off; access_log off; } location / { root /var/www/xhprof; } location ~ .php$ { include fastcgi_params; fastcgi_pass php; fastcgi_index xhprof_html/index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
重新启动nginx
nginx -t nginx -s reload
修改examples目录下面的sample.php文件,将最后一行的echo改成这样
echo "--------------- ". "Assuming you have set up the http based UI for ". "XHProf at some address, you can view run at ". "http://effect.vpsbuy.info/xhprof_html/index.php?run=$run_id&source=xhprof_foo ". "--------------- ";
将这个
http://effect.vpsbuy.info/xhprof_html/
改成你自己的url路径。
然后就是配置监控$xhprof_enable = false; if(mt_rand(1,10)==1){ //这里设置监控的比例 xhprof_enable(); $xhprof_enable = true; } //这里写上你要监控的函数 if($xhprof_enable ){ $xhprof_data = xhprof_disable(); //$XHPROF_ROOT = realpath(dirname(__FILE__) .'/..'); $XHPROF_ROOT = /var/www/xhprof; include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php"; include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php"; // save raw data for this profiler run using default // implementation of iXHProfRuns. $xhprof_runs = new XHProfRuns_Default(); // save the run under a namespace "xhprof_foo" $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo"); }
现在就可以统计了,然后就是安装生成访问图像的
yum install graphviz
如果你觉得写得不错,请捐赠作者:
作者:
- 原文地址:http://www.factj.com/archives/147.html
- 微博:http://weibo.com/fudance
- 邮箱:strivescript#sina.com