推荐阅读 Tideways、xhprof 和 xhgui 打造 PHP 非侵入式监控平台 超全的设计模式简介(45种) design-patterns-for-humans 中文版 MongoDB 资源、库、工具、应用程序精选列表中文版 有哪些鲜为人知,但是很有意思的网站? 一份攻城狮笔记 每天搜集 Github 上优秀的项目 一些有趣的民间故事 超好用的谷歌浏览器、Sublime Text、Phpstorm、油猴插件合集 环境准备 安装之前确保已经正确安装了以下软件 PHP Nginx Mongodb 安装 PHP mongodb 扩展 $ sudo pecl install mongodb PHP 配置文件中添加 [mongodb] extension=mongodb.so 安装 PHP tideaways 扩展 常规编译安装 $ git clone https://github.com/tideways/php-xhprof-extension.git $ cd /path/php-xhprof-extension $ phpize $ ./configure $ make $ sudo make install PHP 配置文件中添加 [tideways] extension=tideways_xhprof.so ; 不需要自动加载,在程序中控制就行 tideways.auto_prepend_library=0 ; 频率设置为100,在程序调用时可以修改 tideways.sample_rate=100 安装 xhgui-branch(xhgui 的汉化版) $ git clone https://github.com/laynefyc/xhgui-branch.git $ cd xhgui-branch $ php install.php 修改 xhgui-branch 配置文件 <?php return array( ... 'extension' => 'tideways_xhprof', ... 'save.handler' => 'mongodb', 'db.host' => 'mongodb://127.0.0.1:27017', 'db.db' => 'xhprof', ... ); 启动 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 } ) xhgui 本地虚拟主机配置参考 server { listen 80; server_name xhgui.test; root /Users/yaozm/Documents/wwwroot/xhgui-branch/webroot; # access_log /usr/local/var/log/nginx/access.log; error_log /usr/local/var/log/nginx/error.log; location / { try_files $uri $uri/ /index.php?$query_string; index index.php index.html index.htm; } } 针对要分析的站点进行设置,直接在要分析站点的 nginx 配置中增加以下项,然后使配置生效就可以了。 $ fastcgi_param PHP_VALUE "auto_prepend_file=/path/xhgui-branch/external/header.php"; 参考配置 server { listen 80; server_name laravel.test; root /Users/yaozm/Documents/wwwroot/laravel/public; # access_log /usr/local/var/log/nginx/access.log; error_log /usr/local/var/log/nginx/error.log; location / { try_files $uri $uri/ /index.php?$query_string; index index.php index.html index.htm; } # 添加 PHP_VALUE,告诉 PHP 程序在执行前要调用的服务 fastcgi_param PHP_VALUE "auto_prepend_file=/path/wwwroot/xhgui-branch/external/header.php"; } 或者也可以在修改 PHP 配置文件,告诉 PHP 程序在执行前要调用的服务 ; Automatically add files before PHP document. ; http://php.net/auto-prepend-file auto_prepend_file = "/path/wwwroot/xhgui-branch/external/header.php" 参考链接 https://github.com/phacility/xhprof https://github.com/perftools/xhgui https://github.com/tideways/php-xhprof-extension https://github.com/laynefyc/xhgui-branch https://blog.it2048.cn/article-tideways-xhgui https://zhuanlan.zhihu.com/p/30832165 转载自 Tideways、xhprof 和 xhgui 打造 PHP 非侵入式监控平台
Read More ~