Hoe wkhtmltopdf te installeren op een op Linux gebaseerde (shared hosting) webserver

Ik heb op alle mogelijke manieren geprobeerd om wkhtmltopdfop onze webserver te installeren, maar het wordt helaas niet geïnstalleerd. Ik heb geen toegang tot de gebruikers-/bin-map zoals vermeld in een tutorial over installatie.

Op de server in de public_htmlmap is er een submap _vti_bin, ik heb het bestand wkhtmltopdf-i386gekopieerd van wkhtmltopdf- 0.9.1-static-i386, maar ik kan het niet uitvoeren.

Hoe installeer ik wkhtmltopdfop (shared hosting) webserver en krijg ik het werkend?


Antwoord 1, autoriteit 100%

Het is me gelukt om wkhtmltopdf-amd64 op mijn gedeelde hostingaccount te installeren zonder root-toegang.

Dit is wat ik deed:

De relevante statische binaire versie v0.10.0 gedownload van hier: http://code.google .com/p/wkhtmltopdf/downloads/list

EDIT: het bovenstaande is verplaatst naar hier

via ssh op mijn gedeelde host typte het volgende:

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

je hebt dan het binaire bestand op je host en kunt het uitvoeren, ongeacht of het zich in de map /usr/bin/ bevindt of niet. (of dat kon ik tenminste)

Te testen:

$ ./wkhtmltopdf-amd64 http://www.example.com example.pdf
  • Houd er rekening mee dat als u zich in de map bevindt waarin het uitvoerbare bestand zich bevindt, u het voor de zekerheid waarschijnlijk moet voorafgaan met ./.

Werkte toch voor mij


Antwoord 2, autoriteit 63%

Als je toegang hebt tot sudo

Ubuntu 14.04 / 15.04 / 18.04:

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

Anderen

Kijk naar de andere antwoorden.


Antwoord 3, autoriteit 52%

Als het ubuntu is, ga dan hiermee door, al getest.:–

eerst, afhankelijkheden installeren

sudo aptitude install openssl build-essential xorg libssl-dev

voor 64-bits besturingssysteem

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

voor 32-bits besturingssysteem

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

Antwoord 4, autoriteit 6%

De kans is groot dat u problemen krijgt zonder volledige toegang tot deze server (omdat u een gehost account bent). Ik zou zelfs zo ver willen gaan om te zeggen dat ik denk dat het een vruchteloze onderneming is – ze moeten om een ​​goede reden servers vergrendelen in gehoste omgevingen.

Bel uw hostingbedrijf en dien het verzoek in om het te installeren, maar verwacht geen goede reactie – ze zullen doorgaans geen erg aangepaste items voor individuele gebruikers installeren, tenzij er een echt goede reden voor is (bugfixes voor voorbeeld).

Ten slotte, afhankelijk van hoe bekend je bent met serverbeheer en wat je betaalt voor serverhosting, overweeg dan iets als http: //www.slicehost.com. Voor $ 20 per maand krijg je een webserver van lage kwaliteit (256 ram) en je kunt alles installeren wat je maar wilt. Als u echter meerdere sites gebruikt of zwaar belast bent, zullen de kosten stijgen omdat u grotere servers nodig heeft.

GL!


Antwoord 5, autoriteit 6%

Debian 8 Jessie
Dit werkt
sudo apt-get install wkhtmltopdf


Antwoord 6, autoriteit 2%

Plaats het uitvoerbare bestand wkhtmltopdf op de server en chmod het +x.

Maak een uitvoerbaar shellscript wrap.sh met daarin:

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

Download de benodigde gedeelde objecten voor die architectuur en plaats ze in een map met de naam “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

(sommige zijn symbolische links)

… en je bent klaar om te gaan:

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

Als u problemen met lettertypen ervaart, zoals vierkanten voor alle tekens, definieert u TrueType-lettertypen dan expliciet:

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

Antwoord 7, autoriteit 2%

Lijst met stabiele versies wkhtmltopdf: http://wkhtmltopdf.org/downloads.html

Wkhtmltopdf installeren op 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

Antwoord 8, autoriteit 2%

Gedeelde hosting geen ssh- of shell-toegang?

Hier is hoe ik het deed;

  1. Bezoek https://wkhtmltopdf.org/downloads.htmlen download de juiste stabiele release voor Linux. Voor mijn geval koos ik 32-bit
    dat is wkhtmltox-0.12.4_linux-generic-i386.tar.xz
  2. Pak het uit naar een map op je lokale schijf.
  3. Upload de map naar public_html (of welke locatie dan ook) met een FTP-programma, net als elk ander bestand(en)
  4. Verander de binaire paden in het snappy.php-bestand zodat ze naar de juiste bestanden verwijzen in de map die je zojuist hebt geüpload.
    Bingo! daar heb je het. U zou PDF-bestanden moeten kunnen genereren.

Antwoord 9, autoriteit 2%

Er zijn een paar dingen veranderd sinds de beste antwoorden zijn toegevoegd. Vroeger werkten ze voor mij, maar nu niet meer helemaal, dus ik ben een tijdje aan het hacken geweest en kwam met de volgende oplossing voor Ubuntu 16.04. Zie voor Ubuntu 14.04 de opmerking onderaan het antwoord. Excuses als dit niet werkt voor shared hosting, maar het lijkt erop dat dit het juiste antwoord is voor wkhtmltopdf-installatie-instructies in het algemeen.

# 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

Probeer het uit:

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

U zou nu een bestand met de naam google.pdfin de huidige werkdirectory moeten hebben.

Deze aanpak downloadt het binaire bestand van de website, wat betekent dat u de nieuwste versie kunt gebruiken in plaats van te vertrouwen op pakketbeheerders die moeten worden bijgewerkt.

Merk op dat vanaf vandaag mijn oplossing een tijdelijke oplossing voor deze bugbevat . Ik realiseer me dat de oplossing niet echt geweldig is, maar hopelijk kan deze snel worden verwijderd. Controleer de status van het gekoppelde GitHub-probleem om te zien of de oplossing nog steeds nodig is als je dit antwoord leest!

Voor Ubuntu 14.04 moet u downgraden naar een andere versie van libssl. Je kunt de versies hier vinden. Overweeg in ieder geval de implicaties van het downgraden van libssl voordat u dit op een productieserver doet.

Ik hoop dat dit iemand helpt!


Antwoord 10

Na het proberen, werkt het onderstaande commando voor mij

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

Antwoord 11

Laatste update voor CentOS:

  • sudo yum install -y libpng libjpeg openssl icu libX11 libXext libXrender xorg-x11-fonts-Type1 xorg-x11-fonts-75dpi
  • wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
  • tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar
  • sudo mv wkhtmltox/bin/* /usr/local/bin/
  • controleer installatie succes: wkhtmltopdf -V
  • rm -rf wkhtmltox
  • rm -f wkhtmltox-0.12.4_linux-generic-amd64.tar

Antwoord 12

Versie 12.5 van wkhtmltopdf vermeldt nu alleen DEB-bestanden op hun downloadpagina. Omdat ik een mac-gebruiker was en niet veel linux wist of welke DEB-bestanden het waren, kon ik de geposte oplossingen niet gebruiken.

Deze pagina hielp me voorbij de bekende wending van het downloaden van een DEB-bestand: http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/

Wat ik eigenlijk deed was:

  1. Gedownload van https://wkhtmltopdf.org/downloads.html
  2. Het DEB-bestand uitgepakt.
  3. Uitgepakt data.tar.xz
  4. Het binaire bestand geüpload in de uitgepakte map ‘usr’ vanaf stap 3 (usr/local/bin/wkhtmltopdf)

Toen kwam ik erachter dat de ‘exec’-functie op mijn host was uitgeschakeld. Zorg er dus voor dat u specifiek ‘exec’ kunt uitvoeren als u PHP gebruikt om dit uit te voeren. “Kan ik het binaire bestand wkhtmltopdf uitvoeren” is niet specifiek genoeg. Mijn fout.

Other episodes