本文作者:zhujue

群晖Docker打造私有云nextcloud+onlyoffice

zhujue 2022-07-28 21:52:25 66 抢沙发
群晖Docker打造私有云nextcloud+onlyoffice摘要: 群晖NAS打造私有云nextcloud+onlyoffice本站小云云温馨提示:下文中有红色字体,为小云云修改不中或删除。此篇文章作者很用心。很厉害。强烈建议从头看到尾啊。南方牧羊...

群晖Docker打造私有云nextcloud+onlyoffice

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第1张

本站小云云温馨提示:下文中有红色字体,为小云云修改不中或删除。此篇文章作者很用心。很厉害。强烈建议从头看到尾啊。


南方牧羊人

2020.05.16 11:44:15字数 2,831阅读 13,068

参考文章来自这篇文章,https://post.smzdm.com/p/735879/
但实际安装过程中发现不少不一致和没写清楚的地方,进行补充。当前时间是2020-5-15,使用的nextcloud版本是18.04,先说下这个版本在哪看,找这个找了半天,在概览里面。

 群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第2张

image.png

以下为正文:

一、nextcloud私有云的docker安装
首先,在群晖docker应用的注册表里面,搜索并下载wonderfall/nextclouddocker镜像,如下图所示:

 群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第3张

 

image.png

 

和参考文不同,直接下载的第一个星最多的。
下载好nextclouddocker镜像以后,我们在映像标签页中选择启动这个镜像,并在弹出的对话框中选择高级设置。这里我们对端口设置里面的内容进行设置。
卷设置,这个和参考文不一样,参考文里是app2,估计这和他下载的镜像有关。我查到的配置参数是这样的

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第4张


群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第5张

 群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第6张

image.png


因此我的卷配置为,注意这里给外部的文件夹读写权限。

 群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第7张

image.png

端口设置

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第8张 

image.png

 

成功后访问对应的18082端口

 


 

image.png


首次访问,要设置一个管理员账号和密码,同时需要配置数据库,默认的话是sqllaite,这里还有mysql和mariaDB,postageSql可以选择。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第9张 

image.png

 

因为我的群晖中已经有MariaDB10 数据库,所以打算就用这个。

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第10张 

image.png


然后安装一个phpmyadmin来登陆这个数据库。数据的密码年代久远,已经忘了,试下和nas的密码,居然进来了,或者点击MariaDb也可以修改密码。这里还能查到端口号,后面有用。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第11张 

image.png


使用phpmyadmin新建一个数据库,名称nextcloud

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第12张 

image.png


回到nextcloud页面填入新建的参数

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第13张 

image.png


注意还需要填数据库的端口号。然后这里又有坑,

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第14张 

image.png

 

软件是安装在docker里的,数据再nas里也就是宿主机内,这个网络不通。搜索这个问题的解决方法,网上一堆登陆到ssh里修个的办法,太麻烦,直接在phpadmini输入这句接可以了。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '你的密码' WITH GRANT OPTION


群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第15张 

image.png

 

备注:下图和红字是小云云提醒摘抄,供参考

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第16张

在这个配置界面,输入你的用户名,密码。然后在配置数据库中,选中中间的MySQL/MariaDB,输入之前记住的用户名、密码之类的信息。注意:远程连接时,在最下方的蓝色框内的192.168.50.118:3307,需要把IP地址改为DDNS地址,比如:http://XXXX.asuscomm.com:3307。


然后耐心等待系统把套件下载安装完成。

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第17张

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第17张

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第19张 

image.png

 

安装完成后将地址映射到外网,通过外网访问,出现以下错误。

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第20张 

image.png


按提示是说要配置config/php文件,看了以下映射的文件夹内,是有这个文件存在。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第21张 

image.png


打开配置文件里内容

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第22张 

image.png

 

加一条自己的域名

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第23张 

image.png


然后系统奔溃了,到处是坑。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第24张 

image.png


这恶心的问题在于,当外部修改后的文件放入时读写权限发生了变化,nas里查看新config.php文件的权限。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第25张 

image.png


在看一下其他配置的权限

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第26张 

image.png


所以要给改的文件重新读写权限设置。然后通过外网就可以访问了

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第27张 

image.png

----分割-- 以下安装插件
比较适合安装的插件是


比较适合安装的插件是

  • draw.io

  • mind

  • mail

  • onlyoffice
    先去nextcloud的cloud的商店下载下来,记住版本是的选择,我这是18.
    https://apps.nextcloud.com/ 这个网站下载,速度有点慢。

  • 群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第28张


下载完后放到刚才映射的app的文件夹里

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第29张


如果映射没问题,那么在nextcloud的应用里就多处这四个插件。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第30张


启用这4个插件。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第31张


成功后在新建文件这就会有多两按钮,设置保存就可以了。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第32张


---onlyoffice
安装部分网上很多,(小云云:可以参考这篇文章后半部分:群晖Docker安装nextcloud私有云,以及onlyoffice、流程图和思维导图插件就不描述,也是按docker安装的,已经能看到服务了。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第33张


在nextcloud的设置里,会多一个onlyoffice的设置按钮

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第34张


这里又遇到问题,在内网的话可以正确连接到服务器,把服务器地址放外网一直提示连接失败。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第35张

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第36张

加了上面那个也没用,在这git上有答案
https://github.com/ONLYOFFICE/onlyoffice-owncloud/issues/181

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第37张

按红色 的临时方案解决,进入到onlyoffice的镜像里改这个值。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第38张


找到了,但是设备上没有vi,没法改。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第39张


曲线救国先把文件复制到映射文件夹,拿到外部改完了再放回去。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第40张


外部修改。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第41张

以上的所有操作证明都无效,这个问题网络上有很多的提问,但是一直没找到答案,经过2天的分析,终于明白了失败的具体原因,和我当前的组网有关系,下面先画一个目前组网的示意图。另外需要知道这两设备有两个过程要做:1.nextcloud连接onlyoffice 2.onlyoffice到nextcloud拉取文件


第一种情况:配置onlyoffice地址为192.168.x.x

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第42张 

image.png

 

服务地址配置192.168.x.x,能正常连接也能正常访问,数据不通过外部网络,不过这时候只能局域网自己玩玩,如果从外网的某一主机连入,会出现加载服务器错误,因为这时候配置的是192.168.x.x,此时外部发起的请求,onlyoffice还是会去连接192.168.x.x地址。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第43张


第二种情况:配置onlyoffice地址外部映射地址115.xxx.xx.xx

在这个情形会出现另一种情况,在局域网内我们通过192.168.xx.xx的地址去访问nextcloudonlyoffice的服务都是可以正常的,但是在内网通过115.xxx.xx.xx地址访问,直接会找不到服务器。这里涉及到另一个问题,就是在局域网内通过自身公网访问自己,路由器在收到这类地址的时候好像是为了安全,丢弃这类数据的,这就导致了如果给nextcloud配置onlyoffice外网地址路由器这关都过不去。配置的时候会提示连接失败,网上很少改host的方法,对路由要求太高,容易弄乱网络。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第44张


配置外网地址,在外网访问会出现文件拉取错误。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第45张


这问题在当前网络环境下难以解决,只想到了两个办法

1.在另一台云主机安装配置onlyoffice

方案一很简单,网络示意如下图

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第46张 

image.png

 

这个情形下很好理解,不过在配置的时候有一个地方需要注意,在外网时没问题,但如果通过内外访问,会出现无法拉取文件的问题,查看onlyoffice的文件错误提示(文件在docker 镜像内部/root/onlyoffice/logs/documentserver/converter/out.log)

[2020-05-15T19:56:40.301] [ERROR] nodeJS - error downloadFile:url=http://192.168.1.110:18082/apps/onlyoffice/empty?doc=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhY3Rpb24iOiJlbXB0eSJ9.IFkknNDAekyomrhunK1KvdH29qv89XNNYE1vfIxvkQk;attempt=1;code:ETIMEDOUT;connect:true;(id=conv_check_1570064549_docx)

也就是说在onlyoffice是根据访问过来的地址去生成文件的下载url,如果在外部访问生成的就是外部访问的url,针对这个问题nextcloud的有一个高级配置,可以解决。

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第47张 

image.png

 

Server address for internal requests from the Document Editing Service这个值相当于是告诉onlyoffice实际的访问地址是哪个,这样能保证内网外网都可以访问使用。

2.通过sockt 端口转发来实现

这个方式实际是绕过了内网不能访问自身公网地址web的问题,在尝试连接onlyoffice时走到外网,然后转到内网的onlyofficeonlyoffice通过内部网络拉取文件。(这里使用了rinetd,安装简单)

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第48张 

image.png

 

这个配置上有一点区别,现在的nextcloudonlyoffice在同个内网,因此在配置Server address for internal requests from the Document Editing Service时填的是内网地址192.168.x.x,文件通过内网拉取,连接走外网。

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第49张 

image.png

总结:两个方法都可以,问题解决了,成本增加了,本人目前使用方法2

补充:经过研究,有了第三种解决方案

通过在NAS内建立dns服务器,来做域名欺骗,是内网机器在使用外网域名访问时候直接翻译成内网地址,网络逻辑如下

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第50张 

image.png

 

具体的做法:
1.现在nas里安装dns server,如果是其他系统可以使用类似的软件,我用的是群晖所以直接安装了。

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第51张 

image.png


2.配置dns server,增加一条master区域的域名,因为用的是ddns.net的域名,加这么一条。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第52张 

image.png

 

3.配置一个A类解析,将我真正使用的域名解析为nas的地址,这样如果在内网使用域名访问就会解析为192.168.1.110

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第53张 

image.png


4.启动解析服务,不需要解析的还是都送网关解析

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第54张 

image.png


5.为nextcloud和onlyoffice配置dns域名,指向192.168.1.110.
第一次修改的时候通过登录到docker里面修改/ect/ resolv.conf 里的地址来做,每次一重启就丢失,然后网上说的其他固定resolv的方法在docker镜像里指令都没有。后来经过研究发现docker里的这个值是直接映射宿主机的,所以直接在宿主机上加了一条dns规则。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第55张 

image.png


重启后docke就能按110的地址先进行域名解析。
6.重新配置参数,按如下配置就可以。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第56张 

image.png










接上文,解决了网络部署的问题,就需要解决下字体的问题,这个好像是个通病,我现在安装的onlyoffice5.5版本,确认过我们常用的宋体是没有的。

步骤一:

先把电脑中的字体拷贝出来,在windows/Fonts里。

 

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第57张 

image.png

步骤二:

因为是安装在nasdocker里,所以步骤比一般的linux安装麻烦一点,需要先把文件放到nas里,然后通过docker cp指令拷贝到docker里。所以,先把文件拷贝到nas的一个共享文件夹里,这里借用了共享的video文件夹,然后通过ssh指令登录到nas里。

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第58张 

image.png


如图,字体拷贝到nas里,输入命令docker cp /volume1/video/download/ziti/ 808322bcaa6d:/usr/share/fonts/
docker cp /volume1/video/download/Fonts/ 808322bcaa6d:/usr/share/fonts/truetype/custom

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第59张 

image.png


输入命令docker exec -it 808322bcaa6d /bin/bash 到docker里检查一下,然后再镜像内,进入/usr/bin目录 输入

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第60张 

image.png


但是这样操作后会有一个问题,原来的字体和新加入的字体都在,默认情况下中文宋体还是选择Calibri字体来加载,所以还是需要将核心库的字体也删除,重复上面的工作,核心字体在这里
/var/www/onlyoffice/documentserver/core-fonts全部删除 rm -rf *

群晖Docker打造私有云nextcloud+onlyoffice 群晖 Nextcloud 第61张 

image.png

 


文章版权及转载声明

作者:zhujue本文地址:http://183.162.193.250:5900/post/66.html发布于 2022-07-28 21:52:25
文章转载或复制请以超链接形式并注明出处天云博客

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,66人围观)参与讨论

还没有评论,来说两句吧...