Php linux点实用程序(带xhprof)
我为php安装了xhprof评测扩展 除了callgraph.php文件外,一切正常,它返回: 未能执行shell cmd=“dot-Tpng” 所以我检查了一下,没有安装dot实用程序,所以我安装了它 从命令行看来运行正常,因此我再次运行scritp,出现相同的错误: 未能执行shell cmd=“dot-Tpng” 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”实用程序。 但我不明白我现在需要做什么,特别是“路径
调用图图像可视化([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但仍然出现错误,则快速修复问题的步骤:
正如您所说,我添加了PATH=${PATH}:/usr/bin/dot相同的错误(我也应该说它来自web浏览器)@mononym-您需要为您的web服务器设置路径。也可用于使用自制的Mac:
brew安装graphviz
。工作得很有魅力!