如何在基于Linux的Web服务器上安装wkhtmltopdf 0.12.0及更高版本?

3

wkhtmltopdf 0.11.0及更早版本可通过将linux静态二进制文件简单复制到Web服务器上(如此处所示https://dev59.com/znE95IYBdhLWcg3wi-Qc#3116571),并通过PHP命令运行它,例如:

exec('/path/to/wkhtmltopdf-amd64 file.html file.php');

较新的版本中wkhtmltopdf(0.12.0及更高版本)没有静态二进制文件。如果您没有root访问权限,该如何在共享托管账户上安装?

Web服务器上的操作系统:

Linux multidomain1.hostsila.com 2.6.18-274.el5 #1 SMP Fri Jul 22 04:43:29 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

Linux version 2.6.18-274.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) #1 SMP Fri Jul 22 04:43:29 EDT 2011

CentOS release 5.10 (Final)


他们提供静态二进制文件 -> http://wkhtmltopdf.org/downloads.html - Yurui Zhang
@YuruiRayZhang 什么?在哪里? - Modder
在下载页面中,下载CentOS 5.10版本的构建文件,解压缩后,静态构建文件应该在bin文件夹或其中某个位置(我不记得确切的位置了)。 - Yurui Zhang
@YuruiRayZhang 请看第一个答案。这已经完成了。但是静态二进制文件在运行时出现错误。 - Modder
嗯...也许你应该尝试自己构建它,并在他们的 Github 存储库中提交一个工单。 - Yurui Zhang
1个回答

4
如果你查看0.12.1的官方二进制文件,实际上是RPM。如果你没有服务器的root访问权限,可以简单地运行以下命令来提取RPM内容: rpm2cpio wkhtmltox-0.12.1_linux-centos5-amd64.rpm | cpio -idmv 你应该在usr/local/bin子目录中获取到二进制文件,然后可以将其复制到任何你想要的位置。
请注意,如果这些依赖包(fontconfig freetype libpng zlib libjpeg openssl libX11 libXext libXrender libstdc++ glibc)未安装,请联系主机安装。

感谢您的命令!静态二进制文件已完成。但在运行时wkhtmltopdf出现错误:Segmentation fault (core dumped)。版本0.11.0和0.10.0均无错误。 - Modder
你是在任何输入上都崩溃了还是仅限于某些文件? - ashkulz
几乎所有的文件都可以,但在其余的文件上我会得到这个错误 terminate called after throwing an instance of 'std::bad_alloc' - Modder
你可以在有root访问权限的虚拟机中检查二进制文件是否正常工作吗?我怀疑这可能与您的Web服务器有关,该服务器启用了某些安全设置,导致wkhtmltopdf崩溃。 - ashkulz
我没有可能做到这一点。无论如何,谢谢你。已经不必要了。我使用早期版本,它运行良好。 - Modder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接