二.Linux下安裝wkhtmltopdf 解決N個安裝中的問題

 

項目中使用到了wkhtmltopdf ,一開始在windows上跑 好好的 沒有任何問題,結果一部署到linux 上 出現了一堆問題,特此記錄 碰到的一些坑 .其中用到的一些包,都需要自行下載

  1. 官網 https://wkhtmltopdf.org/

下載wkhtmltopdf  當前使用版本爲0.12.5

https://github-production-release-asset-2e65be.s3.amazonaws.com/271714/3f90e5d2-6e42-11e8-9f4a-7d8d6460a726?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190920%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190920T084521Z&X-Amz-Expires=300&X-Amz-Signature=f6003063f0a92d4bce71f9d2d81df5c6fda573569032ec60bfc24d085ee50f91&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dwkhtmltox-0.12.5-1.centos7.x86_64.rpm&response-content-type=application%2Foctet-stream

 

  1. 安裝到linux opt目錄下  其中許多操作都需要root權限

 

 

  1. 解壓:rpm -ivh --prefix=/opt  wkhtmltox-0.12.5-1.centos7.x86_64.rpm  需要root 權限

error: Failed dependencies:

     xorg-x11-fonts-75dpi is needed by wkhtmltox-1:0.12.2-1.x86_64

# 提示需要安裝75dpi  

輸入 yum search 75dpi

 

 

輸入 yum install xorg-x11-fonts-75dpi.noarch

 

 

 

  1. 查看 /opt/usr/local/bin 目錄下是否有 wkhtmltopdf文件 ,有即安裝成功 注意,後面又安裝過兩次,是被安裝在了/opt/bin 目錄下 需要自己去看具體在哪個目錄

測試 是否安裝成功

測試 輸入  注意需要在wkhtmltopdf所在文件夾下輸入 如果輸入 1 不行 再輸入2 

wkhtmltopdf https://www.baidu.com baidu.pdf

 

./wkhtmltopdf –page-size A4 www.baidu.com pdf.pdf

輸入後

發現報錯,缺少 libpng15.so.15

wkhtmltopdf: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory

將 libpng15-1.5.30-alt1.tar 放到/usr/lib下

解壓 tar xvf libpng15-1.5.30-alt1.tar

解壓到當前路徑中,

cd libpng15-1.5.30-alt1

進入文件

依次輸入

./configure

make

make install

安裝完畢後 會顯示這個

 

 

 

安裝後會自動把編譯時需要的libpng15.pc文件保存在/usr/local/lib/pkgconfig目錄下了

 

 

安裝後會自動把編譯時需要的libpng15.pc文件保存在/usr/local/lib/pkgconfig目錄下了

 

 

直接運行:

pkg-config libpng15  --libs –cflags 會報錯:顯然是沒有找到.pc文件

需要配置PKG_CONFIG_PATH環境變量:

exportPKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

 

 

沒配之前 報 libpng15.pc  -cflags.pc 找不到

再次輸入 報 -cflags.pc 找不到

 

輸入指令

pkgconfig 查看是否有安裝

 

如果出現 -bash: pkgconfig: command not found

說明沒安裝 pkgconfig

 

 

安裝 -cflags.pc 需要先安裝 fuse

安裝依賴

fuse-3.0.2.tar.gz 到/usr/lib

解壓 tar xvf fuse-3.0.2.tar.gz

進入 fuse-3.0.2

按部就班地首先“./configure”,然後“make”,接着“make install”,最後“modprobe fuse”加載內核模塊fuse.ko

 

查看fuse是否掛載成功: lsmod|grep fuse

 

若沒成功則可通過:“modprobe fuse”命令掛載fuse。

 

掛載成功就fuse就 OK了

 

安裝pkg-config

 

將pkg-config-0.29.2.tar.gz 放到 /usr/lib

解壓 tar xvf pkg-config-0.28.tar.gz

 

輸入指令

cd pkg-config-0.29.2

 

./configure --with-internal-glib

 

 

 

make & install make

 

 

至此, pkg-config 安裝完成。

 

導入 指令

export PKG_CONFIG_PATH=/usr/lib/pkgconfig/:/usr/local/lib/pkgconfig/

指令

ldconfig

 

可能再次輸入 還會出現 

如果出現 -bash: pkgconfig: command not found

之類的 提示

解決方案:
# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig

 

至此,libpng15 就能找到了 再次運行wkhtmltopdf

./wkhtmltopdf –page-size A4 www.baidu.com pdf.pdf

報 OPENSSL_1.0.2‘ not found 

原因分析:

報這樣的錯誤,就是因爲openssl的版本問題導致的。因此需要更新openssl。查看當前的版本號:

[root@slave-4~]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
[root@slave-4 ~]#
[root@slave-4 ~]# rpm -qa openssl
openssl-1.0.1e-60.el7.x86_64
[root@slave-4 ~]#

可以參考這篇文章 http://www.mamicode.com/info-detail-2342742.html

我這邊用的是第二種方法 ,當時找不到這個1.0.2後來從同事騰訊的服務器上找到了這個 挪了過來

具體的操作是 把1.0.2 放到 /usr/lib64 裏 軟連接 讓libcrypt.so.10 指向 1.0.2k

 

再次運行wkhtmltopdf 終於成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章