Nextcloud可以通过插件实现与Onlyoffice的无缝集成,后者是一个开源的在线查看、编辑office文档的工具。Onlyoffice的官方网址是:
https://www.onlyoffice.com
. 要实现二者的无缝集成,首先需要安装配置Onlyoffice Document Server,然后为Nextcloud安装对应的插件并完成配置。
本文所安装的onlyoffice的版本为5.5.1;nextcloud的版本号为18.0.3
一、使用Docker快速安装部署Onlyofiice Document Server
1. 安装配置Docker环境
有关Docker环境的配置,可以参考菜鸟教程相关教程的相关页面(
https://www.runoob.com/docker/ubuntu-docker-install.html
)这里不在赘述。
2. 下载Onlyoffice/DocumentServer镜像
$ docker pull onlyoffice/documentserver
命令执行后可以看到具体的下载进度,由于镜像文件较大(约500MB,解压缩后约2GB),下载的时间可能较长,国内用户建议选择上午下载,速度较快。如果下载成功,将可以看到下载的镜像的信息:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
onlyoffice/documentserver latest d06214a03e27 2 weeks ago 2.14GB
如果提示没有权限,可以在命令前加上sudo,或者赋予当前用户运行docker命令的权限,给当前用户赋权的操作可参考第一步中的菜鸟教程的页面。
3. 运行容器
运行以下代码已创建容器并启动它:
$ docker run -itd \
--name onlyoffice \
-p 9000:443 \
-p 9080:80 \
-v $(pwd)/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v $(pwd)/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
onlyoffice/documentserver
如果容器启动成功,可以通过一下命令查看容器状态:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b10cb4ca780b onlyoffice/documentserver "/bin/sh -c /app/ds/…" 3 hours ago Up 59 minutes 0.0.0.0:9080->80/tcp, 0.0.0.0:9000->443/tcp onlyoffice
4. 配置https证书
使用自己创建的根证书为Onlyoffice document server签署证书,具体过程请参看《
使用Docker技术部署NextCloud
》一文的第六部分。需要注意的是一定要将证书的CommonName设置为网站的域名(不带https和端口号),否则在后面配置nextcloud访问onlyoffice部分的时候会报错。
为Onlyoffice document server开启https的过程很简单,只需要在$(pwd)/onlyoffice/DocumentServer/data下创建certs目录,并将私钥和证书文件放置其中即可,笔者的$(pwd)/onlyoffice/DocumentServer/data/certs目录内容如下:
$ ls -l $(pwd)/onlyoffice/DocumentServer/data/certs
total 8
-rwxr-xr-x 1 lxd syslog 1558 Apr 21 06:55 onlyoffice.crt
-rwxr-xr-x 1 lxd syslog 1679 Apr 21 06:55 onlyoffice.key
5. 关闭客户端证书认证
默认情况下,onlyoffice会对客户端的证书进行认证,由于我们使用的是自签署证书,所以认证肯定无法通过,因此我们选择关闭相应的认证,具体的关闭方法是修改容器中/etc/onlyoffice/documentserver/default.json文件,为此,我们需要首先将文件拷贝出容器,做出相应的修改后在拷贝回去。从容器中拷贝配置文件到当前目录的命令为:
$ docker cp onlyoffice:/etc/onlyoffice/documentserver/default.json .
拷贝出文件以后,使用任何文本编辑器,查找“rejectUnauthorized”设置项,并将其值更改为“false”。笔者更改后该设置项的上下文文本片段如下:
"requestDefaults": {
"headers": {
"User-Agent": "Node.js/6.13"
},
"rejectUnauthorized": false
},
将文件拷贝回容器的命令如下:
$ docker cp default.json nextcloud:/etc/onlyoffice/documentserver/default.json
6. 重启容器一使配置生效
$ docker restart onlyoffice
至此,Onlyoffice 的 Document server配置完成,可以通过浏览器访问 https://<your-domain>:9000/看到 “Document Server is running”的页面了