使用nextcloud搭建个人网盘

使用nextcloud搭建个人网盘

更好用的个人网盘

个人经验记录,如有转载请注明来源。
搭建的过程中,如有本文未提到的问题,欢迎指出、评论探讨!

文章目录

  • 使用nextcloud搭建个人网盘
    • 简介
    • 安装
      • 使用docker
      • 下载zip包手动安装
    • 使用

本文相关yml文件见 文章末尾

简介

nextcloud与owncloud其实是差不多的两个东西,开发团队是同一个。

相传owncloud的老大不满owncloud的商业化气息太浓,并觉着owncloud还有很多值得改进的地方。离职后搞出了nextcloud这个东西。

当然都是道听途说,具体情况是怎么回事,作为吃瓜群众的我并不关心,个人觉得nextcloud有很多更强大的地方。见下面对比:

nextcloud owncloud
版本更新更快目前已到18.1 版本更新较慢目前版本10.3.1
github上活跃度更高,贡献者更多 相比较少
ios端app下载数更多,数千人 ios端app下载数仅为个位数
支持拖拽上传文件、文件夹 不支持
文件上传有实时进度,实时上传大小,上传速率显示 没有
web端更强大好用,比如类似github上的readme.md设定、主题自定义等等 功能单一
待补充。。。。。

安装

使用docker

推荐,安装简单,升级简单,便于管理。最棒的是不用任何依赖呀!!!!

此处演示使用纯净的Ubuntu18.04环境(新创建的虚拟机)

我推荐使用独立创建的mysql、redis应用,给owncloud创建单独的用户

  • 安装docker

    • ubuntu

      sudo apt install -y docker
      
    • CentOS

      sudo yum install -y docker
      
  • 安装docker-compose

    • Ubuntu

      sudo apt install -y docker-compose
      
  • 安装redis

    使用官方镜像,使用方式见镜像下面官方说明。

    # 创建文件夹
    mkdir redis
    cd redis
    # 创建docker-compose.yml文件
    vim docker-compose.yml
    

    这里贴出我的docker-compose.yml文件

    version: '3.1'
    
    services:
      redis:
        image: redis
        restart: always
        ports:
        # 映射到本机6379端口
          - 6379:6379
        healthcheck:
          test: ["CMD", "/usr/bin/healthcheck"]
          interval: 30s
          timeout: 10s
          retries: 5
        volumes:
        #  数据卷映射到本机
          - /home/joe/data/ext4-2T-disk-1/redis:/data
    
    # 后台启动应用
    docker-compose up -d
    
  • 安装mysql

    使用官方镜像,使用方式见镜像下面的官方说明。

    # 创建文件夹
    mkdir mysql
    cd mysql
    # 创建编辑yml文件
    vim docker-compose.yml
    

    这里贴出我的docker-compose.yml文件

    version: '3.1'
    
    services:
      mysql:
        image: mysql
        command: --default-authentication-plugin=mysql_native_password
        restart: always
        environment:
        # 设置默认root管理员密码
          MYSQL_ROOT_PASSWORD: root
        ports:
        # 端口映射到本机
          - 3306:3306
        healthcheck:
          test: ["CMD", "/usr/bin/healthcheck"]
          interval: 30s
          timeout: 10s
          retries: 5
        volumes:
        # 存储卷隐射到本机
          - /home/joe/data/ext4-2T-disk-1/mysql:/var/lib/mysql
    
    #  后台启动应用
    docker-compose up -d
    
    # 查看mysql应用id
    docker ps
    #  登录到应用
    docker exec -it <ID> /bin/bash
    # 登录mysql
    mysql -u root -p
    # 创建数据库
    create database nextcloud charset='utf8mb4';
    # 赋予新创建的用户操作新创建的数据库的权限
    GRANT ALL privileges ON nextcloud.* TO 'nextcloud'@'%' WITH GRANT OPTION;
    # 刷新权限
    flush privileges;
    
  • 安装nextcloud

    建议使用官方镜像,使用方式见镜像下面的说明。

    这里贴出我的docker-compose.yml文件

    version: '2.1'
    
    services:
      nextcloud:
        image: nextcloud:latest
        restart: always
        network_mode: bridge
        ports:
          - 8848:80
        environment:
        # 管理员用户名
          - NEXTCLOUD_ADMIN_USER=joe
          # 管理员密码
          - NEXTCLOUD_ADMIN_PASSWORD=xxxxxx
          # mysql中给nextcloud创建的数据库名
          - MYSQL_DATABASE=nextcloud
          # mysql给nextcloud创建的用户名
          - MYSQL_USER=nextcloud
          # 该mysql用户的密码
          - MYSQL_PASSWORD=nextcloud
          # mysql host ip
          - MYSQL_HOST=10.0.2.55
          # redis host ip
          - REDIS_HOST=10.0.2.55
        healthcheck:
          test: ["CMD", "/usr/bin/healthcheck"]
          interval: 30s
          timeout: 10s
          retries: 5
        volumes:
        # 数据卷映射到本机位置
          - /home/joe/data/ext4-2T-disk-1/nextcloud:/var/www/html
    
    # 后台启动nextcloud
    docker-compose up -d
    

    此时就耐心等待nextcloud应用启动吧

    # 查看启动日志
    docker logs <容器ID>
    

    可能出现数据库连接 connect time out 的情况。是因为防火墙导致的docker应用无法访问到宿主机的mysql端口。这里打开一下端口访问即可。

    完成后打开浏览器登录 http://:<端口>即可

    使用nextcloud搭建个人网盘_第1张图片

下载zip包手动安装

不推荐(原因如下):

  • 依赖php环境,需要安装很多依赖,如果你不是php开发者,没有必要为了这个去搞一通php环境。
  • 安装麻烦。搭建php环境 -> 安装数据库 -> 安装redis -> 安装apache服务。
  • 升级麻烦。
  • 管理起来麻烦。

官方文档传送门

使用

你可能感兴趣的:(nextcloud)