nextcloud安装部署与升级

news/2025/10/18 15:41:41/文章来源:https://www.cnblogs.com/nanxi-xz/p/19149803

nextcloud 安装部署升级

Nextcloud 是一款开源的私有云存储与协作平台,它不仅可以在本地或私有服务器上搭建,还能提供文件同步、共享、WebDAV、在线协作、日历、通讯录甚至办公套件(如 OnlyOffice)的支持,Nextcloud 就像是一个可以完全掌握在自己手里的「私人网盘 + 协作中心」。企业可以用来做为自己的私有知识库。

一、安装部署

以下安装以版本30.0.2为主,部署方式docker-compose

1、下载镜像

docker pull nextcloud:30.0.2
docker pull onlyoffice/documentserver
docker pull mysql:8.0.33

2、部署文件准备(参考)

# mysql docker-compose.yaml
--------------------
[root@localhost yaml]# cat mysql/docker-compose.yaml 
version: "3.8"
services:mysql:restart: alwaysimage: mysql:8.0.33container_name: mysqlports:- 3306:3306environment:- MYSQL_ROOT_PASSWORD=XXXXXXX- TZ=Asia/Shanghaihealthcheck:test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]interval: 60sretries: 1volumes:- /data/mysql/data:/var/lib/mysql- /data/mysql/my.cnf:/etc/my.cnf    # nextcloud docker-compose.yaml
--------------------
[root@localhost yaml]# cat nextcloud/docker-compose.yaml 
version: '2'
services:app:container_name: "nextcloud"image: docker.io/library/nextcloud:31.0.9restart: alwaysports:- 8088:80volumes:- /data/nextcloud:/var/www/htmlenvironment:- MYSQL_PASSWORD=XXXXXXX- MYSQL_DATABASE=nextcloud- MYSQL_USER=root- MYSQL_HOST=XXXXXXX# onlyoffice docker-compose.yaml
--------------------
[root@localhost yaml]# cat onlyoffice/docker-compose.yaml 
version: '3'
services:only-office:image: onlyoffice/documentservercontainer_name: onlyofficeenvironment:- JWT_SECRET=XXXXXXXports:- 8089:80volumes:- /data/onlyoffice:/var/www/onlyoffice/Data- /data/onlyoffice/logs:/var/log/onlyofficerestart: alwaysprivileged: true
# my.cnf 参考
-------------------
[root@localhost mysql]# cat my.cnf 
[client]
socket=/var/run/mysql.sock
default-character-set=utf8[mysqld]
bind-address = 0.0.0.0
port=3306
character_set_server=utf8
server-id=10
secure_file_priv=/var/lib/data
datadir=/var/lib/data/mysql
socket=/var/lib/data/mysql/mysql.sock
log_error=/var/lib/data/mysql/mysql-error.log
slow_query_log=1
long_query_time=3
slow_query_log_file=/var/lib/data/mysql/mysql-slow.log
log_bin=/var/lib/data/mysql/mysql-bin
log_bin_index=/var/lib/data/mysql/mysql-bin.index
max_binlog_size=4096M
#max_binlog_files=0
expire_logs_days=1
max_connections=1000
innodb_buffer_pool_size=2G
max_connect_errors = 2000
default-storage-engine = InnoDB
wait_timeout = 600
gtid_mode=on
enforce_gtid_consistency=on
log_slave_updates=1
binlog_format=row
#skip-grant-tables
skip_slave_start=1
default-time-zone = '+08:00'
lower_case_table_names = 1

2、启动容器

# 依次启动容器(docker-compose命令不同版本有所差异),确保服务均正常运行
docker-compose up -d

3、初始化安装

# 访问 web页面,选择mysql即可进行初始化安装

4、配置onlyoffice插件

  • 确保onlyoffice服务正常,上面服务映射的宿主机端口是8089,可以浏览器访问

  • 去官方下载适配nextcloud版本的onlyoffice插件https://apps.nextcloud.com/apps/onlyoffice
    ![image-20250926175331392]image

  • 把插件解压到nextcloud的apps目录
    ![image-20250926174219693]image

  • 在nextcloud应用中启用onlyoffice插件
    image

二、版本升级

升级策略:采用逐步升级,从 Nextcloud 30.0.2 升级到 30.0.15 后,再升级到 31.0.9,以确保系统稳定性。

升级步骤参考如下

1、停止服务并检查

docker-compose down

3、备份重要文件

# Nextcloud目录下主要文件备份 (conf、data)
cd nextcloud && mkdir backup
cp -r conf ../backup
cp -r data ../backup# 数据库文件也要备份,方便回滚

4、删除其余文件

shopt -s extglob
ls -d !("config"|"data")
rm -rf !("config"|"data")
shopt -u extglob

5、下载官方镜像

# 下载官方镜像30.0.15,修改docker-compose文件中镜像为30.0.15
docker pull nextcloud:30.0.15
--------------------------------
[root@localhost nextcloud]# grep  image docker-compose.yaml image: docker.io/library/nextcloud:30.0.15

6、启动容器

[root@localhost nextcloud]# docker-compose up -d
[+] Running 2/2⠿ Network nextcloud_default  Created                                           ⠿ Container nextcloud        Started    

7、进行升级

[root@localhost nextcloud]# docker ps 
[root@localhost nextcloud]# docker exec -u www-data -it nextcloud bash
www-data@240514b911be:~/html$ php /var/www/html/occ upgrade
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Setting log level to debug
Turned on maintenance mode
Updating database schema
Updated database
Disabled incompatible app: onlyoffice
Updating <theming> ...
Updated <theming> to 2.6.0
Updating <app_api> ...
Updated <app_api> to 4.0.6
Starting code integrity check...
Finished code integrity check
Update successful
Turned off maintenance mode
Resetting log level
www-data@240514b911be:~/html$ php /var/www/html/occ status- installed: true                 # 已经完成安装- version: 30.0.15.1              # 内部数据库用的构建号- versionstring: 30.0.15          # 正式版本号- edition:                        # 空的说明是社区版(Community Edition)- maintenance: false              # 维护模式关闭,正常提供服务- needsDbUpgrade: false           # 数据库已经升级成功不需要再做迁移- productname: Nextcloud          # 产品名称- extendedSupport: false          # 没有订阅扩展支持
www-data@240514b911be:~/html$ php /var/www/html/occ maintenance:repair------------#非必须,除非你动过 data 目录,重新扫描数据更新至数据库---------
www-data@240514b911be:~/html$ php /var/www/html/occ files:scan --all
Starting scan for user 1 out of 1 (admin)
+---------+-------+-----+---------+---------+--------+--------------+
| Folders | Files | New | Updated | Removed | Errors | Elapsed time |
+---------+-------+-----+---------+---------+--------+--------------+
| 7       | 54    | 0   | 0       | 0       | 0      | 00:00:01     |
+---------+-------+-----+---------+---------+--------+--------------+

8、继续升级

# 重复以上步骤将版本升级至31.0.9
[root@localhost nextcloud]# docker ps | grep nextcloud
240514b911be        nextcloud:30.0.15           "/entrypoint.sh apac…"   27 minutes ago      Up 27 minutes                0.0.0.0:8088->80/tcp                nextcloud
[root@localhost nextcloud]# docker-compose down
[+] Running 2/2⠿ Container nextcloud        Removed                                           ⠿ Network nextcloud_default  Removed  ------------------------[root@localhost nextcloud]# docker ps | grep nextcloud
[root@localhost nextcloud]# vi docker-compose.yaml 
[root@localhost nextcloud]# grep image docker-compose.yaml image: docker.io/library/nextcloud:31.0.9------------------------[root@localhost data]# cd nextcloud
[root@localhost nextcloud]# ls
3rdparty  composer.json  console.php  cron.php     dist        lib                       occ           package.json       remote.php  robots.txt  version.php
apps      composer.lock  COPYING      custom_apps  index.html  LICENSES                  ocs           package-lock.json  resources   status.php
AUTHORS   config         core         data         index.php   nextcloud-init-sync.lock  ocs-provider  public.php         REUSE.toml  themes
[root@localhost nextcloud]# shopt -s extglob
[root@localhost nextcloud]# ls -d !("config"|"data")
3rdparty  composer.json  COPYING   custom_apps  index.php  nextcloud-init-sync.lock  ocs-provider       public.php  REUSE.toml  themes
apps      composer.lock  core      dist         lib        occ                       package.json       remote.php  robots.txt  version.php
AUTHORS   console.php    cron.php  index.html   LICENSES   ocs                       package-lock.json  resources   status.php
[root@localhost nextcloud]# rm -rf !("config"|"data")
[root@localhost nextcloud]# ls
config  data
[root@localhost nextcloud]# shopt -u extglob------------------------[root@localhost nextcloud]# docker-compose  up -d
[+] Running 2/2⠿ Network nextcloud_default  Created                                           ⠿ Container nextcloud        Started                                           
[root@localhost nextcloud]# docker ps | grep nextcloud
1cd3e2fdaf98        nextcloud:31.0.9            "/entrypoint.sh apac…"   11 seconds ago      Up 10 seconds                0.0.0.0:8088->80/tcp                nextcloud------------------------
[root@localhost nextcloud]# docker exec -u www-data -it nextcloud bash
www-data@c1525f36aa55:~/html$ php /var/www/html/occ upgrade
No upgrade required.Note: This command triggers the upgrade actions associated with a new version. The new version's updated source files must be deployed in advance.
See the upgrade documentation: https://docs.nextcloud.com/server/31/go.php?to=admin-update for more information.
www-data@c1525f36aa55:~/html$ php /var/www/html/occ status- installed: true- version: 31.0.9.1- versionstring: 31.0.9- edition: - maintenance: false- needsDbUpgrade: false- productname: Nextcloud- extendedSupport: false
www-data@c1525f36aa55:~/html$ php /var/www/html/occ maintenance:repair
www-data@c1525f36aa55:~/html$ php /var/www/html/occ files:scan --all
Starting scan for user 1 out of 1 (admin)
+---------+-------+-----+---------+---------+--------+--------------+
| Folders | Files | New | Updated | Removed | Errors | Elapsed time |
+---------+-------+-----+---------+---------+--------+--------------+
| 7       | 54    | 0   | 0       | 0       | 0      | 00:00:01     |
+---------+-------+-----+---------+---------+--------+--------------+

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/939640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年切纸机厂家最新推荐榜,技术实力与市场口碑深度解析双蜗轮/程控/液压/大型切纸机厂家推荐

引言在印刷、包装等行业高速发展的当下,切纸机作为核心生产设备,其性能直接决定生产效率与产品品质。当前国内切纸机市场规模已达 26.03 亿元,企业数量近 50 家,但市场格局呈现 “新旧并存、优劣混杂” 的特点。部…

2025 年不锈钢板厂家最新推荐排行榜:聚焦头部企业竞争优势与选购要点解析

在当前不锈钢市场中,厂商数量繁杂且实力差距显著,采购者常面临产品质量不稳定、技术难以满足高端需求、交货延迟、服务不完善等问题,尤其在新能源、高端制造、海洋工程等领域,对不锈钢材料的要求更为严苛,选择可靠…

14 抽象类的介绍

14 抽象类的介绍抽象类 定义 用abstract修饰的类 public abstract class Milo{//约束public abstract void help();#让别人帮忙实现#只有方法名,没有方法实现#里面也可以有正常类拥有的普通方法#但抽象方法必须在抽象类…

2025 年台球桌厂家最新推荐榜,技术实力与市场口碑深度解析

引言随着台球运动在国内的普及,台球桌市场呈现爆发式增长,大小品牌鱼龙混杂,给消费者与采购方带来严峻的选择难题。部分品牌为压缩成本,采用劣质石板、低质台呢及未处理框架,导致台面易变形、击球轨迹偏移、设备寿…

详细介绍:ET2B08-0F65-EBD7多路电子切换开关芯片SOP-8单按键开关控制芯片

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

在运维工作中,在k8s集群使用命令查看etcd集群状态

在 Kubernetes (k8s) 集群中,etcd 是集群的核心键值存储,用于保存所有集群数据(如 Pod、Node、Service 状态等)。要检查 etcd 集群的健康状态,通常需要直接访问运行 etcd 的控制平面节点,因为 etcd 一般不对外暴…

还在发愁怎么配置VSCode?一篇文章教会你!

适合 OIer 的 VSCode 配置方法注:或许该文章更加适合算法竞赛选手,本文章推荐的配置方法比较偏向于算法竞赛选手风格。并且,Win7 及以下的用户请跳过,因为这不适用于 Win7 及以下版本。 由于算法竞赛常用语言为 c+…

鸿蒙设备开发-环境搭建

正在施工 说明 从gitee上直接搜索harmony即可,里面有快速入门的资料。 doc仓库里面。搭建的话,肯定是全量的标准系统。一个是IDE入门,一个是命令行入门,肯定是命令行入门了。 环境搭建 我用的服务器是 40核80线程 …

git使用手册

一、git常用命令 1、初始化配置 初始化本地仓库:git init 克隆远程仓库到本地:git clone <仓库URL> 设置全局用户名:git config --global user.name "your name" 设置全局邮箱:git config --globa…

常见的动态规划模型的初始化总结

一直都搞不太明白动态规划的初始化,所以开个博客总结一下。背包模型 设 \(f_{i, j}\) 为:以前 \(i\) 个物品,———— 求方案数 二维体积至多为 \(j\):\(f_{0,i}=1,0 \le i \le m\),其余为 \(0\)。 体积恰好为 \(…

GCD Tables

https://www.luogu.com.cn/problem/CF582A 这道题的核心做法是从大到小来算; 因为gcd(a,b)<=min(a,b),所以最大的数一定是序列中的数,现在看第二大的数:也必须是序列中的,第三大的:如果我们把两个 gcd(x,k) 都…

星际争霸1 EUD漏洞利用技术解析

本文详细分析了星际争霸1中Extended Unit Death(EUD)漏洞的技术原理,展示了如何利用该漏洞实现远程代码执行,包括内存布局分析、ROP链构建和shellcode注入等完整攻击链。利用星际争霸1 EUD漏洞 星际争霸(1998年发布…

实现更公平的机器学习技术探索

本文探讨了通过经验风险最小化理论实现更公平机器学习模型的三种技术方法,包括预处理、后处理和过程中处理,分析了在回归任务和深度学习中的应用,并提出了基于Wasserstein重心和分布距离度量的公平性改进方案。迈向…

TexSmart 文档处理器

TexSmart 文档处理器,自用工具@media only screen { #comment_form.commentform, #cnblogs_post_body::after, #footer, .postDesc, .esa-toolbar, .esa-contents, #blog_post_info_block, #blog-comments-place…

连续函数

连续函数1.基本定义 定义:设 \(f(x)\) 在 \(x_0\) 的某个领域内有定义,且 \(\lim_{x\to x_0} f(x) = f(x_0)\),则称 \(f(x)\) 在 \(x_0\) 连续。与极限类似,同样存在单侧连续。 \(C(a, b) = \{f(x) | f(x) 在 (a,b…

题解:P14244 [CCPC 2024 Shandong I] 阻止城堡

更差的阅读体验注意到,增加一个障碍物至少可以减少一对互相攻击的车,最多减少两对互相攻击的车。 考虑两对车什么时候可以同时消除,当且仅当两对车的连线有交。所以可以转换成一个二分图匹配的模型,具体地,每个左…

倒喊说关狗纯郝飞沽峦

刂酒又追吮殖寄房淘端bbs.lyaz12vry.cn/productseries_33982744.Shtmlread.lyaz12vry.cn/productseries_62070018.Shtmlread.lymy44zni.cn/productseries_41842394.Shtml5g.lyaz12vry.cn/productseries_57105295.Shtml…

乓偎垢夹突蕾刻依滴矩

牙褂徽赐尾颊缎堑缎使bbs.lyaz12vry.cn/productseries_61546410.Shtmlread.lyaz12vry.cn/productseries_58247159.Shtmlread.lymy44zni.cn/productseries_25957195.Shtml5g.lyaz12vry.cn/productseries_25731920.Shtml…

Longest subsequence

https://www.luogu.com.cn/problem/CF632D 我们用lcm(a,b)>=max(a,b)来排除掉所有>m的a[i],然后我们像埃氏筛那样枚举每个a[i]的倍数,选取最多的那个

2025 年济宁短视频拍摄公司最新推荐榜,技术实力与市场口碑深度解析

在数字营销全面渗透的当下,短视频已成为企业构建品牌认知、实现流量转化的核心载体。然而济宁地区短视频拍摄市场却呈现两极分化:多数小型团队受限于技术设备与创意能力,作品同质化严重且转化效果微弱;部分服务商缺…