介绍一下这两个在一起有什么作用:
- nextcloud: 类似百度网盘之类的工具,能让你存放各种文件。当然因为云服务器存储有限,存文档还是相当不错的,存视频和照片什么的,容易不够用。
- onlyoffice: 一个在线文档编辑服务工具。可以让你在云盘里编辑自己的office文档,word,ppt和excel都可以进行的。
方案一:主机nextcloud 23.0 + docker onlyoffice 6.4.2
为什么选择这个方案:
划重点,怕麻烦。之前先安装的nextcloud,因为用的数据库是mysql,而onlyoffice用的数据库是pg,为此还在网上检索了一下nextcloud改pg的一些教程,后来觉得太过麻烦,就放弃。不想在一台机器上部署两套数据库。虽然有评论说nextcloud用上pg性能要甩mysql几条街。但目前的我用不着,于是就采用的docker的方案部署。
docker参考的教程如下:
使用Docker部署ONLYOFFICE Document Server
上面这个博主里面还有其他3篇讲onlyoffice的文章,感兴趣的小伙伴可以找找他的其他文章。
坑在哪里:onlyoffice域名有外网解析可以访问,想做内网解析比较麻烦。
docker里的onlyoffice与主机之间的通信,即使改了主机host,做了映射,依然解决不了通信报错的问题。
有时候,你可以在nextcloud里面将插件配置成功,但是在nextcloud目录下执行检查,依然会报错。
sudo -u www-data php occ onlyoffice:documentserver --check
另一个体现就是在新建文档的时候,会弹出
ONLYOFFICE服务器无法连接,请联系管理员。
卡住的地方:总是会报
Error [ERR_TLS_CERT_ALTNAME_INVALID]: Hostname/IP does not match certificate's altnames:
上述报错参考解决方案:
Node.js Hostname/IP doesn’t match certificate’s altnames
方案二:主机nextcloud + 主机onlyoffice +主机pg
选用这种方案,可以节省内存约400M,因为在docker里面也要运行一套程序,占用的内存相对多一些。
参考的教程,主要是官网的两篇,一篇是安装onlyoffice,一篇是进行https通信:
https://helpcenter.onlyoffice.com/installation/docs-community-install-centos.aspx
https://helpcenter.onlyoffice.com/installation/docs-community-install-centos.aspx
按照教程进行,当然如果你有证书,可以不用自签发的证书,直接使用也可以的。
安装成功后,在nextcloud目录下,执行命中即可。我这里是以www-data这个用户来执行的。
root@VM-12-3-centos nextcloud]# sudo -u www-data php occ onlyoffice:documentserver --check
Document server https://xxxx.work version 6.4.2.6 is successfully connected
技术总结:
在网上看到的基本都是要么docker与nextcloud都是docker容器部署的,要么都在主机上部署,大部分是onlyoffice服务器与nextcloud不在同一台机器上,而我们这种情况比较特殊,需要在同一台机器上。
还没有搞懂为什么把onlyoffice部署在docker与主机进行通信的时候,会出现证书校验错误,大概是因为nextcloud的外网域名有证书,内网没有申请证书,请求全在nginx那边转发了。
总而言之,把onlyoffice放在主机上,问题解决。有时候,能做对比瞎捣鼓更有用。先了解正确的东西是什么,才能更好地探究错误所在。
后续
关掉onlyoffice主机的dns解析之后,再打开报错了,虽然执行occ命令仍然是成功。这意味着请求还是到外网走了一圈。
看来我还没有做到内网解析。
参考文章: