从零开始搭建自己的NextCloud个人云盘

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云服务器ECS,u1 2核4GB 1个月
简介: 一、场景介绍NextCloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。不同于公有云盘,私有云盘需要部署在自己的ECS或轻量应用服务器上,并通过公网进行访问,文件传输速度和存储容量取决于您云...

一、场景介绍

NextCloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。

不同于公有云盘,私有云盘需要部署在自己的ECS或轻量应用服务器上,并通过公网进行访问,文件传输速度和存储容量取决于您云服务器的硬件配置,传输不限速,安全有保障。

国内外有多种著名的个人云存储,NextCloud是其中之一,本文以NextCloud为例带您从零开始搭建个人云盘。

二、目标读者

有以下需求的用户可以考虑搭建个人网盘:

  1. 在工作/学习中需要共享文件来进行团队协作。

  2. 需要在多设备之间频繁共享文件。

  3. 不方便存储到公有云盘的重要文件。

三、环境准备

  1. 带有公网IP地址的云服务器一台

  2. 服务器操作系统:Alibaba Cloud Linux 3(推荐) / CentOS 8 / Ubuntu 18.04 / Debian 10

  3. 宝塔面板

  4. Nginx 1.18+、MySQL 5.7+、PHP 7.3+的运行环境

以上环境均会在操作步骤中带您逐步操作。

四、操作步骤

步骤一:购买云服务器并设置密码

说明

Tips:因个人网盘的传输速率与服务器的公网带宽息息相关,对此我选择了阿里云中国香港地区的轻量应用服务器,香港地区的轻量应用服务器具有低价格、高带宽的特点,非常适合搭建个人云盘。

  1. 访问轻量应用服务器控制台

说明

轻量应用服务器控制台:https://swas.console.aliyun.com

在控制台点击“创建服务器”按钮。

image.png
  1. 选择服务器配置

实例类型:服务器实例

地域和可用区:中国-中国香港

镜像:系统镜像-Alibaba Cloud Linux 3

套餐配置和数据盘可以根据您的需求选择,若您的云盘只存储少量文件且使用人数不多,选择最低配置性能都是足够的。若文件存储量比较大,可以考虑额外增加数据盘。

image.png
  1. 支付订单

选择好服务器配置之后点击立即购买并支付订单。

image.png
  1. 查看服务器信息

购买完成后,回到控制台,可以看到您刚刚购买的服务器实例,点击该实例可以查看详情。

image.png
  1. 修改root用户密码

在服务器详情页面,点击重置密码,修改root用户密码。

image.png
  1. 至此,服务器购买已经完成,请记下您的公网IP地址和root用户密码。

步骤二:安装宝塔面板

说明

宝塔面板可以带领我们以可视化的步骤完成后面的所有安装操作。 宝塔面板官网:https://www.bt.cn

  1. 连接到命令行

安装宝塔面板需要执行命令进行安装,您可以使用XShell、FinalShell等知名SSH远程连接工具连接到服务器。

为了降低操作难度,本文使用阿里云自带的Ecs-Workbench进行连接。

在服务器详情页面,点击“远程连接”按钮,会打开一个新的页面。

image.png

若显示出如下页面,则命令行连接成功,您可以在此输入命令进行操作。

image.png
  1. 安装宝塔面板

将以下命令,粘贴到命令行窗口中,按回车键执行。

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

执行安装命令后,您会看到如下提示语句,输入y,按回车键,正式开始宝塔面板的安装过程,大约需要5-10分钟。

Do you want to install Bt-Panel to the /www directory now?(y/n):

安装完成后,您会看到如下的输出内容,请记下外网面板地址、username和password。

==================================================================
Congratulations! Installed successfully!
==================================================================
外网面板地址: http://服务器公网IP地址:8888/ad27d674
内网面板地址: http://服务器内网IP地址:8888/ad27d674
username: f7hcesue
password: 7c967394
If you cannot access the panel,
release the following panel port [8888] in the security group
若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口
==================================================================
Time consumed: 7 Minute!

若很不幸,您在安装过程中离开了电脑前,去做别的事了,回来发现阿里云账号已经退出登录,导致您没有看到上面的输出内容,不要担心,重新连接到命令行,输入bt,按回车键,可以执行宝塔面板的相关命令:

===============宝塔面板命令行==================
(1) 重启面板服务           (8) 改面板端口
(2) 停止面板服务           (9) 清除面板缓存
(3) 启动面板服务           (10) 清除登录限制
(4) 重载面板服务
(5) 修改面板密码           (12) 取消域名绑定限制
(6) 修改面板用户名         (13) 取消IP访问限制
(7) 强制修改MySQL密码      (14) 查看面板默认信息
(22) 显示面板错误日志      (15) 清理系统垃圾
(23) 关闭BasicAuth认证     (16) 修复面板(检查错误并更新面板文件到最新版)
(24) 关闭动态口令认证          (17) 设置日志切割是否压缩
(25) 设置是否保存文件历史副本  (18) 设置是否自动备份面板
(0) 取消                   (29) 取消访问设备验证
===============================================
请输入命令编号:

输入命令6和5来修改面板用户名和密码,输入命令8修改面板端口,输入命令11清除登录入口限制(该命令被宝塔面板隐藏,但目前还可以执行),此时您的外网面板地址变为:http://服务器公网IP地址:8888/login

注释:有时候面板端口不一定是8888,请以安装成功的输出内容为准。

步骤三:安装LNMP环境

  1. 端口放行

在轻量应用服务器控制台的服务器详情页面,点击“防火墙”。

image.png

在防火墙页面点击“添加规则”按钮,添加如下规则:

8888端口用于宝塔面板登录,3306端口为MySQL数据库的访问端口。

若不添加会造成无法登录宝塔面板或无法连接到服务器安装的MySQL数据库。

image.png
  1. 登录宝塔面板

在浏览器地址栏输入外网面板地址,进入宝塔面板登录页,输入用户名和密码进行登录。

如果您已经忘记面板地址/用户名/密码,请查看步骤二最后的输出内容,或在命令行执行bt命令重置用户名和密码。

登录成功后,您需要注册一个宝塔面板账号,才能正常使用宝塔面板。

image.png
  1. 安装LNMP环境

您绑定宝塔面板账号后,会自动弹出窗口,推荐您安装LNMP环境。

根据NextCloud官方文档,建议安装Nginx 1.18+、MySQL 5.7+、PHP 7.3+的运行环境,不建议低于此版本。

此处我选择Nginx 1.20、MySQL 5.7和PHP 7.4。

默认并不是这几个版本,请手动修改,并在安装前确认版本是否正确,安装方式选择极速安装或编译安装均可。

image.png

若没有弹出以上窗口,请在“软件商店”-“运行环境”中手动安装Nginx、MySQL和PHP。

image.png

安装过程大约需要20-80分钟左右,具体时长取决于您服务器硬件配置。

服务器系统会自动在后台安装,您可以关闭页面去做别的事情,安装进度可以在面板左上角的消息盒子查看。

image.png

安装完成后,您在“软件商店”-“已安装”可以看到如下内容。

image.png

步骤四:准备开始安装NextCloud

说明

NextCloud官网:https://nextcloud.com NextCloud服务端下载:https://nextcloud.com/install/#instructions-server NextCloud官方文档:https://docs.nextcloud.com

  1. 新建站点

在“网站”-“PHP项目”中点击“添加站点”,该站点作为NextCloud的运行站点。

image.png

做好三件事:

  • 域名:输入你的网站域名,并将该域名的DNS解析指向您的服务器公网IP地址。如果您没有域名,则直接输入服务器公网IP地址。

  • 选择一个文件夹作为网站根目录,宝塔面板推荐将网站目录放在/www/wwwroot下,因此我选择将/www/wwwroot/nextcloud作为NextCloud网站根目录,稍后需要将官方的NextCloud安装文件解压到网站根目录中。

  • 创建MySQL数据库账号,并记下数据库的账号和密码。

以上三个内容都会在后面用到,请记下来。

image.png
  1. 点击网站根目录,进入网站根目录

image.png
  1. 点击“终端”按钮,输入root用户的密码登录到SSH命令行,如果您已忘记密码,请参考步骤一最后的内容进行修改。

image.png

进入终端后会自动执行cd命令将当前工作目录切换为网站根目录。

image.png

您也可以选择在之前的阿里云ecs-workbench操作,但请先通过cd命令将当前工作目录切换到网站根目录。

cd /www/wwwroot/nextcloud
  1. 执行以下命令下载NextCloud源文件到网站根目录中。

wget https://download.nextcloud.com/server/releases/latest.zip

执行完毕后刷新文件列表,可以看到latest.zip已被下载,如果没有,请检查命令行的当前工作目录是不是网站根目录。

image.png
  1. 解压latest.zip到当前目录。

image.png

解压后得到一个名为nextcloud的文件夹。

image.png
  1. 网站根目录下的.user.ini文件是具有修改锁的,其无法被删除或覆盖,需要将锁去除。

打开终端,确保命令行工作目录为网站根目录,然后执行以下命令修改.user.ini的权限,否则该文件将无法被nextcloud的安装文件覆盖。

chattr -i .user.ini
chown -R www:www /www/wwwroot/
  1. 由于宝塔面板是直接运行网站根目录下的文件,所以需要将解压出的nextcloud文件夹中的全部文件,移动(切)到网站根目录下。

最终效果如图所示,请注意检查.user.ini文件的修改时间与其他文件修改时间是否为同一天,若不是同一天说明该文件没有覆盖成功,继续后面的步骤将出现HTTP 502的错误。

image.png
  1. 回到宝塔面板“网站”菜单,点击网站名,然后配置伪静态。

image.png

伪静态配置如下,若不进行配置,继续后面的步骤将出现HTTP 502的错误。

location
 
~ ^/(data|config|.ht|db_structure.xml|README) {
 
deny all;
 
}
image.png

步骤五:安装NextCloud

  1. 在浏览器地址栏输入上一步骤新建站点时所输入的域名,进入NextCloud安装向导。创建管理员账号,配置数据目录和数据库。

数据库请选择MySQL数据库,并输入创建站点时输入的数据库账号和密码。

image.pngimage.png

  1. 点击安装,大约需要1分钟。

image.png
  1. 安装推荐的应用(可选)。

image.png
  1. 完成安装。

image.png

单击左上角的文件图标,即可开始使用NextCloud。

image.png

五、方案验证

按照以上步骤,您已经完成了NextCloud的安装,经过测试,上传文件、删除文件、重命名文件等基本功能没有任何问题。

image.png

您还可以下载桌面端或移动端App,实现三端同步。

image.png

同时,在应用市场也有很多应用可以下载,这些应用都是免费的。

image.png
相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
4月前
|
存储 Ubuntu 网络协议
Ubuntu本地部署Nextcloud并结合内网穿透实现远程访问搭建个人云盘
Ubuntu本地部署Nextcloud并结合内网穿透实现远程访问搭建个人云盘
140 1
|
7月前
|
存储 Ubuntu 网络协议
NAS个人云存储 - 手把手教你搭建Nextcloud个人云盘并实现公网远程访问(上)
NAS个人云存储 - 手把手教你搭建Nextcloud个人云盘并实现公网远程访问
|
7月前
|
存储 文件存储
NAS个人云存储 - 手把手教你搭建Nextcloud个人云盘并实现公网远程访问(下)
NAS个人云存储 - 手把手教你搭建Nextcloud个人云盘并实现公网远程访问
|
10月前
|
Linux 程序员 网络安全
【Linux环境搭建】用云服务器搭建Linux环境
【Linux环境搭建】用云服务器搭建Linux环境
202 0
|
11月前
|
NoSQL 关系型数据库 MySQL
阿里云服务器部署图文详解
阿里云服务器部署图文详解
阿里云服务器部署图文详解
|
存储 关系型数据库 MySQL
如何在服务器上搭建个人云盘
以树莓派为例写如何搭建个人云盘
|
数据安全/隐私保护
Ubantu系统搭建个人网盘
Ubantu系统搭建个人网盘
225 1
Ubantu系统搭建个人网盘
|
存储 文件存储 数据安全/隐私保护
seafile搭建个人存储网盘
几种开源的网盘存储解决方案
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
1565 0
|
Oracle 关系型数据库 MySQL
Linux系统实战部署私有云网盘
Linux系统实战部署私有云网盘
Linux系统实战部署私有云网盘