我已经使用php5-xhprof在debian 7上安装了xhprof
创建了一个文件/etc/php5/fpm/conf.d/20-xhprof.ini
我在ini文件中添加了xhprof.output_dir="/tmp/xhprof"
我用755 www-data创建了/tmp/xhprof文件:www-data我可以确认php使用phpinfo()启用了xhprof,尽管它没有给我output_dir参数。
我运行一个脚本,第一行是
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);
/tmp/xhprof目录下没有创建文件
http://php.net/manual/en/xhprof.configuration.phpxhprof。output_dir字符串
iXHProfRuns接口的默认实现(即XHProfRuns_Default类)用于存储XHProf运行的目录。
在分析(或脚本)结束时,您需要手动保存数据
$xhprof_data = xhprof_disable();
$XHPROF_ROOT = "/tools/xhprof/";
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_testing");
echo "http://localhost/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testingn";
http://php.net/manual/en/xhprof.examples.php 如果你不想在你的应用程序代码中控制分析,你可以创建一个自动加载的代码片段/path/to/xhprof/xhprof_enabler.php
:
<?php
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);
register_shutdown_function(function(){
$xhprof_data = xhprof_disable();
$XHPROF_ROOT = "/path/to/xhprof";
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_testing");
echo "http://localhost/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing";
});
然后加上
auto_prepend_file=/path/to/xhprof/xhprof_enabler.php
到/etc/php5/fpm/conf.d/20-xhprof.ini
请注意,您还需要设置一个虚拟主机查看配置文件,或者您可以只是符号链接xhprof
文件夹(其中包含xhprof_html
)到您的默认vhost根。
php5-fpm
,应该就完成了。