Я установил xhprof на Debian 7, используя php5-xhprof
Это создало файл /etc/php5/fpm/conf.d/20-xhprof.ini
В этот INI-файл я добавил xhprof.output_dir = «/ tmp / xhprof»
Я создал файл / tmp / xhprof с 755 www-данными: www-data
Я могу подтвердить, что в php включена функция xhprof с помощью phpinfo (), хотя она не дает мне параметра output_dir.
Я запускаю скрипт с первой строкой
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);
Там нет файлов, созданных в / tmp / xhprof
Я перезапустил php5-fpm и до сих пор не повезло.
Строка xhprof.output_dir
Каталог, используемый реализацией по умолчанию интерфейса iXHProfRuns (а именно, класса XHProfRuns_Default) для хранения прогонов XHProf.
http://php.net/manual/en/xhprof.configuration.php
В конце профилирования (или скрипта) вам нужно сохранить данные вручную
$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_testing\n";
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
и ты должен быть готов.
Других решений пока нет …