Ответ 1
Если вы хотите, чтобы функции графического отображения для xhprof запускали следующую команду в терминале:
sudo apt-get install graphviz
i установил расширение профиля xhprof для php
Все отлично, за исключением файла callgraph.php, он возвращает:
failed to shell execute cmd=" dot -Tpng"
поэтому я проверил, и утилита dot не была установлена, поэтому я ее установил.
он, кажется, отлично работает из командной строки, поэтому я снова запустил scritp, такую же ошибку:
failed to shell execute cmd=" dot -Tpng"
В документации xhprof указано:
the callgraph image visualization ([View Callgraph]) feature relies on the presence of Graphviz "dot" utility in your path.
но я не понимаю, что мне нужно делать сейчас, в частности часть "полезность в вашем пути"
Любая помощь ценится, спасибо ребятам
Если вы хотите, чтобы функции графического отображения для xhprof запускали следующую команду в терминале:
sudo apt-get install graphviz
Когда я включаю error_reporting, я вижу, что некоторые параметры конфигурации отсутствуют:
function xhprof_generate_image_by_dot($dot_script, $type) {
// get config => yep really dirty - but unobstrusive
global $_xhprof;
$errorFile = $_xhprof['dot_errfile'];
$tmpDirectory = $_xhprof['dot_tempdir'];
$dotBinary = $_xhprof['dot_binary'];
После добавления следующих строк в xhprof_lib/config.php, он работает
$_xhprof['dot_errfile'] = '/home/peniel/var/log/xhprof/error.log';
$_xhprof['dot_tempdir'] = '/home/peniel/var/log/xhprof';
$_xhprof['dot_binary'] = '/usr/bin/dot';
Если вы установили graphviz, эта ошибка также возникнет из-за ограничений безопасности. Некоторые функции могут быть отключены. Итак, см. Ваши журналы для некоторых предупреждений php.
Например:
PHP Warning: proc_open() has been disabled for security reasons in /usr/share/php/xhprof_lib/utils/callgraph_utils.php on line 112
Вам нужно настроить параметр php.ini или security.ini "disable_functions".
Наличие утилиты "в вашем пути" означает, что она может быть расположена переменной окружения PATH
. Эти переменные среды содержат каталоги, в которых оболочка ищет исполняемые файлы, которые вы запускаете без явного пути.
Скажем, что полный путь к dot
равен /opt/foo/bin/dot
. Затем вы хотите изменить переменную среды PATH
следующим образом:
PATH=${PATH}:/opt/foo/bin
В моем случае это было вызвано просто потому, что graphviz не был установлен. Вы можете проверить с помощью which dot
или locate graphviz
в командной строке.
шаги для быстрого исправления проблемы, если у вас есть Graphviz и по-прежнему возникают ошибки:
/USR/локальные/бен/точка