1、官网下载
phantomjs-2.1.1-linux-x86_64.tar.bz2
解压出来的是一个二进制包,可直接运行
2、解决依赖的库
glibc版本问题
直接运行报 /lib64/tls/libc.so.6: version `GLIBC_2.10' not found (required by ./phantomjs) 这个错误
这个表示是libc的版本不满足要求,查看本地的版本是2.3.4(libc-2.3.4.so)
然后直接用jumbo安装glibc
$ patchelf --set-rpath /home/users/usename/.jumbo/opt/glibc ./phantomjs
ldd 错误
紧接着再运行的话,会报一下错误
error while loading shared libraries: /home/users/changchunbo/.jumbo/opt/glibc/libm.so.6: ELF file OS ABI invalid
这个错误表示是 ldd 版本与glibc版本不一致所致,所以还需要将 phantomjs 的ldd改变下,现在又需要patchelf帮忙了,真乃神器啊
patchelf --set-interpreter /home/users/changchunbo/.jumbo/opt/glibc/ld-linux-x86-64.so.2 ./phantomjs
FT_GlyphSlot_Embolden 错误
这个错误是libfreetype.so.6这个库的版本太低,我这里是6.3.7(/usr/lib64/libfreetype.so.6 -> libfreetype.so.6.3.7)
然后升级libfreetype, 然后使用了jumbo 安装了freetype2 2.6.3-1
3、Unable to load the address报错
使用phantomjs无法访问https类网站,会报Unable to load the address!错误。这类问题的处理,需要添加两个选项--ssl-protocol=any --ignore-ssl-errors=true 。如下:
phantomjs --ssl-protocol=any --ignore-ssl-errors=true ~/data/pageshot.js https://baike.baidu.com ~/data/baike.png
4、发现中文网站网页快展乱码
中文网站网页快展乱码的问题,是由于字体库里没有安装中文字体。可以在 http://font.chinaz.com/zhongwenziti.html 这个网址里下载 .ttf 格式的字体。在/usr/share/fonts目录下新建一个自定义的文件夹存放下载好的字体,然后使用
fc-cache -vf
刷新系统字体缓存即可。