Как установить wkhtmltopdf на веб-сервер на базе Linux (виртуальный хостинг) - PullRequest
60 голосов
/ 16 февраля 2010

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

На сервере в папке public_html есть подпапка _vti_bin , скопировал файл wkhtmltopdf-i386 из wkhtmltopdf-0.9.1 -static-i386 , но я не могу его выполнить.

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

Ответы [ 11 ]

51 голосов
/ 25 июня 2010

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

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

Загрузил соответствующий статический двоичный файл v0.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
  • Обратите внимание, что если вы находитесь в папке, в которой находится исполняемый файл, вы, вероятно, должны предварять его ./ просто для уверенности.

Все равно работал на меня

29 голосов
/ 09 января 2015

Ubuntu 14.04 / 15.04 / 18.04:

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

Другие

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

26 голосов
/ 26 апреля 2011

Если это 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

для32bit OS

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
3 голосов
/ 16 февраля 2010

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

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

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

GL!

2 голосов
/ 05 марта 2016

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

1 голос
/ 01 марта 2018

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

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

Спасибо и всего наилучшего

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

1 голос
/ 07 августа 2017

Несколько вещей изменились с тех пор, как были добавлены лучшие ответы. Раньше они работали для меня, но не совсем, поэтому я немного взломал и придумал следующее решение для Ubuntu 16.04 . Для Ubuntu 14.04 см. Комментарий внизу ответа. Приносим извинения, если это не работает для общего хостинга, но похоже, что это готовый ответ для инструкций по установке 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, прежде чем делать это на любом рабочем сервере.

Надеюсь, это кому-нибудь поможет!

1 голос
/ 03 декабря 2015

Список стабильных версий 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
1 голос
/ 21 мая 2010

Поместите исполняемый файл 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
  • Библиотека / libfontconfig.so.1.3.0
  • Библиотека / libfreetype.so.6
  • Библиотека / libfreetype.so.6.3.18
  • lib / libX11.so.6 lib / libX11.so.6.2.0
  • lib / libXau.so.6 lib / libXau.so.6.0.0
  • lib / libxcb.so.1 lib / libxcb.so.1.0.0
  • Библиотека / libxcb-xlib.so.0
  • Библиотека / libxcb-xlib.so.0.0.0
  • Библиотека / libXdmcp.so.6
  • Библиотека / libXdmcp.so.6.0.0
  • lib / libXext.so.6 lib / 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);
}
0 голосов
/ 01 мая 2019

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

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

В основном я сделал:

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

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

...