0

我刚刚在 Cpanel 中安装了 Graphviz PEAR 包并尝试运行以下脚本:(来自http://pear.php.net/manual/en/package.images.image-graphviz.example.php

[?php
require_once '/home/user_directory/php/Image/GraphViz.php';

$gv = new Image_GraphViz();
$gv->addEdge(array('wake up'        => 'visit bathroom'));
$gv->addEdge(array('visit bathroom' => 'make coffee'));
$gv->image();
?]

如果我运行此脚本,我会收到以下错误消息:

Warning: fopen(/tmp/graph_8xynSO.svg) [function.fopen]: 
failed to open stream: No such file or directory in 
/home/user_directory/php/Image/GraphViz.php on line 210

我检查了 /tmp 目录的权限:它们被设置为 777(虽然我在那里看不到 graph_8xynSO.svg 文件)。请问还有什么地方我应该看的吗?

谢谢,

PHP

4

1 回答 1

1

很有可能您的主机上没有安装 graphviz 程序。您是否具有 exec() 功能或 shell 访问权限?如果是这样,请尝试通过以下命令直接调用 graphviz:

echo "digraph G {Hello->World}" | dot -Tpng >hello.png

Pear 包不包含 graphviz 程序,而只是它的包装器。我不确定 cPanel 是否先进行依赖性检查。如果不是您的盒子,您可能必须先让管理员安装 graphviz。

如果您无法让 graphviz 在您的共享主机上工作,您可以调用 Web 服务来呈现图像。有关示例,请参见http://bloodgate.com/graph-demo 。

于 2009-10-20T00:28:32.163 回答