63

我已经尝试了各种方式在我们的网络服务器上安装wkhtmltopdf,但不幸的是它没有安装。如安装教程中所述,我无法访问 user/bin 文件夹。

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

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

4

12 回答 12

52

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

然后,您将在主机上拥有二进制文件,并且无论它是否在 /usr/bin/ 文件夹中,都可以运行它。(或者至少我能够)

去测试:

$ ./wkhtmltopdf-amd64 http://www.example.com example.pdf
  • 请注意,如果您位于可执行文件所在的文件夹中,您可能应该在它./前面加上以确保它的开头。

反正为我工作

于 2010-06-25T08:27:39.243 回答
33

如果您有sudo访问权限...

Ubuntu 14.04 / 15.04 / 18.04:

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

其他

看看其他答案。

于 2015-01-09T20:59:15.910 回答
27

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

一、安装依赖

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
于 2011-04-26T08:28:51.463 回答
3

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

打电话给您的托管公司并请求他们安装它,但不要期望得到很好的回应 - 他们通常不会为单个用户安装非常自定义的项目,除非有一个非常好的理由(例如错误修复)。

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

GL!

于 2010-02-16T16:08:15.520 回答
3

Debian 8 Jessie
这行得通 sudo apt-get install wkhtmltopdf

于 2016-03-05T08:32:30.233 回答
1

将 wkhtmltopdf 可执行文件放在服务器上并将其 chmod +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
  • 库/libX11.so.6 库/libX11.so.6.2.0
  • lib/libXau.so.6 lib/libXau.so.6.0.0
  • 库/libxcb.so.1 库/libxcb.so.1.0.0
  • lib/libxcb-xlib.so.0
  • lib/libxcb-xlib.so.0.0.0
  • 库/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);
}
于 2010-05-21T13:58:41.603 回答
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
于 2015-12-02T23:39:36.120 回答
1

自从添加了最佳答案以来,一些事情发生了变化。他们曾经为我工作过,但现在不完全了,所以我已经研究了一段时间,并为Ubuntu 16.04提出了以下解决方案。对于 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

测试一下:

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

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

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

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

对于 Ubuntu 14.04,您需要降级到不同版本的 libssl。您可以在此处找到版本。无论如何,在任何生产服务器上降级之前,请务必考虑降级 libssl 的影响。

我希望这可以帮助别人!

于 2017-08-07T11:48:08.527 回答
1

共享主机没有 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 文件。
于 2017-07-25T21:34:33.073 回答
0

尝试后,以下命令对我有用

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
于 2018-03-01T10:31:58.930 回答
0

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/
  • 检查安装成功:wkhtmltopdf -V
  • rm -rf wkhtmltox
  • rm -f wkhtmltox-0.12.4_linux-generic-amd64.tar
于 2021-11-15T16:51:43.107 回答
-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/local/bin/wkhtmltopdf) 上传解压缩的“usr”文件夹中的二进制文件

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

于 2019-05-01T00:38:27.407 回答