nextcloud安裝部署與升級
nextcloud 安裝部署升級
Nextcloud 是一款開源的私有云存儲與協(xié)作平臺,它不僅可以在本地或私有服務器上搭建,還能提供文件同步、共享、WebDAV、在線協(xié)作、日歷、通訊錄甚至辦公套件(如 OnlyOffice)的支持,Nextcloud 就像是一個可以完全掌握在自己手里的「私人網(wǎng)盤 + 協(xié)作中心」。企業(yè)可以用來做為自己的私有知識庫。
一、安裝部署
以下安裝以版本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: always
image: mysql:8.0.33
container_name: mysql
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=XXXXXXX
- TZ=Asia/Shanghai
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
interval: 60s
retries: 1
volumes:
- /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.9
restart: always
ports:
- 8088:80
volumes:
- /data/nextcloud:/var/www/html
environment:
- 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/documentserver
container_name: onlyoffice
environment:
- JWT_SECRET=XXXXXXX
ports:
- 8089:80
volumes:
- /data/onlyoffice:/var/www/onlyoffice/Data
- /data/onlyoffice/logs:/var/log/onlyoffice
restart: always
privileged: 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]
-
把插件解壓到nextcloud的apps目錄
![image-20250926174219693]
-
在nextcloud應用中啟用onlyoffice插件

二、版本升級
升級策略:采用逐步升級,從 Nextcloud 30.0.2 升級到 30.0.15 后,再升級到 31.0.9,以確保系統(tǒng)穩(wěn)定性。
升級步驟參考如下:
1、停止服務并檢查
docker-compose down
3、備份重要文件
# Nextcloud目錄下主要文件備份 (conf、data)
cd nextcloud && mkdir backup
cp -r conf ../backup
cp -r data ../backup
# 數(shù)據(jù)庫文件也要備份,方便回滾
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 # 已經(jīng)完成安裝
- version: 30.0.15.1 # 內(nèi)部數(shù)據(jù)庫用的構(gòu)建號
- versionstring: 30.0.15 # 正式版本號
- edition: # 空的說明是社區(qū)版(Community Edition)
- maintenance: false # 維護模式關閉,正常提供服務
- needsDbUpgrade: false # 數(shù)據(jù)庫已經(jīng)升級成功不需要再做遷移
- productname: Nextcloud # 產(chǎn)品名稱
- extendedSupport: false # 沒有訂閱擴展支持
www-data@240514b911be:~/html$ php /var/www/html/occ maintenance:repair
------------#非必須,除非你動過 data 目錄,重新掃描數(shù)據(jù)更新至數(shù)據(jù)庫---------
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、繼續(xù)升級
# 重復以上步驟將版本升級至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 |
+---------+-------+-----+---------+---------+--------+--------------+

記一次nextcloud安裝部署與升級的詳細步驟。
浙公網(wǎng)安備 33010602011771號