我在 PHP 中编写了一段代码,使用 WKHTMLTOPDF 二进制文件生成 PDF 。它工作正常,直到我不得不重新编译我的Apache。现在它失败并出现错误Error: Unable to create temporery file
(这是确切的措辞)。
错误可重现的情况有点复杂。我设法缩小了错误,现在我很确定错误发生是因为Apache运行的用户。在我看来,当WKTHMLTOPDF作为没有主文件夹的用户运行时,它无法访问用户主文件夹中的临时文件夹。
当然我可以改变Apache的用户,但我宁愿一劳永逸地解决这个问题。为此,如果我能以某种方式为WKHTMLTOPDF设置临时文件夹或至少打印其当前值以使其有效,那将是很棒的!有谁知道如何做这两个中的任何一个?
BTW,我正在使用 WKHTMLTOPDF 0.11.0 rc1。
答案 0 :(得分:0)
我今天在CentOS 6.7下的Rails4 + pdfkit gem(0.8.2)+ wkhtmltopdf(0.12.2.1)中看到了同样的错误。
此错误来自wkhtmltopdf,原因是它无法创建临时文件。 wkhtmltopdf取决于一些临时文件名创建API(我不确定),但可能下面显示了一些提示:
$ man tempfile
$ man tempnam
在我的情况下,我的TMPDIR环境变量显示错误的路径(我不小心删除了目录!),以便wkhtmltopdf无法创建工作文件。
当我取消设置TMPDIR时,它工作了!当然,将正确的存在目录设置为TMPDIR也应该没问题。