Php linux点实用程序(带xhprof)

Php linux点实用程序(带xhprof),php,linux,profiling,graphviz,Php,Linux,Profiling,Graphviz,我为php安装了xhprof评测扩展 除了callgraph.php文件外,一切正常,它返回: 未能执行shell cmd=“dot-Tpng” 所以我检查了一下,没有安装dot实用程序,所以我安装了它 从命令行看来运行正常,因此我再次运行scritp,出现相同的错误: 未能执行shell cmd=“dot-Tpng” xhprof文档说明: 调用图图像可视化([View callgraph])功能依赖于路径中是否存在Graphviz“dot”实用程序。 但我不明白我现在需要做什么,特别是“路径

我为php安装了xhprof评测扩展

除了callgraph.php文件外,一切正常,它返回: 未能执行shell cmd=“dot-Tpng”

所以我检查了一下,没有安装dot实用程序,所以我安装了它

从命令行看来运行正常,因此我再次运行scritp,出现相同的错误: 未能执行shell cmd=“dot-Tpng”

xhprof文档说明:
调用图图像可视化([View callgraph])功能依赖于路径中是否存在Graphviz“dot”实用程序。

但我不明白我现在需要做什么,特别是“路径中的实用程序”部分

感谢您的帮助,伙计们。

在您的路径中使用该实用程序意味着可以通过环境变量
path
找到它。此环境变量包含shell在其中查找您在没有显式路径的情况下运行的二进制文件的目录

假设
dot
的完整路径是
/opt/foo/bin/dot
。然后,您希望通过以下方式修改
PATH
环境变量:

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

启用错误报告时,我发现缺少一些配置变量:

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。您可以在命令行上使用
哪个点
查找graphviz

如果您想要xhprof的图形功能,请在终端中运行下一个命令:

sudo apt-get install graphviz
如果安装了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”。

如果您有Graphviz但仍然出现错误,则快速修复问题的步骤:

  • 运行“哪个点”
  • /usr/local/bin/dot

  • 打开xhprof_lib/utils/callgraph_utils.php第110行
  • 将“点”替换为“/usr/local/bin/dot”(或您拥有的路径)

  • 正如您所说,我添加了PATH=${PATH}:/usr/bin/dot相同的错误(我也应该说它来自web浏览器)@mononym-您需要为您的web服务器设置路径。也可用于使用自制的Mac:
    brew安装graphviz
    。工作得很有魅力!