有一些与我类似的主题,但它们对我没有帮助。也许会有新的东西出现。
问题:我无法从 PHP 执行 wkhtmltopdf。我的基本代码是:
exec('wkhtmltopdf http://somesite.com /home/user/file.pdf');
现在我已经检查了几件事:
- 从控制台执行时,相同的命令有效
- 安全模式被禁用 - 我可以在 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。我也在其他具有相同结果的机器上进行了尝试。
任何(只是任何)想法将不胜感激!