• 阿里云服务器(Ubuntu)配置nextcloud个人网盘



    tags: Ubuntu Server Linux

    写在前面

    最近迷恋上了云服务器的配置, 感觉云服务器能做的事情太多了, 不管是docker还是直接部署, 都是相当方便快捷的, 下面来看看在阿里云服务器配置nextcloud网盘的基本配置方法, 这里参考了一篇文章1, 写的相当详细了, 我这里只是做一些补充.

    配置前的准备

    服务器端

    开端口

    阿里云防火墙开启:10000, 然后在服务器终端:

    addtcp 10000
    reufw
    
    • 1
    • 2

    快捷命令alias设置可以看我的leanote那篇博客.

    docker-compose安装

    基于Python:(容易)

    sudo pip3 install docker-compose -i https://pypi.mirrors.ustc.edu.cn/simple/
    
    • 1

    效果:

    docker-compose version
    docker-compose version 1.29.2, build unknown
    docker-py version: <module 'docker.version' from '/usr/local/lib/python3.8/dist-packages/docker/version.py'>
    CPython version: 3.8.2
    OpenSSL version: OpenSSL 1.1.1f  31 Mar 2020
    
    • 1
    • 2
    • 3
    • 4
    • 5

    基于命令行(可能需要代理)2, 这个是v2, 通过go重新编写.

    ARCH=$(uname -m) && [[ "${ARCH}" == "armv7l" ]] && ARCH="armv7"
    sudo mkdir -p /usr/local/lib/docker/cli-plugins
    sudo curl -SL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-${ARCH}" -o /usr/local/lib/docker/cli-plugins/docker-compose
    sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
    
    • 1
    • 2
    • 3
    • 4

    效果:

    $ docker compose version
    Docker Compose version v2.11.2
    
    • 1
    • 2

    新建一些目录

    cd /home/xxx
    mkdir docker-compose
    mkdir -p /opt/nextcloud
    
    • 1
    • 2
    • 3

    拉取一些docker镜像:

    会比较慢, 耐心等待, 换源的效果也不明显

    docker pull redis
    docker pull mariadb:10.5
    docker pull nextcloud
    
    • 1
    • 2
    • 3

    客户端

    play商店搜索nextcloud, 安装. 我上传了一份nextcloud.apk-Android文档类资源-CSDN文库.

    Mac:

    brew install nextcloud
    
    • 1

    配置

    服务器端

    cd /home/xxx/docker-compose
    vi docker-compose.yaml
    
    • 1
    • 2

    写入下面的内容:

    version: '2'
    
    services:
      app:
        container_name: nextcloud_app
        image: nextcloud
        restart: always
        ports:
          - 10000:80
        environment:
          - DATABASE_URL=mysql+pymysql://nextcloud:nextcloud@db/nextcloud
    #      - MYSQL_PASSWORD=lyes
    #      - MYSQL_DATABASE=nextcloud
    #      - MYSQL_USER=nextcloud
    #      - MYSQL_HOST=db
          - REDIS_URL=redis://redis:6379
        volumes:
          - /opt/nextcloud/www:/var/www/html
        depends_on:
          - db
          - redis
        networks:
            default:
            internal:
    
      db:
        container_name: nextcloud_db
        image: mariadb:10.5
        restart: always
        environment:
          - MYSQL_ROOT_PASSWORD=nextcloud
          - MYSQL_USER=nextcloud
          - MYSQL_PASSWORD=nextcloud
          - MYSQL_DATABASE=nextcloud
        volumes:
          - /opt/nextcloud/db:/var/lib/mysql
        networks:
            internal:
        command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    
      redis:
        container_name: nextcloud_redis
        image: redis
        volumes:
          - /opt/nextcloud/redis/data:/data
          - /opt/nextcloud/redis/redis.conf:/etc/redis/redis.conf
        restart: always
        networks:
            internal:
        command: redis-server /etc/redis/redis.conf --appendonly yes
    
    networks:
        default:
        internal:
            internal: true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55

    然后启动即可:

    # 以后台方式启动
    sudo docker-compose up -d
    
    • 1
    • 2

    web端

    先进入:

    http://<公网IP>:10000
    
    • 1

    需要修改用户名密码, 以及下面的mariadb数据库的用户名, 密码, 数据库名, 数据库主机名, 这里写成:

    nextcloud
    nextcloud
    nextcloud
    db
    
    • 1
    • 2
    • 3
    • 4

    Redis缓存

    直接使用的话速度比较慢, 这时候可以加上Redis缓存提高速度.

    vi /opt/nextcloud/www/config/config.php
    
    • 1

    到文件倒数第二行, );之前, 然后加上:

      'memcache.local' => '\OC\Memcache\Redis',
      'memcache.distributed' => '\OC\Memcache\Redis',
      'memcache.locking' => '\OC\Memcache\Redis',
      'redis' => array(
        'host' => 'redis',
        'port' => 6379,
        'password' => ''
      ),
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    后续…

    如果nextcloud官方更新了镜像, 可以用下面的命令来更新我们服务器部署的nextcloud:(前提是在你的docker-compose.yaml路径下执行)

    sudo docker pull nextcloud
    
    sudo docker-compose down && docker-compose up -d
    
    • 1
    • 2
    • 3

    mac端展示:

    截屏2022-11-19 20.38.38

    ref


    1. Docker部署个人网盘NextCloud - 良月二十’s Blog (lyes.host); ↩︎

    2. Docker Compose - LinuxServer.io; ↩︎

  • 相关阅读:
    EN 13859-2防水用柔性薄板—CE认证
    c++(8.29)auto关键字,lambda表达式,数据类型转换,标准模板库,list,文件操作+Xmind
    Jenkins入门——安装docker版的Jenkins & 配置mvn,jdk等 & 使用案例初步 & 遇到的问题及解决
    KVB交易平台:国内三大交易所(上海、深圳、北京)的概要与分析
    tensorRT简明使用
    mulesoft Module 5 quiz 解析
    文本的换行与包裹 之可能是全网最详细的 line-break 中文介绍
    ES8(Java API Client)查询详解
    启动Java应用的黑魔法:初始化性能解密@PostConstrut,InitialzingBean,init-method,BeanPostProcessor
    React 中报Type error: Could not find a declaration file for module ‘qs‘.(已解决)
  • 原文地址:https://blog.csdn.net/qq_41437512/article/details/127941705