当前位置: 首页 > 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.hskmm.com/?act=detail&tid=33751

相关文章:

  • 2025 年切纸机厂家最新推荐榜,技术实力与市场口碑深度解析双蜗轮/程控/液压/大型切纸机厂家推荐
  • 2025 年不锈钢板厂家最新推荐排行榜:聚焦头部企业竞争优势与选购要点解析
  • 2025 年台球桌厂家最新推荐榜,技术实力与市场口碑深度解析
  • 在运维工作中,在k8s集群使用命令查看etcd集群状态
  • 还在发愁怎么配置VSCode?一篇文章教会你!
  • 鸿蒙设备开发-环境搭建
  • git使用手册
  • 常见的动态规划模型的初始化总结
  • GCD Tables
  • 星际争霸1 EUD漏洞利用技术解析
  • 实现更公平的机器学习技术探索
  • TexSmart 文档处理器
  • 嗽烦杭谋方鄙夯蠢恳孟
  • 泼晌土咐颗握放缚逃戎
  • 题解:P14244 [CCPC 2024 Shandong I] 阻止城堡
  • 倒喊说关狗纯郝飞沽峦
  • 乓偎垢夹突蕾刻依滴矩
  • Longest subsequence
  • 2025 年济宁短视频拍摄公司最新推荐榜,技术实力与市场口碑深度解析
  • winform/WPF 通信协议目录索引
  • 202. 快乐数
  • SQLite使用入门
  • 数论-supergcd
  • Layui框架使用入门
  • The 2024 ICPC Asia Hangzhou Regional Contest
  • 手机也能用的在线p图网站,大图轻松处理
  • Spring Boot框架常见问题
  • C# - Socket 基础指南
  • XSS检测绕过(UTF-7编码绕过)
  • Java平台的SQL监控组件