利用 Docker 搭建 Nextcloud+ONLYOFFICE

本贴最后更新于 939 天前,其中的信息可能已经物是人非

Nextcloud 是一款免费的开源软件,很适合在日常办公中作为文件共享平台来使用,我们可以利用 Docker 搭建 Nextcloud + ONLYOFFICE,实现文件共享并直接从 Web 端进行文档编写的功能。

下面简单描述一下我的安装过程,以及一些在安装过程中遇到的问题。

由于初次尝试,我利用 VMware 安装了 CentOS7 版本的 Linux 系统(网上已经有很多成熟的安装过程,这里就不再赘述)。

一、安装 docker

1、更新 yum 系统包到最新版本

yum -y update

2、执行 docker 安装脚本

curl -sSL https://get.docker.com/ | sh
yum install -y docker-selinux

3、启动 docker

 systemctl start docker.service

4、验证 docker 已经正常安装

 docker run hello-world

5、查看是否设置开机启动

 systemctl list-unit-files | grep enable

6、设置开机自启动

systemctl enable docker.service

二、安装 MySQL、Nextcloud、ONLYOFFICE

1、拉取镜像:

docker pull mysql:latest
docker pull nextcloud
docker pull onlyoffice/documentserver

根据网速等多方面原因,拉取镜像可能会很慢,需耐心等待。

2、安装 MySQL

docker run -p 3306:3306 --name mysql --restart="always" -v /usr/local/mysql/conf:/etc/mysql/
***********04d8c735c3b6133fb3af83d321bc72*************

docker ps |grep mysql

757******bbb4 mysql               "docker-entrypoint.s…"   32 seconds ago      Up 31 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp   fno_mysql

docker exec -it 757******bbb4 /bin/bash

root@75767208bbb4:/# mysql -uroot -p

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.20 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;  #授权root登录

Query OK, 0 rows affected (0.01 sec)
#修改root账号的密码验证插件类型为mysql_native_password这是mysql8之后的问题:

mysql> ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;

Query OK, 0 rows affected (0.02 sec)

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.01 sec)

mysql> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)
42 

mysql>

3、安装 Nextcloud

docker run -d \
-v /root/nextcloud/html:/var/www/html \
-v /root/nextcloud/apps:/var/www/html/custom_apps \
-v /root/nextcloud/config:/var/www/html/config \
-v /root/nextcloud/nextcloud/data:/var/www/html/data \
-v /root/nextcloud/themes:/var/www/html/themes  \
-p 8080:80   --name nextcloud --restart="always" nextcloud

安装后一定要检查防火墙是否已经关闭,如防火墙处于开启状态,Nextcloud 则无法登录 MySQL 数据库,关闭防火墙后再进行登录。

查看防火墙状态

 systemctl status firewalld

暂时关闭防火墙

 systemctl stop firewalld

永久关闭防火墙

 systemctl disable firewalld

访问 http://安装主机 ip:8080/ 页面

22825293555f35efb90411efix732.jpg

A: 创建管理员账号/密码;

B: 配置数据库

C: 点击安装完成;

因要生成 MySQL 数据文件,需等待数分钟才会安装完成。
此处如只是将 Nextcloud 作为个人云存储平台,则可用 SQLite 登录,如需多人登录建议使用 MySQL/MariaDB 登录。

4、安装 ONLYOFFICE

docker run -i -t -d -p 6060:80 --restart=always \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
-v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql  --name onlyoffice --restart="always" onlyoffice/documentserver

访问 ip:6060,打开如下页面即安装成功。

下载 ONLYOFFICE 插件并配置 Nextcloud:
因国外网址原因无法直接下载 ONLYOFFICE 插件,故将下载好的插件通过 WinSCP 安装到 root/nextcloud/apps 目录下。(如可直接下载,此步骤跳过)
(推荐插件下载地址 https://www.himstudy.net/%e6%...
进入 Nextcloud 页面,打开应用,在被禁用的应用里找到 ONLYOFFICE 并启用,进入设置里对 ONLYOFFICE 进行设置并保存,如下图:

20134863155f35efe7480c4fix732.png

三、填坑记

将 ONLYOFFICE 插件下载并通过 WinSCP 安装到 root/nextcloud/apps 目录下后,你会发现已安装的应用里仍然没有 ONLYOFFICE,故需进行以下操作:
这是 18 年以后的 Nextcloud 版本出现的 bug, 解决办法是在 config.php 配置文件中添加配置

allow_local_remote_servers' => true

四、安装过程中可能会用到的相关命令

docker ps 查看容器是否已启动
docker rm 容器名  删除容器
docker stop 容器名  停止
Ip addr  查看IP地址

docker 启动命令,docker 重启命令,docker 关闭命令

systemctl start docker 启动
sudo systemctl daemon-reload 守护进程重启
systemctl restart  docker  重启docker服务
service docker stop  关闭docker
systemctl stop docker  关闭docker

最后完成收工

在线编辑 onlyoffice 的坑
NextCloud 使用 onlyoffice,Docker 安装 OnlyOffice Server 后,使用本地服务器异常

Error when trying to connect (Host violates local access rules)
1
参照:Issue #293 · ONLYOFFICE/onlyoffice-nextcloud

18 以后的 NextCloud 版本有这个 bug, 解决办法在 config.php 配置文件添加配置

'allow_local_remote_servers' => true,
————————————————

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...