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

2019-12-02 11:33:30 10点赞 50收藏 2评论

本文来自#年终总结神器#征稿活动。如果你有特别的年终总结技巧、私藏了很多资源模板神器、知道几个绝活一样的函数用法的话,来投稿让值友们都来学一下你完美年终总结的内味儿吧~>活动详情戳这里<

前言

前面介绍了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

展开 收起

Synology 群晖 DS218+ 2盘位 NAS网络存储服务器

Synology 群晖 DS218+ 2盘位 NAS网络存储服务器

1803.4元起

QNAP 威联通 TS-551 五盘位网络存储器

QNAP 威联通 TS-551 五盘位网络存储器

1599元起

Synology 群晖 DS918+ 四盘位NAS网络存储服务器

Synology 群晖 DS918+ 四盘位NAS网络存储服务器

3915.43元起

海康威视(HIKVISION)H100系列 2盘位NAS网络存储 家庭私有云 私有网盘 (无盘标配)

海康威视(HIKVISION)H100系列 2盘位NAS网络存储 家庭私有云 私有网盘 (无盘标配)

689元起

铁威马(TerraMaster) Type-C公对公数据线 双头USB-C手机转接头线 支持苹果MacBook 支持铁威马磁盘阵列

铁威马(TerraMaster) Type-C公对公数据线 双头USB-C手机转接头线 支持苹果MacBook 支持铁威马磁盘阵列

54元起

noontec时尚Hi Fi头戴式耳机 手机电脑通用耳机兼容苹果ios安卓手机(颜色随机)

noontec时尚Hi Fi头戴式耳机 手机电脑通用耳机兼容苹果ios安卓手机(颜色随机)

699元起

中兴(ZTE) HC100中兴云盒家用网络存储nas服务器云存储4K高清

中兴(ZTE) HC100中兴云盒家用网络存储nas服务器云存储4K高清

1094元起

TERRAMASTER 铁威马 F4-420 四盘NAS千兆网络存储( intel 2.0GHz,4G内存)

TERRAMASTER 铁威马 F4-420 四盘NAS千兆网络存储( intel 2.0GHz,4G内存)

3799元起

铁威马(TerraMaster)F5-420 企业级Intel四核 五盘位NAS网络存储服 云存储务器 双千兆网口

铁威马(TerraMaster)F5-420 企业级Intel四核 五盘位NAS网络存储服 云存储务器 双千兆网口

4984元起

N2 恩兔 NS-1 NAS 移动硬盘 1GB DDR3内存

N2 恩兔 NS-1 NAS 移动硬盘 1GB DDR3内存

494元起

威联通(QNAP)TS-853BU-RP 4G内存 双电源企业级8盘机架式网络存储服务器NAS 含导轨(无内置硬盘)

威联通(QNAP)TS-853BU-RP 4G内存 双电源企业级8盘机架式网络存储服务器NAS 含导轨(无内置硬盘)

15390元起

威联通(QNAP)TS-853BU 4G内存 单电源企业级8盘机架式网络存储服务器NAS 含导轨(无内置硬盘)

威联通(QNAP)TS-853BU 4G内存 单电源企业级8盘机架式网络存储服务器NAS 含导轨(无内置硬盘)

14420元起

威联通(QNAP)TS-432XU-RP四核CPU内建 2个10GbE SFP+ 四盘位单双源机架式NAS网络存储(TS-431XU升级版)

威联通(QNAP)TS-432XU-RP四核CPU内建 2个10GbE SFP+ 四盘位单双源机架式NAS网络存储(TS-431XU升级版)

6530元起

铁威马 TERRA MASTER D8 Thunderbolt 3 雷电3 DAS 8盘位 磁盘阵列柜 硬盘盒 支持RAID5 DP输出 (64TB)

铁威马 TERRA MASTER D8 Thunderbolt 3 雷电3 DAS 8盘位 磁盘阵列柜 硬盘盒 支持RAID5 DP输出 (64TB)

35999元起

恩兔(N2)NS-1 智能存储家庭云盘

恩兔(N2)NS-1 智能存储家庭云盘

649元起

QNAP 威联通 TS-453Bmini 四盘位NAS网络存储(J3455、4GB内存)

QNAP 威联通 TS-453Bmini 四盘位NAS网络存储(J3455、4GB内存)

1999元起
2评论

发表评论请 登录
  • 最新
  • 最热
评论举报

请选择举报理由

相关文章推荐

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