2

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/conf.d -v /usr/local/mysql/logs:/logs -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d 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/ 页面

image

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

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

image

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

image

三、填坑记

将 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

五、相关参考网址

https://www.cnblogs.com/coope...


blueljy
11 声望2 粉丝