2022全新kkFile部署总结与常见问题记录

6,563 阅读2分钟
本文已参与「新人创作礼」活动,一起开启掘金创作之路。

写在前面

记录学习过程,帮助大家减少踩坑,如需转载,请注明出处,并在前面放置本文链接,未经允许,不得商用。

关于kkFileView

kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等

官网:kkfileview.keking.cn/zh-cn/index…

项目特点

  • 支持word excel ppt,pdf等办公文档
  • 支持txt,java,php,py,md,js,css等所有纯文本
  • 支持zip,rar,jar,tar,gzip等压缩包
  • 支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像)
  • 支持mp3,mp4,flv等多媒体文件预览
  • 使用spring boot开发,预览服务搭建部署非常简便
  • rest接口提供服务,跨平台特性(java,php,python,go,php,....)都支持,应用接入简单方便
  • 支持普通http/https文件下载url、http/https文件下载流url、ftp下载url等多种预览源
  • 提供zip,tar.gz发行包,提供一键启动脚本和丰富的配置项,方便部署使用
  • 提供Docker镜像发行包,方便在容器环境部署(二次开发的需要自己制作)
  • 抽象预览服务接口,方便二次开发,非常方便添加其他类型文件预览支持
  • 最最重要Apache协议开源,代码pull下来想干嘛就干嘛

部署要求

前提条件:Jdk需要先安装设置好,kkFileWiew是Java开发的,Jdk必需,要求JDK1.8,首次部署不建议直接容器运行.这里注意centos8暂时不能安装openoffice。

# 解压jdk 
tar -xvf jdk-8u191-linux-x64.tar.gz -C /opt/ 
cat >>/etc/profile <<EOF 
export JAVA_HOME=/opt/jdk1.8.0_191/ 
export PATH=\$JAVA_HOME/bin:\$PATH export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar 
EOF 
# 立即生效 
source /etc/profile 
# 版本查看 
[root@localhost testuser]# java -version 
java version "1.8.0_191" 
Java(TM) SE Runtime Environment (build 1.8.0_191-b12) 
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

部署方式

部署方式,可以直接下载二进制步骤,也可以通过docker直接拉取

方式一:二进制下载部署文件进行部署

码云发行版本下载最新版发行包,这里只以linux为例,一般服务器都是linux的,如果用windows也可,看官网说明进行。

注:linux下kkFileWiew需要LibreOffice的支持,因此startup.sh会判断系统是否已安装LibreOffice,如果没有安装,将自动下载安装,因此需要有互联网环境的支持,如果是内网的机器,可以考虑在一台有互联网环境下的机器上搭建一个http代理服务器,然后通过export命令设置通过代理下载,代理下载设置如下链接,联网请忽略。

tar -xvf kkFileView-4.0.0.tar.gz -C /opt/
# 2.运行startup脚本(Windows下以管理员身份运行startup.bat,Linux以root用户运行startup.sh-此脚本已包含install执行)
cd /opt/kkFileView-4.0.0/bin
./startup.sh   ---执行后报错
  Using KKFILEVIEW_BIN_FOLDER /opt/kkFileView-4.0.0/bin
  Installing OpenOffice
  Loaded plugins: fastestmirror
  Determining fastest mirrors
    ........略
    Complete!
      Loaded plugins: fastestmirror
      No such command: installlocalho. Please use /usr/bin/yum --help
      install finshed...
      Starting kkFileView...
      Please execute ./showlog.sh to check log for more information
      You can get help in our official homesite: https://kkFileView.keking.cn
  If this project is helpful to you, please star it on https://gitee.com/kekingcn/file-online-preview/stargazers

按步骤3的提示执行./showlog.sh查看启动日志,报错,需要解决office.home的问题:

1.png

4.0版本后依赖libpreoffice,继续看/opt目录下,没看到libpreoffice目录存在,说明libpreoffice未安装成功,发现没有安装的情况是要执行install.sh的

install.sh内容如下:

2.png

手动执行一次安装

cd /tmp/LibreOffice_7.1.4.2_Linux_x86-64_rpm/RPMS
yum localinstall *.rpm -y
执行成功后再重启.startup.sh,发现能正常启动了。
[root@localhost RPMS]# cd /opt/kkFileView-4.0.0/bin/
[root@localhost bin]# ./startup.sh

浏览器访问本机8012端口,如:http://192.168.45.57:8012

3.png

方式二:docker部署

docker pull keking/kkfileview:v4.0.0 ##官网拉取
docker pull 192.168.56.1:6000/keking/kkfileview:v4.0.0 ##通过私库拉取(有的话)

##运行(第一次)
docker run -itd -p 8012:8012 192.168.56.1:6000/keking/kkfileview:v4.0.0 ##有私库的情况下。
或
docker run -itd -p 8012:8012 keking/kkfileview:v4.0.0

##查看
docker ps -a
docker exec -it 1be9d7d654dc /bin/bash

##停止与启动,
docker stop 容器id
docker start 容器id

部分配置说明

更详细的配置参见官网的配置说明kkfileview.keking.cn/zh-cn/docs/…

application中,默认的访问路径为/onlinePreview,通过server.context-path进行修改

4.png

预览乱码字体问题

大部分Linux系统上并没有预装中文字体或字体不全,需要把常用字体拷贝到Linux服务器上,具体操作如下:

下载如下字体包kkfileview.keking.cn/fonts.zip文件… /usr/share/fonts目录。然后依次执行mkfontscale 、mkfontdir 、fc-cache使字体生效,可能需要重启kkFileView程序

unzip -o -d /usr/share/fonts/ fonts.zip
## 解压多了一层,需要移动一下到上一层的fonts下面,然后再删除zhFonts文件夹
mv /usr/share/fonts/zhFonts/* /usr/share/fonts/
cd /usr/share/fonts/
mkfontscale 
mkfontdir
fc-cache
## 如果报mkfontscale命令不存在执行
yum install mkfontscale -y

到此,部署配置结束。

后期做配置优化发表新笔记,请关注我,长期学习交流。