一个欲儿的博客

一个欲儿的博客

Nextcloud部署以及搬家教程
2025-06-28

1. Docker部署方法:

1.1 github仓库

https://github.com/nextcloud/server

1.2 新建docker-compose.yml

version: '3.7'

services:
  db:
    image: mariadb:10.5
    container_name: nextcloud-db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: your_db_root_password
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: your_db_password
    volumes:
      - ./db:/var/lib/mysql

  app:
    image: nextcloud:latest
    container_name: nextcloud-app
    restart: unless-stopped
    ports:
      - "9840:80"
    links:
      - db
    environment:
      MYSQL_HOST: db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: your_db_password
    volumes:
      - ./data:/var/www/html
MYSQL_ROOT_PASSWORD是数据库root用户密码
MYSQL_DATABASE是数据库库名
MYSQL_USER是这个库下的用户名
MYSQL_PASSWORD是这个库下的密码

1.3 docker运行

docker compose up -d

版本较低的docker可以用

docker-compose up -d

2. 搬家

2.1 搬家原理

docker compose up -d 命令执行完毕以后,docker-compose.yml 所在目录会多出data和db两个文件夹,分别是app的数据存储和数据库的数据存储,那么你要是需要搬家了,只需要打包这两个文件夹和docker-compose.yml变成一个压缩包,到新的地方后解压出来这两个文件夹和docker-compose.yml文件,然后执行步骤1.3 即可

image.png

3. 疑难杂症

3.1 添加反代后资源加载不出来

首先找到该反代配置文件,然后按照如下格式修改

server {
    listen 80;
    server_name yupan.anyuer.club;

    # 最大上传大小
    client_max_body_size 10240M;

    location / {
        proxy_pass http://127.0.0.1:9840;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;

        proxy_redirect off;

        # 重要,防止路径问题
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
    }

    # 针对静态资源,缓存30天
    location ~* \.(?:css|js|woff2?|svg|gif|map)$ {
        proxy_pass http://127.0.0.1:9840;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        expires 30d;
        access_log off;
    }
}

然后找到之前给大家说的data文件夹,进入data/config 找到 config.php,检车如下内容是否符合样本

image.png

进入app容器终端,输入命令

php occ maintenance:update:htaccess

image.png


发表评论: