【发布时间】:2012-05-17 07:31:38
【问题描述】:
有一些与我相似的主题,但它们对我没有帮助。也许会有新的东西出现。
问题:我无法从 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、shell_exec 等替换 exec 没有区别
结论: 可以执行wkhtmltopdf,可以上网,可以写具体文件,但是正确的转换命令失败,返回状态1。
我用的是最新的Ubuntu,PHP版本是5.3.10-1ubuntu3,wkhtmltopdf版本是0.9.9。 我也在其他具有相同结果的机器上尝试过。
任何(只是任何)想法都将不胜感激!
【问题讨论】:
-
问题已解决。这是通过 apt-get 安装 wkhtmltopdf 时发生的常见问题。我不得不删除它并直接从 code.google.com/p/wkhtmltopdf 下载。现在它可以工作了。
标签: php exec wkhtmltopdf