Я использую wkhtml2pdf libary в моем приложении Laravel. В моем местном окружении это работает отлично. Мой PDF-файл создан правильно. В моем .окр файл у меня есть:
WKHTML2PDF_BIN_FILE = wkhtmltopdf-amd64
Но на моем scaleway На сервере у меня следующая ошибка:
Мое программное обеспечение поддерживает armhf. Поэтому я не смог установить amd / 64-битные версии. Я установил wkhtmltopdf на моем сервере следующим образом:
sudo apt install wkhtmltopd
Но сейчас он не работает в Интернете. Я думаю, что мой конфиг неверен (ссылка на файл bin). Но как я могу узнать и установить правильную ссылку на мой 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: не удалось подключиться к дисплею. Я прочитал в этот тема, которую я должен быть в состоянии запустить его с xvfb-run wkhtmltopdf. Но где я должен добавить это в библиотеку?
Если вы проверите код библиотеки в этом блоке кода он ищет двоичное имя файла и путь двоичного файла, которые являются двумя отдельными вещами.
Поэтому, возможно, вам придется добавить два параметра env вместо одного:
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
Эффективно дублирует дисплей.