xhprofはfacebookで開発されたPHPのプロファイリングツールです。
今回はそのインストールメモ
環境:CentOS 6.4・PHP 5.3
xhprofインストール・設定
xhprofのインストール
wget http://pecl.php.net/get/xhprof-0.9.2.tgz tar xvzf xhprof-0.9.2.tgz cd xhprof-0.9.2/extension/ phpize ./configure make make test make install
php.iniを編集
vi /etc/php.ini # 下記内容を追加 [xhprof] extension=xhprof.so xhprof.output_dir=/var/log/xhprof
ログディレクトリを作成
mkdir /var/log/xhprof/ chmod 777 /var/log/xhprof/
apache再起動
/etc/init.d/httpd restart
httpのドキュメントルートに「xhprof_html」「xhprof_lib」をコピー
cd ../ cp -rp xhprof_* /document_root/
プロファイリングしたいPHPファイルに下記の記述を追加
// プロファイリングの開始 xhprof_enable(); // --------------------------------------- // --- ここにプロファイリングしたい処理処理 --- // --------------------------------------- // プロファイリングの終了 $xhprof_data = xhprof_disable(); $XHPROF_ROOT = realpath(dirname(__FILE__) ); include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php"; include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php"; $xhprof_runs = new XHProfRuns_Default(); $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo"); // そのまま出力 var_dump($xhprof); // URLを生成してリンクを作成 echo "<a href=\"/xhprof_html/index.php?run=$run_id&source=xhprof_foo\">http://sawara.me/xhprof_html/index.php?run=$run_id&source=xhprof_foo</a>";
で、以下のような画面が出力されていたら成功です。

[View Full Callgraph]をクリックして以下のように処理がグラフで出力されます。

もし以下のようなエラーが出ていたらgraphvizというのをインストール
Error: either we can not find profile data for run_id 51793cb96d75c or the threshold 0.01 is too small or you do not have 'dot' image generation utility installed.
graphvizインストール
cd /etc/yum.repos.d/ wget http://www.graphviz.org/graphviz-rhel.repo yum install graphviz yum install graphviz-gd # インストール後はリポジトリを無効化 vi /etc/yum.repos.d/graphviz-rhel.repo enabled=1 # ↓ enabled=0
phpizeが無い場合
yum install php-devel