WKHTMLTOPDF在命令行上工作,但从PHP生成时返回0字节pdf

时间:2015-11-20 17:08:40

标签: php pdf centos wkhtmltopdf

我使用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');

1 个答案:

答案 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。

希望这有帮助。