我使用WKHTMLTOPDF生成PDF。它工作正常,但我们最近更改了服务器,它现在只从我们的PHP管理面板返回0字节文件。
奇怪的是,如果我从ssh运行以下内容,它会生成正常的。我想这可能是www-data权限的问题,但我无法弄清楚:(
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');
答案 0 :(得分:0)
使用wkhtmltopdf CLI(而不是PHP)有一个类似的问题。它最终成为了许可问题。
当我这样做时:
wkhtmltopdf http://google.com google.pdf
操作将成功但生成0字节的pdf。没有错误抛出。
当我这样做时:
sudo wkhtmltopdf http://google.com google.pdf
pdf有内容。因此,请确保相关用户对命令本身以及要写入文件的位置具有r / w / e权限。还要确保他们有权在相关的情况下发出出站Web请求,并且服务器已配置为允许此操作。一旦权限得到修复,您实际上不必使用sudo。
希望这有帮助。