将ubuntu设置为NAS——8. nextcloud集成onlyoffice在线协同办公软件

2019-12-02 11:33:30 21点赞 123收藏 30评论

前言

前面介绍了docker安装nextcloud,也提到了nextcloud具有很强的扩展性,自带插件库,本篇就是介绍其中一个插件,用nextcloud集成onlyoffice在线协作办公功能。本篇介绍的场景主要是无法连接互联网的局域网环境,或是无法使用其他在线协作办公软件的情况。当然如果需要在网盘预览office文档,也可以参考。

说起来在线协同办公软件,我们常见的是石墨文档WPS云文档和微软的Microsoft team,在互联网环境,大家可以协同完成一份word文档或共同填表等等,尤其是需要不同人完成不同部分内容(比如各种日报、月报和年终总结等等),完成整篇文章的时候,这样的在线协作,拉近了距离,既可以在线直接沟通,又可以迅速调整整天文章结构和内容。但在内部局域网情况下(不能连接上述服务),公司或团体又没有考虑购买收费的商业协同办公软件(比如微软的office online),只能考虑自行搭建。。。小团体在离线局域网间使用类似的服务,可以极大提升工作效率,大大减少重复劳动。此乃离线环境下的多人协同年终总结神器。

首先为了理清整个折腾的思路:

  1. 在能联网的主机用Oracle VM VirtualBox安装虚拟机Ubuntu server18.04

  2. 在这台虚拟机上安装docker和docker-compose

  3. 通过docker-compose安装nextcloud和onlyoffice并设置

  4. Oracle VM VirtualBox导出整个系统文件

  5. 在需要配置协同的办公室的离线环境安装Oracle VM VirtualBox,导入系统文件并运行设置


本篇涉及图片较多,请注意。

1、onlyoffice简介

onlyofficeonlyoffice

什么是onlyoffice?免费开源的在线文档编辑软件,当然也有桌面版,多平台(windows系统、Linux系统、安卓和iOS)可安装使用,宣传100%与MS Office格式兼容。本篇我主要介绍免费的在线社区版,就是可以多人在线编辑的版本。原来onlyoffice对中文尤其中文字体支持都不好,今年以来,onlyoffice加大对中文的支持,增加了很多中文字体,好像它的中文网站也是今年才出现的。

2、Oracle VM VirtualBox安装Ubuntu

这里采用Oracle VM VirtualBox(简称VirtualBox),完全免费,程序占用资源相对少,可以后台运行虚拟机,方便后台隐藏服务。Ubuntu server18.04是比较稳定的Ubuntu服务器版,相对桌面版占用资源少,少了桌面程序也更稳定了。相关下载,大家自行官网下载安装。这里简单提几个可能出现的坑,主要是磁盘容量尽量设置足够大(满足云盘需求),后期不好修改。

虚拟机安装ubuntu server虚拟机安装ubuntu server

磁盘设置动态分配磁盘设置动态分配

动态调整就是根据虚拟磁盘实际用到的空间,自动调整在实际磁盘空间的占用,而不是直接占用设置的容量大小。

设置磁盘大小设置磁盘大小

建议设置大容量,这个就是nextcloud使用会用到的容量,安装系统后再调整比较麻烦,这里最好一步到位。

加载镜像加载镜像

选择完镜像后就选择启动虚拟机,开始系统安装。

建议修改镜像地址建议修改镜像地址

这里建议修改为阿里镜像源,提升安装速度

选择整块虚拟硬盘(不分区)选择整块虚拟硬盘(不分区)

选择整块硬盘

选择继续选择继续

这里不要选默认,要选择继续。

设置账号密码设置账号密码

自行设置账号密码

选择安装SSH选择安装SSH

请选择安装SSH,方便后期维护

都不选择都不选择

这里不要选择snap安装相关软件,速度慢,版本低,不建议。选择done后,自动安装,默认会检查和安装更新,可以选择安装或取消,安装完成后,选择reboot重启。

选择重启选择重启

移除镜像再回车确认移除镜像再回车确认

重启后提示移除光盘镜像,再回车确认

移除镜像移除镜像

移除后确认,稍等字符串不再变化后,回车就出现登录命令行,输入账号和密码(密码不显示)就成功进入Ubuntu命令行系统。

登录ubuntu server登录ubuntu server



3、虚拟机安装docker和docker-compose

这里不做详细介绍了,详见将ubuntu设置为NAS——5. docker与docker-compose的安装,由于之前已安装了SSH,可以通过putty远程到虚拟机里安装。不过先得设置虚拟机网络

选择桥接网络,方便SSH选择桥接网络,方便SSH

请选择设置,选择网络,再选择桥接网卡,确认后。然后回到系统命令行,输入

ifconfig

查询虚拟机网络地址,后续就通过这个IP进行远程SSH,并安装docker。

查询网络地址查询网络地址

4、nextcloud集成onlyoffice

为什么考虑用nextcloud集成呢?因为我比较熟悉nextcloud,集成onlyoffice后,可以在nextcloud中直接打开网盘中的office文档,也能共享出去,和其他朋友一起协同编辑使用,而且这样集成完全免费(限制20人以内使用)。

4.1 利用docker-compose同时安装nextcloud和onlyoffice

利用docker-compose.yml文件安装,是非常简单便捷的办法。上上篇文章《将ubuntu设置为NAS——6. 私人网盘nextcloud安装(下)(docker下安装nextcloud)》就有网友在文章提到nextcloud集成office功能需求,我也提到这种情况我们需要fpm版的nextcloud镜像,所以本篇提到的docker-compose.yml文件内容和之前的内容是有区别的。

version: '3'

services:

app:

container_name: app-server

image: nextcloud:fpm

stdin_open: true

tty: true

restart: always

expose:

- '80'

- '9000'

environment:

- UPLOAD_MAX_SIZE=5G

- APC_SHM_SIZE=128M

- OPCACHE_MEM_SIZE=128

- CRON_PERIOD=15m

- TZ=Aisa/Shanghai

- NEXTCLOUD_ADMIN_USER=自行设置管理员账号

- NEXTCLOUD_ADMIN_PASSWORD=自行设置密码

- NEXTCLOUD_TRUSTED_DOMAINS="..."

- MYSQL_DATABASE=nextcloud

- MYSQL_USER=nextcloud

- MYSQL_PASSWORD=自行设置密码

- MYSQL_HOST=nextcloud-db

networks:

- onlyoffice

volumes:

- /docker/nextcloud:/var/www/html



nextcloud-db:

image: mariadb

container_name: nextcloud-db

command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW

networks:

- onlyoffice

volumes:

- /docker/nextcloud/db:/var/lib/mysql

environment:

- MYSQL_ROOT_PASSWORD=自行设置数据库root密码

- MYSQL_PASSWORD=自行设置数据库密码

- MYSQL_DATABASE=nextcloud

- MYSQL_USER=nextcloud

restart: always



onlyoffice-document-server:

container_name: onlyoffice-document-server

image: onlyoffice/documentserver:latest

stdin_open: true

tty: true

restart: always

networks:

- onlyoffice

expose:

- '80'

- '443'

volumes:

- /docker/onlyoffice/data:/var/www/onlyoffice/Data

- /docker/onlyoffice/log:/var/log/onlyoffice



nginx:

container_name: nginx-server

image: nginx

stdin_open: true

tty: true

restart: always

ports:

- 80:80

- 443:443

networks:

- onlyoffice

volumes:

- /docker/nginx.conf:/etc/nginx/nginx.conf

- /docker/nextcloud:/var/www/html



networks:

onlyoffice:

driver: 'bridge'

我理解,onlyoffice无法与nextcloud在同一IP地址上相互集成使用,就是用nginx代理,让2种服务运行在同一主机不同网段下运行,曲线解决了这个问题。当然nginx的使用还需要nginx.conf设置文件。这里参照onlyoffice在github的ONLYOFFICE/docker-onlyoffice-nextcloud。我使用的免费社区版。

提醒一下:设置中的端口80,443,请注意主机没有相关程序运行在上面,不然就需要修改。需要修改nginx设置中的80:80改为8080:80,443:443改为442:443,同时nginx.conf文件中的listen 80改为listen 8080。虚拟机完全纯净安装,一般也不会冲突,就按原文件来吧。docker-compose.yml请注意里面中文进行修改,改为自己需要的账号密码。

将上述代码内容保存为docker-compose.yml,再从下载github的ONLYOFFICE/docker-onlyoffice-nextcloud中的nginx.conf文件到Ubuntu虚拟机(可以用winscp),在Ubuntu根目录建立docker文件,将nginx.conf放在这个目录,

sudo mkdir /docker //建立文件夹
sudo cp /home/yang/nginx.conf /docker //如果直接传权限问题无法传,请传到有权限的目录再复制

然后按之前介绍的docker-compose up -d命令运行在我的ubuntu小主机上,就开始安装了。onlyoffice镜像比较大,下载速度也不快。

docker-compose up -d命令运行docker-compose up -d命令运行


之前也介绍了,这个应用最终要转移到无互联网环境使用,所以得先在有网络的虚拟机上下载需要的docker镜像,后面再导出导入虚拟电脑即可。

可能出现的错误

端口被占用端口被占用

nginx.conf没配置好nginx.conf没配置好

第一张图:docker-compose.yml文件中nginx端口可能出现被占用的问题,原来我设置80和443,应该是被我主机上运行其他服务占用了。所以我修改了里面的配置,80改成8080,443改成442,还需要修改nginx.conf文件中80的部分改为8080。

第二张图是,主要是nginx.conf还没配置好,没有下载配置文件到我们创建的docker文件夹。

上述2个问题在纯净安装虚拟机里应该不会出现,但你若在自己的服务器小主机上。尤其运行有其他服务的情况下,很有可能出现。

4.2 打开nextcloud设置

输入虚拟机所在网址(ifconfig查询),之前是192.168.2.131,在运行docker-compose up -d 之后3分钟,在主机浏览器输入虚拟机IP,可以看到已经进入nextcloud登录界面了。登陆后(在docker-compose.yml中设置的账号密码),开始可以选择插件了。正常在应用里可以看到各种各样的插件,但由于众所周知的原因,有时差件加载不出来,可以采用别的方式。

app商场加载不出来app商场加载不出来

我们可以登录nextcloud的app商场,搜索onlyoffice下载,选择下载17版onlyoffice.tar.gz。

在线app商场下载onlyoffice插件在线app商场下载onlyoffice插件

可以先winscp传到/home/yang (我自己的用户)目录,再解压后,移动到/docker/nextcloud/apps目录,并修改文件权限为www-data。

tar -zxvf onlyoffice.tar.gz
sudo cp /home/yang/onlyoffice /docker/nextcloud/apps -Rf
sudo chown -Rwww-data /docker/nextcloud/apps/onlyoffice

这个时候再刷新nextcloud的应用界面,在您的应用,找到onlyoffice插件,选择启用,并输入管理员密码确认。

启用插件启用插件

出现设置选项出现设置选项

接着就是设置插件,关联正在运行在docker的onlyoffice服务。在修改config.php设置

sudo nano /docker/nextcloud/config/config.php


将'nginx-server'设置为信任域名。注意逗号,尤其括号后的逗号。

设置nextcloud的config.php设置nextcloud的config.php

然后在nextcloud的onlyoffice设置界面,如图设置onlyoffice参数,保存后,如图提示表明成功连接,并能设置支持office文件类型。

设置onlyoffice插件设置onlyoffice插件

保存后提示成功保存后提示成功

成功后出现更多选项成功后出现更多选项

也可以参照docker-onlyoffice-nextcloud里面的set_configuration.sh如下,保存为名为set_configuration.sh,winscp传到虚拟机里。

#!/bin/bash

set -x

docker exec -uwww-data app-server php occ --no-warnings config:system:get trusted_domains >> trusted_domain.tmp

if ! grep -q "nginx-server" trusted_domain.tmp; then
TRUSTED_INDEX=$(cat trusted_domain.tmp | wc -l);
docker exec -uwww-data app-server php occ --no-warnings config:system:set trusted_domains $TRUSTED_INDEX --value="nginx-server"
fi

rm trusted_domain.tmp

docker exec -uwww-data app-server php occ --no-warnings app:install onlyoffice

docker exec -uwww-data app-server php occ --no-warnings config:system:set onlyoffice DocumentServerUrl --value="/ds-vpath/"
docker exec -uwww-data app-server php occ --no-warnings config:system:set onlyoffice DocumentServerInternalUrl --value="http://onlyoffice-document-server/"
docker exec -uwww-data app-server php occ --no-warnings config:system:set onlyoffice StorageUrl --value="http://nginx-server/"

运行如下命令,这样不需要复杂的设置,但可能登录时提示不信任的域名,还得像上面的修改nextcloud的config.php信任域名的才能登录。再回到设置onlyoffice界面,保存即可成功。

bash set_configuration.sh

5、尝试在nextcloud打开word文件

首先找个word文件,上传到nextcloud,然后再打开,建议先尝试docx文件。

尝试在线编辑word文件尝试在线编辑word文件

成功在线打开,并可以在线编辑。

6、转移虚拟系统到局域网环境

先从现有的虚拟机里导出系统。先关闭虚拟系统。

正常关机正常关机

然后导出

导出虚拟机导出虚拟机

选中需要导出的电脑名称选中需要导出的电脑名称

可以按默认可以按默认

最终导出最终导出

然后再局域网里安装虚拟机Virtual box,然后U盘拷贝导出的文件到局域网,虚拟机选择导入之前的虚拟电脑文件。可能由于网络不同,需要重新设置网络。

Virtual box虚拟机启动系统,选择无界面启动,就能实现后台运行服务的效果,非常清爽。

总结

本文主要针对在离线局域网环境下,如何建立协同处理office文档的服务,属于小众需求,主要介绍如何加载nextcloud的app商店插件,当然不同插件,可能涉及的使用和设置不同,但安装加载却大同小异。

前面啰嗦了点,介绍了Ubuntu server的虚拟机安装方法,熟悉的值友请略过。

参考

Github:ONLYOFFICE/docker-onlyoffice-nextcloud

展开 收起

HIKVISION 海康威视 MAGE20 PRO 双盘位 NAS存储

HIKVISION 海康威视 MAGE20 PRO 双盘位 NAS存储

868元起

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

3599元起

极空间私有云Z4Pro 性能版 8核16G内存 四盘位Nas网络存储服务器家庭个人云【配4T希捷酷狼硬盘】珍珠白

极空间私有云Z4Pro 性能版 8核16G内存 四盘位Nas网络存储服务器家庭个人云【配4T希捷酷狼硬盘】珍珠白

4399元起

TERRAMASTER 铁威马 F4-424 四盘位 NAS存储(Intel Celeron N95、8GB)黑色

TERRAMASTER 铁威马 F4-424 四盘位 NAS存储(Intel Celeron N95、8GB)黑色

2499元起

HUAWEI 华为 新品华为家庭存储nas家用网络存储主机扩容储存备份文件同步共享

HUAWEI 华为 新品华为家庭存储nas家用网络存储主机扩容储存备份文件同步共享

1999元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1796元起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2599元起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1849元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3599元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5999元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1999元起

海康威视 MAGE10个人私有云盘网络存储nas家庭共享资料备份服务器

海康威视 MAGE10个人私有云盘网络存储nas家庭共享资料备份服务器

1551元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

1349元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2899元起
30评论

  • 精彩
  • 最新
  • 好东西咋没人评论? [想一想]

    校验提示文案

    提交
    可能需求比较小众吧

    校验提示文案

    提交
    收起所有回复
  • 没成功,可否借一部说话,wx或者qq

    校验提示文案

    提交
    可以,你可以先回复一下,具体问题在哪里

    校验提示文案

    提交
    docker-compose. yml 配置文件格式不对,能否传一个成品文件。集成nextcloud 和onlyoffice,准备用于内网。按照教程不成功,反复提示. yml文件错误。

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 我部署成功了,但是大部分的office文档都不能在线保存也不能编辑,不知道为什么,你能帮帮我吗 [黑线]

    校验提示文案

    提交
    大部分?那小部分可以吗?2者有区别吗?都可以在线打开吗?

    校验提示文案

    提交
    都能在线打开,我是在网上搜的教程,docker装的onlyoffice,nextcloud是直接装的。有一小部分能编辑,然后自动保存,也不能手动保存,我没找到规律 [大囧]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • @杨某人 对这方案感兴趣,但具体功能了解,能否把最导出的虚拟机分享一下呢?

    校验提示文案

    提交
    有空我传到网盘,分享一下

    校验提示文案

    提交
    楼主秋秋發可好?22陆33起88是发

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 你好,有一个重要问题就是远程访问网盘,你是使用的反向代理转发80端口吗?可以具体讲一下吗

    校验提示文案

    提交
    运营商一般不开放80端口,远程访问可以路由设置端口转发

    校验提示文案

    提交
    收起所有回复
  • nextcloud后台可以直接安装onlyoffice,安装两个东西,一个是社区版onlyoffice服务器,一个是客户端插件。不需要用docker安装onlyoffice服务器

    校验提示文案

    提交
    我看到nextcloud应用商店里就一个onlyoffice插件,没有看到服务,还需要在自行安装服务,于是就自己安转了,

    校验提示文案

    提交
    不是的,有两个和onlyoffice有关的插件,全部安装就可以了。不过这种方式安装的onlyoffice服务器是社区版本,在手机网页上只能查看不能编辑word文件,在电脑上网页上可以编辑。

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 部署成功。谢谢分享。就是yaml文件格式被张大妈吃掉了,我自己改了下。

    校验提示文案

    提交
    可以分享一下你的docker-compose.yml文件吗?

    校验提示文案

    提交
    收起所有回复
  • 非常好,我也在关注onlyoffice,教程写的非常好,就是确实受众太小了一些,不是作者的错

    校验提示文案

    提交
  • 关于远程访问80端口被封

    校验提示文案

    提交
  • 杨兄弟,我看你教程,分享的镜像是80端口的 ,如何修改访问为8080端口,也就是访问ip:8080,这样,如何修改,在哪里修改?谢谢。

    校验提示文案

    提交
  • 大哥,docker-compose. yml 这个文件可以共享一下吗?复制你的老是出错,谢谢!

    校验提示文案

    提交
  • 楼主再发个教程说下怎么安装elasticsearch全文搜索吧,毕竟用nextcloud做为办公工具的话,搜索word里面的文字还是十分有必要的。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
123
扫一下,分享更方便,购买更轻松