PHP - wkhtmltopdf 二进制文件

PHP - wkhtmltopdf binary file

我在 Laravel 应用程序中使用 wkhtml2pdf libary。在我的本地环境中,这非常有效。我的 PDF 已正确生成。在我的 .env 文件中我有:

WKHTML2PDF_BIN_FILE=wkhtmltopdf-amd64

但是在我的 scaleway 服务器上出现以下错误:

我的软件支持armhf。所以我无法安装 amd/64-bit 版本。我已经像这样在我的服务器上安装了 wkhtmltopdf:

sudo apt install wkhtmltopd

但现在无法联机。我认为我的配置是错误的(bin 文件的 link)。但是我怎么知道并将正确的 link 设置为我的 WKHTML2PDF_BIN_FILE?

更新:

当我输入以下命令时:

sudo find / -name "wkhtmltopdf*"

然后我得到以下结果:

/var/lib/dpkg/info/wkhtmltopdf.md5sums
/var/lib/dpkg/info/wkhtmltopdf.list
/var/www/mydomain.com/html/vendor/nitmedia/wkhtml2pdf/src/Nitmedia/Wkhtml2pdf/lib/wkhtmltopdf-i386
/var/www/mydomain.com/html/vendor/nitmedia/wkhtml2pdf/src/Nitmedia/Wkhtml2pdf/lib/wkhtmltopdf-amd64
/var/www/mydomain.com/html/vendor/nitmedia/wkhtml2pdf/src/Nitmedia/Wkhtml2pdf/lib/wkhtmltopdf-0.12.1-OS-X.i386
/usr/share/doc/wkhtmltopdf
/usr/share/man/man1/wkhtmltopdf.1.gz
/usr/bin/wkhtmltopdf

我试图将 WKHTML2PDF_BIN_FILE=wkhtmltopdf-amd64 更改为 WKHTML2PDF_BIN_FILE=/usr/bin/wkhtmltopdf 但结果是:

我该如何解决这个问题?

更新 2:

我已将此添加到我的配置中:

WKHTML2PDF_BIN_PATH=/usr/bin/ 
WKHTML2PDF_BIN_FILE=wkhtmltopdf

但随后出现错误 QXcbConnection:无法连接到显示器。我在 this 主题中读到我应该能够 运行 它与 xvfb-运行 wkhtmltopdf。但是我应该把它添加到库中的什么地方呢?

如果你检查库的代码 in this block of code 它会查找二进制文件名和二进制文件路径,这是两个独立的东西。

所以也许你必须添加两个环境参数而不是一个:

WKHTML2PDF_BIN_PATH=/usr/bin/
WKHTML2PDF_BIN_FILE=wkhtmltopdf

尝试在此处关注此问题线程 https://github.com/NitMedia/wkhtml2pdf/issues/33

创建配置文件:

app/config/packages/nitmedia/wkhtml2pdf/local/config.php

并在其中添加路径:

return [
    'debug' => true,
    'binpath' => '/usr/bin/',
    'binfile' => 'wkhtmltopdf',
    'tmppath' => '/tmp/',
];

并且不要忘记删除 .env 配置条目。

你有没有在你的服务器端试过这个;

export DISPLAY=:0

有效地复制显示。