Как установить wkhtmltopdf на веб-сервер на базе Linux (общий хостинг)

StackOverflow https://stackoverflow.com/questions/2273534

  •  20-09-2019
  •  | 
  •  

Вопрос

Я пытался всеми способами получить wkhtmltopdf wkhtmltopdf установлен на нашем веб-сервере, но, к сожалению, он не устанавливается.Я не могу получить доступ к папке user / bin, как указано в руководстве по установке.

На сервере в public_html ( общедоступный html ) папка есть вложенная папка _вти_бин, Я скопировал файл wkhtmltopdf-i386 От wkhtmltopdf-0.9.1-статический-i386, но я не в состоянии это выполнить.

Как установить wkhtmltopdf wkhtmltopdf на веб-сервере (общий хостинг) и заставить его работать?

Это было полезно?

Решение

Мне удалось успешно установить wkhtmltopdf-amd64 в мою учетную запись общего хостинга без root-доступа.

Вот что я сделал:

Скачал соответствующий статический двоичный файл версии 0.10.0 отсюда: http://code.google.com/p/wkhtmltopdf/downloads/list

Редактировать:Вышесказанное переместилось в здесь

через ssh на моем общем хостинге набрал следующее:

$ wget {relavant url to binary from link above}
$ tar -xvf {filename of above wget'd file}

затем у вас будет двоичный файл на вашем хостинге, и вы сможете запустить его независимо от того, находится ли он в папке / usr / bin / или нет.(или, по крайней мере, я был в состоянии)

Чтобы проверить:

$ ./wkhtmltopdf-amd64 http://www.example.com example.pdf
  • Примечание помните, что если вы находитесь в папке, в которой находится исполняемый файл, вам, вероятно, следует предварить его ./ просто чтобы быть уверенным.

Во всяком случае, у меня сработало

Другие советы

Если у вас есть sudo доступ...

Убунту 14.04 / 15.04 / 18.04:

sudo apt-get install wkhtmltopdf
# or
sudo apt install wkhtmltopdf

Прочее

Посмотрите на другие ответы.

Если это ubuntu, то продолжайте с этим, уже протестированным.:--

во-первых, установка зависимостей

sudo aptitude install openssl build-essential xorg libssl-dev

для 64-битной ОС

wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-amd64.tar.bz2 
tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2
mv wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf

для 32-битной ОС

wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-i386.tar.bz2 
tar xvjf wkhtmltopdf-0.9.9-static-i386.tar.bz2
 mv wkhtmltopdf-i386 /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf

Скорее всего, без полного доступа к этому серверу (из-за того, что вы являетесь размещенной учетной записью) у вас возникнут проблемы.Я бы зашел так далеко, что сказал, что считаю это бесплодной попыткой - им приходится блокировать серверы в размещенных средах по уважительной причине.

Позвоните в свою хостинговую компанию и отправьте им запрос на установку, но не ожидайте хорошего ответа - обычно они не будут устанавливать пользовательские элементы для отдельных пользователей, если на то нет действительно веской причины (например, исправления ошибок).

Наконец, в зависимости от того, насколько вы знакомы с администрированием сервера и сколько вы платите за хостинг сервера, теперь рассмотрим что-то вроде http://www.slicehost.com.За 20 долларов в месяц вы получите низкокачественный веб-сервер (256 ОЗУ), и вы сможете установить все, что захотите.Однако, если вы используете несколько сайтов или у вас большая нагрузка, стоимость возрастет, поскольку вам нужны серверы большего размера.

ГЛ!

Debian 8 Джесси
Это работает sudo apt-get install wkhtmltopdf

Поместите исполняемый файл wkhtmltopdf на сервер и измените его на chmod + x .

Создайте исполняемый сценарий оболочки wrap.sh содержащий:

#!/bin/sh
export HOME="$PWD"
export LD_LIBRARY_PATH="$PWD/lib/"
exec $@ 2>/dev/null
#exec $@ 2>&1 # debug mode

Загрузите необходимые общие объекты для этой архитектуры и поместите их в папку с именем "lib".:

  • библиотека/libfontconfig.so.1
  • lib/libfontconfig.so.1.3.0
  • библиотека/libfreetype.so.6
  • библиотека/libfreetype.so.6.3.18
  • библиотека /libX11.so.6 библиотека/libX11.so.6.2.0
  • библиотека/libXau.so.6 библиотека/libXau.so.6.0.0
  • библиотека/libxcb.so.1 библиотека/libxcb.so.1.0.0
  • библиотека/libxcb-xlib.so.0
  • lib/libxcb-xlib.so.0.0.0
  • библиотека/libXdmcp.so.6
  • библиотека/libXdmcp.so.6.0.0
  • библиотека/libXext.so.6 библиотека/libXext.so.6.4.0

(некоторые из них являются символическими ссылками)

... и ты готов идти:

./wrap.sh ./wkhtmltopdf-amd64 --page-size A4 --disable-internal-links --disable-external-links "http://www.example.site/" out.pdf

Если у вас возникли проблемы со шрифтом, такие как квадраты для всех символов, определите шрифты TrueType явно:

@font-face {
  font-family:Trebuchet MS;
  font-style:normal;
  font-weight:normal;
  src:url("http://www.yourserver.tld/fonts/Trebuchet_MS.ttf");
  format(TrueType);
}

Список стабильных версий wkhtmltopdf: http://wkhtmltopdf.org/downloads.html

Установка wkhtmltopdf на Debian 8.2 (jessie) x64:

sudo apt-get install xfonts-75dpi
sudo apt-get install xfonts-base
sudo wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-jessie-amd64.deb
sudo dpkg -i wkhtmltox-0.12.2.1_linux-jessie-amd64.deb

С тех пор как были добавлены лучшие ответы, кое-что изменилось.Раньше у меня это получалось, но теперь не совсем, поэтому я немного покопался и пришел к следующему решению для Ubuntu 16.04.Для Ubuntu 14.04 смотрите комментарий внизу ответа.Извиняюсь, если это не работает для общего хостинга, но, похоже, это ответ goto для инструкций по установке wkhtmltopdf в целом.

# Install dependencies
apt-get install libfontconfig \
    zlib1g \
    libfreetype6 \
    libxrender1 \
    libxext6 \
    libx11-6

# TEMPORARY FIX! SEE: https://github.com/wkhtmltopdf/wkhtmltopdf/issues/3001
apt-get install libssl1.0.0=1.0.2g-1ubuntu4.8
apt-get install libssl-dev=1.0.2g-1ubuntu4.8

# Download, extract and move binary in place
curl -L -o wkhtmltopdf.tar.xz https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar -xf wkhtmltopdf.tar.xz
mv wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf

Протестируйте это:

wkhtmltopdf http://www.google.com google.pdf

Теперь у вас должен быть файл с именем google.pdf в текущем рабочем каталоге.

Такой подход загружает двоичный файл с веб-сайта, что означает, что вы можете использовать последнюю версию вместо того, чтобы полагаться на обновляемые менеджеры пакетов.

Обратите внимание, что на сегодняшний день мое решение включает временное исправление к этому багу.Я понимаю, что решение действительно невелико, но, надеюсь, его скоро можно будет удалить. Обязательно проверьте статус связанной проблемы с GitHub, чтобы увидеть, по-прежнему ли необходимо исправление, когда вы прочитаете этот ответ!

Для Ubuntu 14.04 вам нужно будет перейти на другую версию libssl.Ты можешь с версиями можно ознакомиться здесь.В любом случае, обязательно рассмотрите последствия понижения рейтинга libssl, прежде чем делать это на любом производственном сервере.

Я надеюсь, что это кому-то поможет!

После попытки приведенная ниже команда работает для меня

cd ~
yum install -y xorg-x11-fonts-75dpi xorg-x11-fonts-Type1 openssl git-core fontconfig
wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
mv wkhtmltox/bin/wkhtmlto* /usr/bin

Спасибо и С уважением

Джайсвар Випин Кумар Р.

На общем хостинге нет доступа по ssh или оболочке?

Вот как я это сделал;

  1. Посетить https://wkhtmltopdf.org/downloads.html и загрузите соответствующую стабильную версию для Linux.Для моего случая я выбрал 32-разрядный который является wkhtmltox-0.12.4_linux-generic-i386.tar.xz
  2. Распакуйте архив в папку на вашем локальном диске.
  3. Загрузите папку в public_html (или в любое другое удобное для вас место) с помощью FTP-программы, как и любые другие файлы
  4. Измените двоичные пути в snappy.php file, чтобы указать соответствующие файлы в папке, которую вы только что загрузили.Бинго!вот оно, у вас есть.Вы должны уметь генерировать PDF-файлы.

Версия 12.5 wkhtmltopdf теперь отображает только файлы DEB на их странице загрузки.Будучи пользователем Mac и не очень разбираясь в Linux или в том, что такое DEB-файлы, я не мог использовать опубликованные решения.

Эта страница помогла мне преодолеть известный поворот при загрузке файла DEB: http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/

По сути, то, что я сделал, было:

  1. Загружено с https://wkhtmltopdf.org/downloads.html
  2. Разархивировал файл DEB.
  3. Распакованные данные.tar.xz
  4. Загрузил двоичный файл в распакованную папку 'usr' с шага 3 (usr/local/bin/wkhtmltopdf).

Затем я узнал, что функция 'exec' была отключена на моем хостинге.Поэтому убедитесь, что вы можете специально запустить 'exec', если вы используете PHP для запуска этого."Могу ли я запустить двоичный файл wkhtmltopdf" недостаточно конкретен.Моя вина.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top