今天小伙伴要通过java后端生成echart图片,让我在测试服务器上给安装一下phantomjs,具体使用这里我没接触,就先记录下centos7安装运行phantomjs的过程。
1、下载phantomjs压缩包:
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
我这里系统是centos7 64位,所以下载该版本,需要32位的去官网自己复制地址咯:https://phantomjs.org/download
2、因为下载的压缩包是bz2包,需要bzip2来解压,所以要安装bzip2:
yum install bzip2
3、解压下载的压缩包:
tar -jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
这里我也很好奇,是用tar来解压的,但参数里多加了一个 j,如果不安装bzip2 是会报错的,安装bzip2 正常解压。
4、重命名(或移动)文件夹:
mv phantomjs-2.1.1-linux-x86_64 /usr/local/phantomjs2.1.1
重命名文件夹完全是为了好看,但我这里保留了版本号,方便直观看版本,不过话说这个版本好多年都不更新了。。。
5、建立软连接:
ln -sf /usr/local/phantomjs2.1.1/bin/phantomjs /usr/local/bin/phantomjs
这里有的文档说的是
ln -s /usr/local/phantomjs2.1.1/bin/phantomjs /usr/bin/
具体这俩路径有什么区别,我都试了下也没看出啥来。。。。
(啥是软连接,俺也不知道~~)简单看了一眼,看到 -s 就是软连接,但是加 -f 如果目标文件不存在时会先移除再创建(危险操作,谨慎加 -f)
6、安装依赖:
yum install fontconfig freetype2
7、绑定环境变量:
打开环境配置文件: vi /etc/profile 有的系统编辑文件是 vim 哦 修改参数: 已配置过 JDK 环境变量的话,export PATH 这条后面加上 :/usr/local/phantomjs2.1.1/bin 变成 export PATH=$JAVA_HOME/bin:$PATH:/usr/local/phantomjs2.1.1/bin 没有的话就如下: export PATH=$PATH:/usr/local/phantomjs2.1.1/bin 最后别忘记执行: source /etc/profile 使改动生效
8、查看版本号,测试安装结果:
phantomjs -v
正常是可以在浏览器里访问到接口的,如果访问不到,检查是否被防火墙屏蔽了。
后来小伙伴说还要加一个 echarts-convert.js 用于配置 echarts 什么的,来源是: https://gitee.com/saintlee/echartsconvert
下载到centos7是zip压缩包,所以又需要安装zip解压工具(可以先执行下一步解压看下是否存在解压工具,存在就不必再安装此步骤):
yum install -y zip unzip
安装后执行解压到当前文件夹:
unzip master.zip
然后启动执行该文件:
phantomjs echarts-convert.js -s -p 9090
-p 9090 是定义端口号,不加默认端口就是9090 哦~~
启动成功则显示:
echarts-convert server start success. [pid]=40795
至于后面使用就是别人的事了,但看echarts-convert.js 已停更4年,而且作者文档中最底部自己指出有缺陷,评论里说饼图也有问题,,,感觉可能使用并不会理想呢。。。
后端java使用链接由小伙伴提供:
https://blog.csdn.net/weixin_38429587/article/details/89477373
https://www.cnblogs.com/lxp-java/p/13674384.html#4923585
今天准备发布测试啦,phantomjs 启用不是后台运行的,需要自己写后台启动或者搭建系统服务。
一、后台运行:
nohup phantomjs /usr/local/phantomjs2.1.1/echartsconvert-master/echarts-convert.js -s > /dev/null 2> /dev/null &
解释:
nohub:表示后台运行。
> /dev/null 2> /dev/null:表示把日志记录到哪里,其中/dev/null不存在,所以不会写入,但是如果不加这句,会报错:nohup: ignoring input and appending output to ‘nohup.out’
&:&符号表示结尾,不然也会报错:nohup: ignoring input and appending output to ‘nohup.out’
二、创建系统运行服务:
开机自动后台运行服务使用 systemctl,早有阮一峰大神文章详细介绍:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
总结关键部分:
1、在/usr/lib/systemd/system 文件夹下创建对应文件 phantomjs.service:
vi phantomjs.service
2、加入内容:
[Unit] Description=echart phantomjs [Service] ExecStart=/usr/local/phantomjs2.1.1/bin/phantomjs /usr/local/phantomjs2.1.1/echartsconvert-master/echarts-convert.js -s -p 9090 [Install] WantedBy=multi-user.target
标签解释就看上面阮一峰的文章链接吧,其中Install标签必须有且必须放在最后,否则服务状态为static无法启动,Service中如果不引入系统变量的话必须要用物理路径,否则报错。
3、启动服务:
// 设为开机运行 systemctl enable phantomjs.service // 启动服务 systemctl start phantomjs.service // 查看状态 systemctl status phantomjs.servcie
4、该步骤不用运行,当停止和取消服务时运行。
// 停止服务 systemctl stop phantomjs.service // 禁用开机启动 systemctl disable phantomjs.service