如何在基于Linux(共享主机)的Web服务器上安装wkhtmltopdf

我已经尝试了所有的方式来获得wkhtmltopdf安装在我们的networking服务器,但不幸的是没有得到安装。 我无法访问安装教程中所述的用户/ bin文件夹。

public_html文件夹中的服务器上有一个子文件夹_vti_bin ,我从wkhtmltopdf-0.9.1-static-i386复制文件wkhtmltopdf -i386 ,但我无法执行它。

如何在(共享主机)Web服务器上安装wkhtmltopdf并使其工作?

我已成功地在我的共享主机帐户上成功安装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} 

那么你将在你的主机上拥有这个二进制文件,并且能够运行它,不pipe它在/ usr / bin /文件夹中。 (或者至less我能够)

去testing:

 $ ./wkhtmltopdf-amd64 http://www.example.com example.pdf 
  • 请注意,如果您位于可执行文件所在的文件夹中,则可能需要以./

无论如何为我工作

如果它的Ubuntu然后继续这个,已经testing。

首先,安装依赖关系

 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 

Ubuntu 14.04 / 15.04:

 sudo apt-get install wkhtmltopdf 

其他

看看其他答案。

如果没有完全访问此服务器(由于是托pipe帐户),您将有可能遇到问题。 我甚至会说,我认为这是一个没有结果的努力 – 他们必须在托pipe环境中locking服务器,原因很多。

打电话给您的托pipe公司,并要求他们安装它,但不要指望一个好的回应 – 他们通常不会安装非常自定义的项目,除非有一个真正的理由(例如错误修复)。

最后,根据您对服务器pipe理的熟悉程度以及您为服务器托pipe支付的费用,现在考虑诸如http://www.slicehost.com 。 一个月20美元将会给你一个低等级的networking服务器(256 RAM),你可以安装任何你想要的东西。 但是,如果您运行多个站点或负载较重,则成本会随着您需要较大的服务器而增加。

GL!

将wkhtmltopdf可执行文件放在服务器上,然后chmod it + x。

创build一个可执行的shell脚本wrap.sh,其中包含:

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

为该体系结构下载所需的共享对象,并将它们放在一个名为“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

(其中一些是符号链接)

…你准备好了:

 ./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); } 

Debian 8 Jessie
这个工程sudo apt-get install wkhtmltopdf

稳定版本列表wkhtmltopdf: http ://wkhtmltopdf.org/downloads.html

在Debian 8.2(jessie)x64上安装wkhtmltopdf:

 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提出了以下解决scheme。 对于Ubuntu 14.04,请参阅答案底部的注释。 道歉,如果这不适用于共享主机,但似乎这是一般的wkhtmltopdf安装说明goto答案。

 # 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 

testing一下:

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

您现在应该在当前工作目录中有一个名为google.pdf的文件。

这种方法从网站下载二进制文件,这意味着您可以使用最新版本,而不是依靠软件包pipe理器进行更新。

请注意,截至今天,我的解决scheme包括对此错误的临时修复。 我意识到,解决scheme真的不是很好,但希望它可以很快被删除。 一定要检查链接的GitHub问题的状态,看看当你阅读这个答案时修复仍然是必要的!

对于Ubuntu 14.04,您将需要降级到不同版本的libssl。 你可以在这里find版本 。 无论如何,一定要在任何生产服务器上考虑降级libssl的含义。

我希望这可以帮助别人!

共享主机没有SSH或shell访问?

我是这样做的;

  1. 访问https://wkhtmltopdf.org/downloads.html并下载相应的Linux稳定版本。; 对于我的情况,我select了32位,这是wkhtmltox-0.12.4_linux-generic-i386.tar.xz
  2. 解压缩到本地驱动器上的文件夹。
  3. 使用FTP程序将文件夹上传到public_html(或任何适合您需要的位置),就像任何其他文件一样
  4. 更改snappy.php文件中的二进制path,以指向刚刚上传的文件夹中的相应文件。 答对了! 你有它。 你应该能够生成PDF文件。