Jak zainstalować wkhtmltopdf na serwerze internetowym opartym na Linuksie (hosting współdzielony)

Próbowałem na wszystkie sposoby, aby zainstalować wkhtmltopdf na naszym serwerze WWW, ale niestety nie jest on instalowany. Nie mogę uzyskać dostępu do folderu user/bin, jak podano w samouczku instalacji.

Na serwerze w folderze public_html znajduje się podkatalog _vti_bin, skopiowałem plik wkhtmltopdf-i386 z wkhtmltopdf-0.9.1-static-i386, ale nie jestem w stanie go wykonać.

Jak zainstalować wkhtmltopdf on (shared hosting) serwer WWW i dostać to działa?

Author: HEDMON, 2010-02-16

10 answers

Udało mi się pomyślnie zainstalować wkhtmltopdf-amd64 na moim współdzielonym koncie hostingowym bez dostępu do roota.

Oto co zrobiłem:

Pobrano odpowiednie statyczne binarne v0. 10. 0 stąd: http://code.google.com/p/wkhtmltopdf/downloads/list

EDIT: powyższe zostało przeniesione do tutaj

Przez ssh na moim współdzielonym hoście wpisałem:

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

Następnie będziesz mieć binarny na swoim komputerze i będziesz mógł go uruchomić niezależnie od tego, czy jest w folder/usr/ bin / lub nie. (a przynajmniej udało mi się)

Do testu:

$ ./wkhtmltopdf-amd64 http://www.example.com example.pdf
  • Uwaga Pamiętaj, że jeśli znajdujesz się w folderze, w którym znajduje się plik wykonywalny, powinieneś go przedrukować ./ dla pewności.

Pracował dla mnie tak czy siak

 47
Author: Christopher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-16 19:47:55

Ubuntu 14.04 / 15.04:

sudo apt-get install wkhtmltopdf

Inne

Spójrz na inne odpowiedzi.
 29
Author: jmunsch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-03 14:44:16

Jeśli jego ubuntu to śmiało z tym, już przetestowane.:--

Najpierw instalacja zależności

sudo aptitude install openssl build-essential xorg libssl-dev

Dla 64bits OS

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

Dla 32bits 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
 26
Author: Mohit Jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-26 08:28:51

Są szanse, że bez pełnego dostępu do tego serwera (z powodu bycia hostowanym kontem) będziesz miał problemy. Posunąłbym się tak daleko, że powiedziałbym, że uważam to za bezowocne przedsięwzięcie-muszą zablokować serwery w środowiskach hostowanych z dobrego powodu.

Zadzwoń do swojej firmy hostingowej i poproś ją o jej zainstalowanie, ale nie oczekuj dobrej odpowiedzi-zazwyczaj nie instalują bardzo niestandardowych elementów dla pojedynczych użytkowników, chyba że istnieje naprawdę dobry powód (poprawki błędów dla przykład).

Wreszcie, w zależności od tego, jak dobrze znasz się na administrowaniu serwerami i ile płacisz za hosting serwerów, zastanów się teraz nad czymś takim http://www.slicehost.com. $20 miesięcznie da ci serwer WWW niskiej klasy (256 ram) i możesz zainstalować wszystko, co chcesz. Jeśli jednak korzystasz z wielu witryn lub masz duże obciążenie, koszt wzrośnie, ponieważ potrzebujesz większych serwerów.

GL!

 3
Author: Shane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-16 16:08:15

Debian 8 Jessie
To działa sudo apt-get install wkhtmltopdf

 2
Author: Africangeek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-05 09:16:44

Umieść plik wykonywalny wkhtmltopdf na serwerze i chmod go + x.

Tworzenie wykonywalnego skryptu powłoki wrap.sh zawierające:

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

Pobierz potrzebne obiekty współdzielone dla tej architektury i umieść je w folderze a o nazwie "lib":

  • lib / libfontconfig.so. 1
  • lib / libfontconfig.so.1.3.0
  • lib / libfreetype.so. 6
  • lib / 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
  • lib / libxcb-xlib. so. 0
  • lib / libxcb-xlib.so.0.0.0
  • lib / libXdmcp.so. 6
  • lib / libXdmcp.so.6.0. 0
  • lib / libXext.so.6 lib/libXext.so.6.4. 0

(Niektóre z nich są dowiązaniami symbolicznymi)

... and you ' re ready to go:

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

Jeśli występują problemy z czcionką, takie jak kwadraty dla wszystkich znaków, zdefiniuj czcionki TrueType jawnie:

@font-face {
  font-family:Trebuchet MS;
  font-style:normal;
  font-weight:normal;
  src:url("http://www.yourserver.tld/fonts/Trebuchet_MS.ttf");
  format(TrueType);
}
 1
Author: jockie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-21 13:58:41

Lista stabilnych wersji wkhtmltopdf: http://wkhtmltopdf.org/downloads.html

Instalacja wkhtmltopdf na Debianie 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
Author: Akairis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-24 19:51:36

Kilka rzeczy się zmieniło od czasu dodania pierwszych odpowiedzi. Kiedyś mi się udało, ale już nie całkiem, więc trochę się hackowałem i wymyśliłem następujące rozwiązanie dla Ubuntu 16.04. Dla Ubuntu 14.04, zobacz komentarz na dole odpowiedzi. Przepraszamy, jeśli to nie działa w przypadku hostingu współdzielonego, ale wygląda na to, że jest to odpowiedź goto dla instrukcji instalacji wkhtmltopdf w ogóle.

# 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

Przetestuj to:

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

Powinieneś teraz miej plik o nazwie google.pdf w bieżącym katalogu roboczym.

Takie podejście pobiera plik binarny ze strony internetowej, co oznacza, że można używać najnowszej wersji zamiast polegać na menedżerach pakietów do aktualizacji.

Zauważ, że od dziś moje rozwiązanie zawiera tymczasową poprawkę do tego błędu . Zdaję sobie sprawę, że rozwiązanie naprawdę nie jest świetne, ale mam nadzieję, że wkrótce można je usunąć. pamiętaj, aby sprawdzić status połączonego problemu z GitHub, aby sprawdzić, czy poprawka jest nadal koniecznie po przeczytaniu tej odpowiedzi!

Dla Ubuntu 14.04, będziesz musiał zmienić wersję libssl na inną. Możesz znaleźć wersje tutaj . Tak czy inaczej, pamiętaj, aby rozważyć konsekwencje obniżenia wersji libssl przed zrobieniem tego na dowolnym serwerze produkcyjnym.

Mam nadzieję, że to komuś pomoże!
 1
Author: Andy0708,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-07 11:48:08

Współdzielony hosting bez dostępu ssh lub shell?

Oto Jak to zrobiłem;

  1. wizyta https://wkhtmltopdf.org/downloads.html i pobrać odpowiednie stabilne wydanie dla Linuksa. Do mojego przypadku wybrałem 32-bit czyli wkhtmltox-0.12.4_linux-generic-i386.smoła.xz
  2. Rozpakuj do folderu na dysku lokalnym.
  3. Prześlij folder do public_html (lub dowolnej lokalizacji odpowiadającej twoim potrzebom) za pomocą programu FTP, tak jak każdy inny plik (y)
  4. Zmień ścieżki binarne w żwawo.plik php, aby wskazać odpowiednie pliki w folderze, który właśnie przesłałeś. Bingo! proszę bardzo. Powinieneś być w stanie generować pliki PDF.
 0
Author: Kennedy Mwenda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-25 21:34:33

Po wypróbowaniu, poniżej polecenie działa dla mnie

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

Thanks & Regards

Jaiswar Vipin Kumar R.

 0
Author: Vipin Kumar R. Jaiswar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-01 10:31:58