1. 本地性能调试
2. Tideways、xhprof 和 xhgui 打造 PHP 非侵入式监控平台

2.1. 环境准备
安装之前确保已经正确安装了以下软件
- PHP
- Nginx
- Mongodb
2.2. 安装 PHP mongodb 扩展
PHP 配置文件中添加$ sudo pecl install mongodb[mongodb] extension=mongodb.so2.3. 安装 PHP tideaways 扩展
常规编译安装
PHP 配置文件中添加$ git clone https://github.com/tideways/php-xhprof-extension.git $ cd /path/php-xhprof-extension $ phpize $ ./configure $ make $ sudo make install[tideways] extension=tideways_xhprof.so ; 不需要自动加载,在程序中控制就行 tideways.auto_prepend_library=0 ; 频率设置为100,在程序调用时可以修改 tideways.sample_rate=1002.4. 安装 xhgui-branch(xhgui 的汉化版)
修改 xhgui-branch 配置文件$ git clone https://github.com/laynefyc/xhgui-branch.git $ cd xhgui-branch $ php install.php<?php return array( ... 'extension' => 'tideways_xhprof', ... 'save.handler' => 'mongodb', 'db.host' => 'mongodb://127.0.0.1:27017', 'db.db' => 'xhprof', ... );2.5. 启动 mongodb 并设置 xhgui 索引,命令如下:
$ mongo > use xhprof > db.results.ensureIndex( { 'meta.SERVER.REQUEST_TIME' : -1 } ) > db.results.ensureIndex( { 'profile.main().wt' : -1 } ) > db.results.ensureIndex( { 'profile.main().mu' : -1 } ) > db.results.ensureIndex( { 'profile.main().cpu' : -1 } ) > db.results.ensureIndex( { 'meta.url' : 1 } )2.6. xhgui 本地虚拟主机配置参考
server { listen 80; server_name xhgui.test; root /path/xhgui-branch/webroot; # access_log logs/access.log; error_log logs/error.log; location / { try_files $uri $uri/ /index.php?$query_string; index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass localhost:9000; fastcgi_read_timeout 150; fastcgi_index index.php; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
2.6.1. 在项目入口的 PHP文件中 配置,告诉 PHP 程序在执行前要调用的服务
require_once('/path/wwwroot/xhgui-branch/external/header.php');


