当前位置:   article > 正文

docker部署nextcloud+onlyoffice详细教程【外置MySQL】_nextcloud docker

nextcloud docker

一、部署环境

系统版本:CentOS Linux release 7.9.2009 (Core)

配置:16C 16G

MySQL:5.7.20

二、部署过程

1、安装docker和docker-compose

请百度

2、创建数据库和用户,并授权

因为我使用外置MySQL,所以需要先创建数据库和授权

create database nextcloud;

grant all on nextcloud.* to nextcloud@'%' identified by '123456';

注意:因为用的是docker安装,所以授权最好授权%。

3、安装nextcloud

  1. [root@云盘 nextcloud]# mkdir /data/nextcloud/nextcloud
  2. [root@云盘 nextcloud]# cd /data/nextcloud
  3. [root@云盘 nextcloud]# cat docker-compose.yml
  4. version: '2'
  5. services:
  6. app:
  7. container_name: "nextcloud"
  8. image: nextcloud:27.0.1 # 安装的版本号,这个是我装的时候最新版的版号
  9. restart: always
  10. ports:
  11. - 8080:80 # 映射到服务器端口
  12. volumes:
  13. - /data/nextcloud/nextcloud:/var/www/html # 将代码挂载出来,方便以后修改
  14. environment: # 我使用的是外置数据库,所以要配置下面账密,nextcloud提示要MySQL8.0 以上版本的,我用的是MySQL5.7.20 不过使用好像没啥问题
  15. - MYSQL_PASSWORD=123456
  16. - MYSQL_DATABASE=nextcloud
  17. - MYSQL_USER=nextcloud
  18. - MYSQL_HOST=192.168.2.204
  19. [root@云盘 nextcloud]# docker-compose up -d # 执行之后会拉取镜像,并运行容器。
  20. [root@云盘 nextcloud]# docker ps
  21. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  22. c3930bc2768d nextcloud:27.0.1 "/entrypoint.sh apac…" 14 hours ago Up 55 minutes 0.0.0.0:8080->80/tcp, :::8080->80/tcp nextcloud

使用浏览器打开nextcloud,http://192.168.204:8080

设置管理员账号,程序会自动创建库表。但是如果报错的话会提示你选择哪些数据库。

可能报错的原因:

docker容器连不上MySQL数据库,上面配置的MySQL数据库没有授权。

如果都没问题,等几分钟就可以配置好了。

4、安装onlyoffice

把docker-compose.yml改成下面内容

  1. [root@云盘 nextcloud]# cat docker-compose.yml
  2. version: '3'
  3. services:
  4. only-office:
  5. image: onlyoffice/documentserver
  6. container_name: onlyoffice
  7. ports:
  8. - 8081:80
  9. volumes:
  10. - /data/nextcloud/onlyoffice:/var/www/onlyoffice/Data
  11. - /data/nextcloud/onlyoffice/logs:/var/log/onlyoffice
  12. restart: always
  13. privileged: true
  14. [root@云盘 nextcloud]# docker-compose up -d
  15. [root@云盘 nextcloud]# docker ps
  16. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  17. 44be2cd04717 onlyoffice/documentserver "/app/ds/run-documen…" 14 hours ago Up 14 hours 443/tcp, 0.0.0.0:8081->80/tcp, :::8081->80/tcp onlyoffice
  18. c3930bc2768d nextcloud:27.0.1 "/entrypoint.sh apac…" 14 hours ago Up 55 minutes 0.0.0.0:8080->80/tcp, :::8080->80/tcp nextcloud

使用浏览器打开:http://192.168.2.204:8081 没问题即可。

5、nextcloud接入onlyoffice

【应用】

Ctrl+F搜索onlyoffice,下载并启用

新版本需要输入管理员密码:

管理应用:

服务器执行生成密钥的命令:否则会报系统内部错误

[root@云盘 nextcloud]# docker exec 你onlyoffice容器ID /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'

rCxhmpEAL05VqWyfbqyUh5p9j53RT4EM # 会输出一个密钥

添加成功之后我新增了下面哪些文件后缀,再往下拉点击保存即可。

接入成功之后多了下面选项:

6、接入onlyoffice可能会遇到的报错:

1)报错1:打开应用转了很久之后,打开之后发现找不到 onlyoffice应用,无法下载和启动。

点击【个人设置】--【日志】看到日志报错:

Could not connect to appstore: cURL error 28: Operation timed out after 60000 milliseconds with 3035136 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://apps.nextcloud.com/api/v1/apps.json

解决方法:

应用要请求海外的的接口。要降超时时间调长一点。

修改文件:/data/nextcloud/nextcloud/lib/private/Installer.php timeout那行代码

上面是将容器代码挂在出来服务器的路径,每个人的都不一样!但是lib/private/Installer.php 是一样的。

修改之后重启容器。

如果改了超时时间之后还是一样刷不出来,日志还是报超时的错。可以清理浏览器缓存,先用浏览器打开这个应用接口URL(https://apps.nextcloud.com/api/v1/apps.json)。

再重新登录打开应用。

$tempFile = $this->tempManager->getTemporaryFile('.tar.gz');

$timeout = $this->isCLI ? 0 : 360; # 默认是120,改成360,如果不行再继续调大,甚至要连VPN才可以获取到onlyoffice应用。

$client = $this->clientService->newClient();

接口请求异常,页面是这样的:无法加载出来其他的应用

正常应该是这样的:

2)报错2:nextcloud添加onlyoffice 报错连接是发生异常 (文档服务内部发生异常: Invalid token)

解决:

打开onlyoffice server首页,复制执行这个命令,容器ID改成你的onlyoffice容器ID。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/153552
推荐阅读
相关标签
  

闽ICP备14008679号