【发布时间】:2012-04-15 13:40:15
【问题描述】:
我今天发现的一个问题与unanswered problem 类似;虽然不一样,但可能有相同的原因。
我正在使用inkscape 将 SVG 文件渲染为 PNG 或 PDF。在大多数情况下,我打算使用 Gearman 在后台渲染这些,但现在我正在 PHP/Apache 进程中创建一些缩略图。似乎如果在 Apache 进程中调用 inkscape(通过 PHP 的 exec),它找不到它需要呈现的字体。因此,图形元素呈现良好,但任何文本元素都不会在 PNG 输出中绘制。
我怀疑 Apache 内部的 CLI 环境与我通常的 bash 控制台不同,这意味着无法看到字体。我在 OS X 10.6.8 上。有什么想法吗?
编辑:从 cmets 开始,我在 Apache 和 Gearman 中捕获了php -i,并将第一个与第二个进行了比较(因此理论上应用差异会使其工作)。 result is here。
编辑 2:我在两种环境中都使用 system 尝试过 convert -list font - 完全没有区别。
【问题讨论】:
-
我已经使用 Gearman 中的阻塞高优先级任务解决了这个问题,无论如何这是我的首选解决方案 - 因为它可以帮助我控制并发 inkscape 进程的数量。但我仍然认为这个问题很有趣,所以鼓励任何有想法的人发布它们!当机器允许我时,赏金即将到来。
-
(忽略反对票 - 我显然惹恼了 anon_coward,他反对了我的几个不相关的帖子!)
-
+1,听起来很有趣,这个问题没有错:)
-
找不到外部文件听起来像是路径问题。您是否查看了被调用进程所看到的环境变量(可能只是执行一个打印出
$_ENV或调用phpinfo()的php 脚本)? -
感谢@DCoder。我通常认为这是一个文件权限问题,但另一方面,我也在 www 用户下运行 Gearman 进程(与 Apache 相同)。我会尝试在 Apache 中转储环境内容,看看是否有问题 - 好主意。