一尘不染

PHP / Apache中的Inkscape不会将字体呈现为PNG

php

我今天发现的一个问题类似于这个未解决的问题;尽管不尽相同,但可能有相同的原因。

我正在使用inkscapePNG或PDF 渲染SVG文件。在大多数情况下,我打算使用Gearman在后台渲染它们,但现在,我正在PHP /
Apache进程中创建一些缩略图。看来,如果exec在Apache进程中调用了inkscape(通过PHP
),它将找不到需要呈现的字体。因此,图形元素呈现得很好,但是在PNG输出中未绘制任何文本元素。

我怀疑Apache内部的CLI环境与我通常的bash控制台不同,这意味着无法看到字体。我在OS X 10.6.8上。有任何想法吗?

编辑:在评论之后,我php -i同时捕获了Apache和Gearman,并将第一个与第二个进行了对比(因此从理论上讲,应用diff将使其起作用)。该结果是在这里

编辑2:我convert -list font在两种环境中都尝试过使用system-完全没有区别。


阅读 241

收藏
2020-05-29

共1个答案

一尘不染

正如上面的评论所确定的,这是由环境差异引起的HOME-env
var在执行的过程中设置为不同。使用proc_open而不是简单可以exec更精确地控制所述过程,并通过显式设置env var解决了该问题。

2020-05-29