使用 XHGui 对 PHP 应用进行性能诊断

| 选择喜欢的代码风格  

对于PHP,我们有多种Profiling工具,本文主要集中在——XHGui,一款非常优秀的工具。XHGui构建在XHProf之上(XHProf由Facebook发布),但是对于剖析结果增加了更好的存储,同时增加了更加良好的信息获取接口。从这方面来说,XHGui更像是一个全新的工具。

XHGui已经经历过几个版本的迭代,但当前版本提供了更加漂亮的用户界面,并且使用MongoDB存储其剖析结果。相比于前一版本来说,所有这些方面都是巨大的改进;因为,前一版本更像是开发者设计的,采用文件来保存数据,使得收集的数据非常难以使用。XHGui 2013是一个非常全面的Profiling工具,无论是对管理人员来说还是对于开发者;与此同时,XHGui 2013被设计的足够轻巧以便能够在生产环境下运行。

本文将一步一步演示程序的安装,同时向你展现使用该工具可以收集的各方面信息。

第一步:安装依赖


因为XHGui有一些依赖项,所以我们第一步就是解决这个问题。底下的所有的教程都是基于Ubuntu 13.04平台的,当然,你应该可以把它们改编下并适用到到你自己的平台上。目前而言,我们需要安装MongoDB, PHP,并有一些安装PECL拓展的能力。

首先,我们要安装MongoDB,这边有一些官方的安装教程,你可以找到和你系统相关的细节,但是现在我将通过简单的通过APT来安装:

aptitude install mongodb

通过这个方式获取的MongoDB的版本可能不是最新的,因为这个产品的更新速度真的很快。但是,如果你想让它保持一个很新的版本,你可以把MongoDB提供的库添加到你的包管理器里,这样你就能得到一个最新的了。

与此同时,我们还需要针对PHP的Mongo 驱动。在仓库中该驱动的版本有点老,为了今天的演示,我们将从Pecl中进行获取。如果你的机器上没有pecl命令,你可以通过下面的命令进行安装:

aptitude install php-pear

然后,我们通过下面的命令向PHP添加MongoDB的驱动程序:

pecl install mongo

为了完成安装,最后我们需要在 php.ini 文件中新增加一行。但是,新版本的Ubuntu为配置PHP扩展提供了一个新系统,该系统更像Apache模块安装——将所有的配置保存在一个地方,然后创建一个符号链接以启动配置。首先,我们创建一个文件来保存设置,尽管在本示例中仅需要在设置中新增一行以启动扩展。我们将其保存在文件 /etc/php5/mods-available/mongo.ini,新增下面一行:

php5enmod mongo

再次使用pecl来安装xhprof扩展程序。该程序目前仅是beta版本,因此安装命令如下:

pecl install xhprof-beta

命令行会再一次提示我们在php.ini新增一行。我们采用与上面一样的方法,创建文件 /etc/php5/mods-available/xhprof.ini,并在里面新增如下内如:

extension=xhprof.so

此时,我们可以检查一下这些模块是否正确安装——通过在命令行运行 php -m 命令。记住,不要忘记重启Apache,以便web接口能够启用这些扩展。

安装XHGui


XHGui本身主要由web页面组成,它为XHProf扩展收集的数据提供更加友好的界面。你可以从代码库GitHub repo克隆;也可以直接下载zip文件,然后进行解压缩。获取程序之后,确定缓存目录有足够的权限以便web服务器有权限写入文件。最后,运行安装脚本:

php install.php

这就是程序安装所需的一切,并且会自动安装一些依赖程序;如果发生异常,安装程序也会给你提示。

我更喜欢将XHGui安装在虚拟主机当中;这需要.htaccess文件允许,也需要启动RUL重写。启动URL重写表明需要启动 mod_rewrite 模块,通过下面的命令:

a2enmod rewrite

(不要忘记重启Apache)。

更多查看XHGui对PHP性能的诊断:




发表评论