wkhtmltopdf
wkhtmltopdf
安装
1、windows环境安装。直接在官网(https://wkhtmltopdf.org/downloads.html)下载stable的稳定版wkhtmltox-0.12.5-1.msvc2015-win64.exe,
注意:
(a)下载稳定版。我一开始没有留意,就在Bleeding Edge栏目下载了wkhtmltox-0.13.0-alpha-7b36694_msvc2013-win64.exe(注意是alpha版本),也安装了,但是很多参数是用不了的,所以切记要下载stable的版本;
(b)注意环境变量的路径。windows环境下,还有就是要在环境变量里添加程序的路径,并且要注意如果路径是C:Program Files,注意有一个“空格”,程序是执行不了的。后来在环境变量里面添加的是没有空格的路径:C:inetpubwkhtmltopdfin。网上有人说是因为中文、空格的问题;
2、linux环境安装。我的环境是阿里云的,利用命令:cat /proc/version,查看版本是:Linux version 4.4.0-85-generic (buildd@lcy01-30) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #108-Ubuntu SMP Mon Jul 3 17:24:35 UTC 2017。
(1)32位阿里云服务器安装:
由于官网提供的stable版本是deb格式程序,为了安装方便,就上github下载,地址:https://github.com/wkhtmltopdf/wkhtmltopdf/releases/0.12.4,文件名称是:wkhtmltox-0.12.4_linux-generic-i386.tar.xz,2016-11-22发行。
参考阿里云的一篇文章的介绍,
(a)下载好以上安装包;
(b)解压:sudo tar -xvf wkhtmltox-0.12.4_linux-generic-i386.tar.xz;
(c)为了能从任意路径执行程序,将 wkhtmltopdf 安装到 /usr/bin 目录下: sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/;
(d)给文件夹权限可以执行生成文件。这一步非常重要,要不然,即使更改了php.ini ,增加safe_mode = off,也是没有用的。另外在NS服务器上,发现,其实safe_mode对于shell_exec时没有用处的,另外执行任务,文件夹权限设置位0755也已经足够了,0777还是太危险了。
(2)64位阿里云服务器安装:
版本问题:
[root@Launchang test]# php wkhtmltopdf2.php
sh: /usr/bin/wkhtmltopdf: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
说明这是安装的wkhtmltopdf的版本时32位(i386)的,所以出错。
插件问题:
重新登陆官网的下载页面,选择“CentOS 7 x86_64 / i686 Package (.rpm) built on CentOS 7.4.1804”
[root@Launchang Software]# rpm -ivh wkhtmltox-0.12.5-1.centos7.x86_64.rpm
error: Failed dependencies:
fontconfig is needed by wkhtmltox-1:0.12.5-1.centos7.x86_64
libXext is needed by wkhtmltox-1:0.12.5-1.centos7.x86_64
libXrender is needed by wkhtmltox-1:0.12.5-1.centos7.x86_64
xorg-x11-fonts-75dpi is needed by wkhtmltox-1:0.12.5-1.centos7.x86_64
xorg-x11-fonts-Type1 is needed by wkhtmltox-1:0.12.5-1.centos7.x86_64
# rpm -ivh wkhtmltox-0.12.5-1.centos7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:wkhtmltox-1:0.12.5-1.centos7 ################################# [100%]
文件夹执行权限问题
安装成功后,可以进入命令行执行php文件。但是浏览器执行,一定需要将该文件夹的权限提升!要不然无效!
中文乱码问题
存在中文乱码问题,可以在 C:WindowsFonts 找到 simsun.ttc 中文宋体,simsun.ttc 而不是 simsun.ttf,把字体文件放在 放在 /usr/share/fonts下面就行。
解决以上问题后,可以在浏览器执行php程序使用wkhtmltopdf工具了!
64位服务器的版本信息:
自然感应器Linux版本:Linux version 3.10.0-862.14.4.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Wed Sep 26 15:12:11 UTC 2018
其中3.10.0-862.el7.x86_64 这个即为内核发行版的信息了。
命名规则:
主版本号:3
次版本号:10【奇数为开发版本,偶数为稳定版本】
修订版本号:0【修改的次数】
此次版本的第N次修改:862
el7:redhat enterprise linux 7
x86_64:编译框架
综述:3.10 这个即为版本号,后面的为小版本号
---------------------------------------------------------
如果apache安装成为linux的服务的话,可以用以下命令操作:
service httpd start 启动
service httpd restart 重新启动
service httpd stop 停止服务
sudo-1.8.19p2-14.el7_5.x86_64
表示 “superuser do”。 它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或者超级用户。然而,大部分时候我们用它来以提升的权限来运行命令。
# rpm --version
RPM version 4.11.3
范例1:安装软件 -h显示安装进度/v显示详细的处理信息/-i安装rpm包
[root@hnlinux]# rpm -hvi dejagnu-1.4.2-10.noarch.rpm
警告:dejagnu-1.4.2-10.noarch.rpm: V3 DSA 签名:NOKEY, key ID db42a60e
准备...
########################################### [100%]
基本语法: rpm -ivh RPM包全路径名称
参数说明: i=install 安装 v=verbose 提示 h=hash 进度条
范例2: 显示软件安装信息 -q 查询已安装的软件信息
[root@hnlinux]# rpm -qi dejagnu-1.4.2-10.noarch.rpm
----------------------------------------------------------------
rpm -qa:查询所安装的所有rpm软件包
rpm -qa | more :查询所安装的所有rpm软件包 并且分页显示
rpm -q 软件包名 :查询软件包是否安装 rpm -q firefox
rpm -qi 软件包名 :查询软件包信息
rpm -ql 软件包名 :查询软件包中的文件的安装位置
rpm -qf 文件全路径名:查询文件所属的软件包 ,例如:rpm -qf /etc/passwd
rpm -qa | grep X :查询是否安装有某个软件,例如:rpm -qa | grep firefox(火狐的软件)
参考资料