从PHP执行wkhtmltopdf失败

Krz*_*chu 6 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执行具有Internet访问权限,例如,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.我也在其他机器上尝试了同样的结果.

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

dak*_*dad 14

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

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

这样它会在Apache下运行时告诉你错误.一旦你知道什么是错的,就更容易解决.我以前在使用ImageMagick时遇到过类似的问题