web-dev-qa-db-fra.com

Comment installer wkhtmltopdf sur un serveur Web sous Linux (hébergement partagé)

J'ai essayé de toutes les manières d’obtenir wkhtmltopdf installé sur notre serveur Web, mais malheureusement, il ne s’est pas installé. Je ne peux pas accéder au dossier utilisateur/bin comme indiqué dans un didacticiel lors de l'installation.

Sur le serveur dans le dossier public_html, il existe un sous-dossier _vti_bin, j'ai copié le fichier wkhtmltopdf-i386 de wkhtmltopdf-0.9.1-static-i386, mais pas capable de l'exécuter.

Comment installer wkhtmltopdf sur un serveur Web (hébergement partagé) et le faire fonctionner?

58
Yogi Yang 007

J'ai réussi à installer wkhtmltopdf-AMD64 sur mon compte d'hébergement partagé sans accès root.

Voici ce que j'ai fait:

Téléchargé le binaire statique pertinent v0.10.0 à partir d’ici: http://code.google.com/p/wkhtmltopdf/downloads/list

EDIT: Ce qui précède est passé à ici

via ssh sur mon hôte partagé a tapé ce qui suit:

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

vous aurez alors le fichier binaire sur votre hôte et pourrez l'exécuter, qu'il soit dans le dossier/usr/bin/ou non. (ou au moins j'ai pu)

Tester:

$ ./wkhtmltopdf-AMD64 http://www.example.com example.pdf
  • Remarque: rappelez-vous que si vous vous trouvez dans le dossier contenant l'exécutable, vous devez probablement le préfacer par ./ pour vous en assurer.

Travaillé pour moi quand même

49
Christopher

Ubuntu 14.04/15.04:

Sudo apt-get install wkhtmltopdf

Autres

Regardez les autres réponses.

29
jmunsch

Si son ubuntu alors allez-y, cela a déjà été testé.

d'abord, installer des dépendances

Sudo aptitude install openssl build-essential xorg libssl-dev

pour OS 64bits

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

pour OS 32bits

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
Mohit Jain

Il est fort probable que sans un accès complet à ce serveur (en raison de son compte hébergé), vous allez avoir des problèmes. J'irais même jusqu'à dire que je pense que c'est une entreprise infructueuse - ils doivent verrouiller les serveurs dans des environnements hébergés pour de bonnes raisons.

Appelez votre hébergeur et demandez-lui de l'installer, mais n'attendez pas une réponse satisfaisante: ils n'installent généralement pas d'éléments très personnalisés pour des utilisateurs uniques, à moins d'une raison valable (corrections de bugs par exemple).

Enfin, en fonction de votre connaissance de l'administration de serveur et de ce que vous payez pour l'hébergement de serveur, envisagez quelque chose comme http://www.slicehost.com . 20 $ par mois vous obtiendrez un serveur Web de bas niveau (256 RAM) et vous pourrez installer ce que vous voulez. Toutefois, si vous utilisez plusieurs sites ou que vous avez une charge de travail importante, le coût augmentera si vous avez besoin de serveurs plus grands.

GL!

3
Shane

Debian 8 Jessie
Cela fonctionne Sudo apt-get install wkhtmltopdf

2
Africangeek

Liste des versions stables wkhtmltopdf: http://wkhtmltopdf.org/downloads.html

Installer wkhtmltopdf sur 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
Akairis

Placez l'exécutable wkhtmltopdf sur le serveur et chmod it + x.

Créez un script shell exécutable wrap.sh contenant:

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

Téléchargez les objets partagés nécessaires pour cette architecture et placez-les dans un dossier nommé "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

(certains d'entre eux sont des liens symboliques)

… Et vous êtes prêt à partir:

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

Si vous rencontrez des problèmes de police tels que des carrés pour tous les caractères, définissez les polices TrueType de manière explicite:

@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
jockie

Après avoir essayé, les commandes ci-dessous fonctionnent pour moi

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

Merci et salutations

Jaiswar Vipin Kumar R.

Quelques choses ont changé depuis l’ajout des réponses principales. Ils avaient l'habitude de travailler pour moi, mais plus maintenant, alors je me suis mis à bidouiller un peu pour proposer la solution suivante pour Ubuntu 16.04. Pour Ubuntu 14.04, voir le commentaire au bas de la réponse. Toutes mes excuses si cela ne fonctionne pas pour l'hébergement partagé, mais il semble que ce soit la réponse à goto pour les instructions d'installation de wkhtmltopdf en général.

# 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

Testez-le:

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

Vous devriez maintenant avoir un fichier nommé google.pdf dans le répertoire de travail actuel.

Cette approche télécharge le fichier binaire à partir du site Web, ce qui signifie que vous pouvez utiliser la version la plus récente au lieu de vous fier aux gestionnaires de packages pour être mis à jour.

Notez que, à compter d’aujourd’hui, ma solution inclut un correctif temporaire pour ce bogue . Je me rends compte que la solution n'est vraiment pas géniale, mais j'espère qu'elle pourra être supprimée rapidement. Assurez-vous de vérifier le statut du problème lié à GitHub pour voir si le correctif est toujours nécessaire à la lecture de cette réponse!

Pour Ubuntu 14.04, vous devrez revenir à une version différente de libssl. Vous pouvez trouver les versions ici . Quoi qu'il en soit, assurez-vous de prendre en compte les conséquences de la mise à niveau antérieure de libssl avant de le faire sur un serveur de production.

J'espère que ça aidera quelqu'un!

1
Andy0708

Hébergement partagé sans accès ssh ou shell?

Voici comment je l'ai fait;

  1. Visitez https://wkhtmltopdf.org/downloads.html et téléchargez la version stable appropriée pour Linux. Pour mon cas, j'ai choisi 32 bits , Qui est wkhtmltox-0.12.4_linux-generic-i386.tar.xz
  2. Décompressez dans un dossier de votre lecteur local.
  3. Téléchargez le dossier sur public_html (ou l’emplacement qui vous convient le plus) en utilisant un programme FTP comme tout autre fichier.
  4. Modifiez les chemins binaires dans le fichier snappy.php pour pointer les fichiers appropriés dans le dossier que vous venez de télécharger . Bingo! Voilà. Vous devriez pouvoir générer des fichiers PDF.
0
Kennedy Mwenda