我正在使用WKHTMLTOPDF生成PDF。它一直运行良好,但我们最近更改了服务器,现在它只从我们的PHP管理面板返回0字节的文件。
奇怪的是,如果我从ssh运行下面的程序,它会生成很好的结果。我想这可能是www数据权限的问题,但我无法解决:(
WKHTMLTOPDF位于/usr/local/bin/wkhmtltopdf,我们使用httpd和centos。
如果需要更多信息,我很乐意尝试提供。我似乎也找不到任何wkhtmltopdf的日志,它没有进入httpd日志。
感谢您的帮助!拔出我的头发:p
编辑:这是我用来生成PDF的代码-它已经在旧的服务器上工作了
PDF::setOutputMode('F'); // force to file
PDF::setPageSize('a0');
$gen = PDF::html('pdf.print.web', [
'products' => $catalogue,
'name' => $master->name
], storage_path()."/pdf/gen-".$master->url);
return Response::download(storage_path()."/pdf/gen-".$master->url.'.pdf');
A在使用wkhtmltopdf CLI(而非PHP)时也遇到了类似的问题。这最终成为了一个许可问题。
我做的时候:
wkhtmltopdf http://google.com google.pdf
操作会成功,但会生成一个0字节的pdf。没有引发错误。
我做的时候:
sudo wkhtmltopdf http://google.com google.pdf
pdf有内容。因此,请确保相关用户对命令本身以及您要写入文件的位置具有r/w/e权限。还要确保他们有权发出出站web请求(如果相关),并且服务器已配置为允许这样做。一旦权限得到修复,您实际上就不需要sudo了。
希望这能有所帮助。