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