我已经通过包laravel-pdf(https://packagist.org/packages/ignited/laravel-pdf)实现了wkhtml2pdf,它使用了由Michael Haertl撰写的wkhtmltopdf的简约包装器(https://packagist.org/packages/mikehaertl/phpwkhtmltopdf)
过去工作正常。然后我升级到PHP5.5和Laravel 4.1。
现在我收到以下错误:
Could not run command '' --bin '/var/www/docassembly/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64' /tmp/tmp_WkHtmlToPdf_f0LNZv.html /tmp/tmp_WkHtmlToPdf_gJY5R6: sh: 1: : Permission denied
看起来Apache没有执行二进制文件的权限。 这些二进制文件由apache用户拥有并且是777.它确实将一个空文件写入tmp目录。 / tmp文件夹也是777,由apache用户拥有。
当我在终端中手动运行命令时,它按预期工作。
有什么想法吗?
答案 0 :(得分:-2)
首先使用命令检查文件权限是什么
ls -l /var/www/docassembly/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64
。
应该是
-rwx------ 1 www-data www-data 38824584 Aug 17 00:40 wkhtmltopdf-amd64
。
如果没有随命令改变
chmod 700 /var/www/docassembly/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64
。
希望这有帮助。