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

上面的提示,我缺少 fontconfig libXext libXrender xorg-x11-fonts,于是我按照缺少的一直用 yum安装
下面是我安装的一些插件:
#  yum install libXrender*
#  yum install libfontconfig*
#  yum install libXext*
#  yum install xorg-x11-fonts*
然后才能安装成功:

# 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 这个即为版本号,后面的为小版本号


linux 下 apache启动、停止、重启命令
基本的操作方法:
本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况
apahce启动命令:
推荐/usr/local/apache2/bin/apachectl start apaceh启动
apache停止命令
/usr/local/apache2/bin/apachectl stop   停止
apache重新启动命令:
/usr/local/apache2/bin/apachectl restart 重启
要在重启 Apache 服务器时不中断当前的连接,则应运行:
/usr/local/sbin/apachectl graceful

---------------------------------------------------------

如果apache安装成为linux的服务的话,可以用以下命令操作:
service httpd start 启动
service httpd restart 重新启动
service httpd stop 停止服务


.msi 、.deb、.rpm、.pkg 更类似于.zip文件,都可以理解为压缩包,只不过对应系统平台不一样。
.msi文件由Windows安装程序使用
.deb文件适用于从Debian(Ubuntu,Linux Mint等)派生的Linux发行版。
.rpm文件主要由来自基于Redhat的发行版(Fedora,CentOS,RHEL)以及openSuSE发行版的发行版使用。
.pkg文件适用于苹果系统



检测是否安装了sudo:
[root@Launchang Software]# rpm -q sudo

sudo-1.8.19p2-14.el7_5.x86_64

表示 “superuser do”。 它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或者超级用户。然而,大部分时候我们用它来以提升的权限来运行命令。



RPM 是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。


# 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(火狐的软件)



参考资料

wkhtmltopd 下载安装以及php环境下的使用




Last update: 2021-07-22|Pageview:164
Research Blog: EC | EC_INFO | EC_WORK |


BypResearch