Утилита linux dot (с xhprof) - PullRequest
10 голосов
/ 28 мая 2010

я установил расширение профилирования xhprof для php

Все хорошо, кроме файла callgraph.php, он возвращает: failed to shell execute cmd=" dot -Tpng"

, поэтому я проверил, и утилита dot не была установлена, поэтому я установил ее.

похоже, что он работает нормально из командной строки, поэтому я снова запустил сценарий, та же ошибка: 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.

но я не понимаю, что мне нужно делать сейчас, в частности часть "Утилита на вашем пути"

Любая помощь приветствуется, спасибо, ребята

Ответы [ 6 ]

15 голосов
/ 04 апреля 2014

Если вы хотите графические функции для xhprof, выполните следующую команду в терминале:

sudo apt-get install graphviz
2 голосов
/ 01 июня 2015

Если вы установили 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 ".

2 голосов
/ 12 октября 2012

Когда я включаю 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';
0 голосов
/ 30 сентября 2017

шагов для быстрого решения проблемы, если у вас есть Graphviz и все еще появляется ошибка:

  1. запустить "который точка"

/ USR / местные / бен / точка

  1. открыть строку xhprof_lib / utils / callgraph_utils.php 110
  2. заменить "точку" на "/ usr / local / bin / dot" (или у вас есть путь)
0 голосов
/ 10 апреля 2013

В моем случае это было вызвано просто потому, что не был установлен graphviz. Вы можете проверить с помощью which dot или locate graphviz в командной строке.

0 голосов
/ 28 мая 2010

Наличие утилиты «на вашем пути» означает, что ее можно найти с помощью переменной среды PATH. Эта переменная окружения содержит каталоги, в которых оболочка ищет исполняемые файлы без явного пути.

Допустим, полный путь к dot равен /opt/foo/bin/dot. Затем вы хотите изменить переменную окружения PATH следующим образом:

PATH=${PATH}:/opt/foo/bin
...