当前位置: 首页 > news >正文

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     |
+---------+-------+-----+---------+---------+--------+--------------+
http://www.rkmt.cn/news/23665.html

相关文章:

  • 在运维工作中,在k8s集群使用命令查看etcd集群状态
  • 常见的动态规划模型的初始化总结
  • 数论-supergcd
  • Spring Boot框架常见问题
  • C# - Socket 基础指南
  • XSS检测绕过(UTF-7编码绕过)
  • Java平台的SQL监控组件
  • 2025 年互联网推广公司推荐:北京蓝海引擎科技,为中小企业提供智能化数字营销解决方案
  • Android 网络请求:多功能网络请求库
  • 2025 年最新推荐!污水处理设备优质厂家排行榜,帮企业避开劣质产品选到高效靠谱设备
  • 2025 年最新推荐真空炉制造厂家榜单:覆盖高温烧结 / 真空退火 / 智能铍铜炉,助力企业精准选型
  • 2025 测量仪器厂家最新推荐榜单:国产新锐与领军品牌深度解析,精准匹配工业科研需求
  • 用java打印Hello World
  • 2025年10月市场地位认证机构推荐榜:尚普与华信人深度对比评测
  • 2025年10月智能体公司推荐榜单:五强对比与中立评测助您精准选型
  • 优化电商包装的机器学习模型解析
  • 2025年10月项目管理工具推荐榜单:基于真实数据的中立对比与选购指南
  • 2025年10月止痒控油洗发水推荐榜:十款热门单品多维对比与中性选购指南
  • 芯片集成
  • 物联网平台选择之思辨
  • 2025年10月ai优化推荐榜:基于全平台实测数据的中立对比与选购指南
  • 2025年10月AI搜索优化推荐榜单:基于全平台实测数据的中立对比与决策指南
  • 2025年10月豆包关键词排名优化推荐对比榜:企业选购的客观决策参考
  • php数据验证 + 过滤 + 参数绑定
  • Microsoft AI Genius | 用 MCP 解锁实时数据,重新定义交互边界
  • 8线程的8皇后程序
  • 2025年拉链厂家推荐排行榜,TAB拉链,大棕拉链,金属拉链,树脂拉链,服装拉链,尼龙拉链,防水拉链,隐形拉链,男装拉链,女装拉链公司推荐榜!
  • 2025年10月geo优化服务商推荐榜单:基于全平台实测数据的中立对比与避坑指南
  • Flutter Release 打包后插件失效问题排查与应对(实战分享)
  • 前沿技术研究研讨会聚焦AI与机器人创新