尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

nextcloud安装部署与升级

nextcloud安装部署与升级
📅 发布时间:2026/6/20 0:31:42
nextcloud安装部署与升级记一次nextcloud安装部署与升级的详细步骤。

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     |
+---------+-------+-----+---------+---------+--------+--------------+

相关新闻

  • 在运维工作中,在k8s集群使用命令查看etcd集群状态
  • 常见的动态规划模型的初始化总结
  • 数论-supergcd

最新新闻

  • 使用acme.sh获取免费泛域名SSL证书:从DNS验证到自动化部署
  • 2026年6月最新天梭中国官方售后热线服务电话客户地址网点 - 天梭服务中心
  • 2026上海黄金变现去哪靠谱?本地5家正规回收渠道深度拆解,第1家真的全能无短板 - 速递信息
  • 基于ACME协议的SSL证书自动化管理:从原理到实践
  • DeepSeek-V4架构解析:DSA稀疏注意力与MoE路由实战
  • 开源推理模型本地部署实战指南

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号