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
有效地复制显示。
我在 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
有效地复制显示。