xhprof扩展已经三年多没有更新了,PHP7是没法直接使用xhprof来进行性能分析了。好在tideways出品了一款xhprof的进化版php性能分析插件,可以完美支持php7程序。网上关于如何使用tideways和xhgui搭建性能分析平台的教程已经有了很多,部署的话可以参考借鉴这篇文章https://segmentfault.com/a/1190000007580819,但是在搭建过程中还是遇到了一些问题,需要说明一下。
1. 当git clone https://github.com/perftools/xhgui.git xhguid的源后,注意你的php代码中必须安装mogondb的扩展,否则在php install的时候会出现调用composer安装第三方库失败,composer下载的vendoer资源也是需要依赖pecl的mogondb库的。这点在官方的配置文档中并没有提及。
2. xhgui在配置nginx的时候官方文档也有些问题,需要注意这里
这里需要修改成:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
如果不修改这个配置,xhgui里面集成的slim框架无法正常解析到路由数据。
3.xhgui里面集成的slim框架有一个轻微语法出错,会导致php7下warning级别错误,请修复vendor\slim\views\Slim\Views\Twig.php文件的render方法,父类定义了第二个参数,但继承的类中没有指定导致warning报错,将第二个参数添加上即可:
public function render($template, $data = NULL)
xhgui属于无侵入式的代码性能监控方案,对于现有的代码不需要原先xhprof那样在代码中埋点指定xprof的文件路径,我们仅仅需要在对应的项目工程nginx配置中加入如下的代码:
fastcgi_param TIDEWAYS_SAMPLERATE "25";
fastcgi_param PHP_VALUE "auto_prepend_file=/usr/local/nginx/html/xhgui/external/header.php";
第二行配置请根据自己的xhgui存放路径进行填写。