从PHP执行wkhtmltopdf失败

时间:2012-05-17 07:31:39

标签: php exec wkhtmltopdf

有一些类似于我的主题,但它们对我没有帮助。也许会有新的东西出现。

问题:我无法从PHP执行wkhtmltopdf。 我的基本代码是: exec('wkhtmltopdf http://somesite.com /home/user/file.pdf');

现在我已经检查了一些事情:

  • 从控制台
  • 执行时,同样的命令有效
  • safe_mode已禁用 - 我可以在PHP中执行命令,例如exec('ls');正常工作
  • 可以找到wkhtmltopdf的路径,我可以运行程序本身,例如exec('wkhtmltopdf -V');正常工作并输出版本信息
  • 输出路径是可写的,它有777个权限,exec('wkhtmltopdf -V > /home/user/file.pdf');工作正常,创建文件并将版本信息放入
  • 从PHP执行具有互联网访问权限,例如exec('wget -O /home/user/file.pdf http://somesite.com')正常工作,检索网站源并将其放入文件
  • 用passthru替换exec,shell_exec等没有区别

结论: 我可以执行wkhtmltopdf,我可以访问互联网,我可以编写特定文件,但正确的转换命令失败并返回状态1.

我使用最新的Ubuntu,PHP版本是5.3.10-1ubuntu3,wkhtmltopdf版本是0.9.9。 我也在其他机器上尝试了同样的结果。

任何(只是任何)想法将不胜感激!

1 个答案:

答案 0 :(得分:14)

2>&1添加到命令的末尾以了解确切的错误。

exec('wkhtmltopdf http://somesite.com /home/user/file.pdf 2>&1');

这样它会在Apache下运行时告诉你错误。一旦你知道什么是错的,就更容易解决。我有similar problem before with ImageMagick