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

时间:2010-02-16 14:26:41

标签: pdf wkhtmltopdf

我已经尝试过在我们的网络服务器上安装 wkhtmltopdf 但不幸的是它没有安装。我无法按照安装教程中的说明访问user / bin文件夹。

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

如何在(共享主机)Web服务器上安装 wkhtmltopdf 并使其正常运行?

11 个答案:

答案 0 :(得分:50)

我已成功在我的共享主机帐户上成功安装wkhtmltopdf-amd64而无需root权限。

这就是我所做的:

从此处下载相关的静态二进制文件v0.10.0:http://code.google.com/p/wkhtmltopdf/downloads/list

编辑:以上内容已移至here

通过共享主机上的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
  • 请注意,如果您位于可执行文件所在的文件夹中,您可能应该使用./作为前缀,以确定。

无论如何为我工作

答案 1 :(得分:30)

Ubuntu 14.04 / 15.04 / 18.04:

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

其他

看看其他答案。

答案 2 :(得分:26)

如果它的ubuntu然后继续这个,已经测试了。: -

首先,安装依赖项

sudo aptitude install openssl build-essential xorg libssl-dev

for 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

用于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

答案 3 :(得分:3)

如果没有对此服务器的完全访问权限(由于是托管帐户),您可能会遇到问题。我甚至会说,我认为这是一项徒劳无功的努力 - 他们必须在托管环境中锁定服务器,这是有充分理由的。

致电您的托管公司并向他们发出安装请求,但不要期待良好的响应 - 他们通常不会为单个用户安装非常自定义的项目,除非有充分的理由(错误修复了例子)。

最后,根据您对服务器管理的熟悉程度以及您为服务器托管支付的费用,请考虑http://www.slicehost.com之类的内容。每月20美元将为您提供低级Web服务器(256 ram),您可以安装任何您想要的东西。但是,如果您运行多个站点或负载过重,则需要更大的服务器,因此成本会上升。

GL!

答案 4 :(得分:2)

Debian 8 Jessie
这有效 sudo apt-get install wkhtmltopdf

答案 5 :(得分:1)

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

创建一个包含以下内容的可执行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);
}

答案 6 :(得分:1)

稳定版本列表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

答案 7 :(得分:1)

自添加最高答案以来,一些事情发生了变化。他们过去常常为我工作,但现在已经不多了,所以我一直在讨厌,并为 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的文件。

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

请注意,截至今天,我的解决方案包含临时修复to this bug。我意识到解决方案真的不是很好,但希望它很快就会被删除。 请务必检查链接的GitHub问题的状态,以便在您阅读此答案时查看是否仍需要修复!

对于Ubuntu 14.04,您需要降级到不同版本的libssl。你可以find the versions here。无论如何,在任何生产服务器上执行此操作之前,请务必考虑降级libssl的含义。

我希望这有助于某人!

答案 8 :(得分:1)

尝试后,下面的命令为我工作

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

谢谢&此致

Jaiswar Vipin Kumar R。

答案 9 :(得分:0)

共享托管没有ssh或shell访问权限?

以下是我的表现;

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

答案 10 :(得分:-1)

wkhtmltopdf的12.5版现在仅在其下载页面上列出了DEB文件。作为Mac用户,不了解很多Linux或什么DEB文件,我无法使用发布的解决方案。

此页面帮助我克服了下载DEB文件的已知难题:http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/

基本上我所做的是:

  1. https://wkhtmltopdf.org/downloads.html下载
  2. 解压缩DEB文件。
  3. 解压缩的data.tar.xz
  4. 将第3步中解压缩的“ usr”文件夹中的二进制文件上传(usr / local / bin / wkhtmltopdf)

然后我发现主机上的'exec'功能被禁用。因此,如果您使用PHP运行此程序,请确保可以专门运行“ exec”。 “我可以运行wkhtmltopdf二进制文件”不够具体。我的错。