用 NextCloud 搭建个人私有云

 

背景交代

之前给大家写了一篇 用 ownCloud 搭建个人私有云 的文章,直到现在网盘纷纷停止服务已经有一段时间了,现在 ownCloud 的团队也弃坑了,全都跳槽去开发一个新的网盘”NextCloud“。

ownCloud 的版本号一直维持在 v9.x.x ,然而 Nextcloud 作为一个新生儿,初始的版本就是 v10 。这说明 Nextcloud 就是 ownCloud 的后续版本。目前 nextcloud 的最新版本是‘ 12.0.0 ’。这个版本 BUG 稍微有点多,我本想等 12 稳定了再发教程,但是有人催我赶紧放教程,所以没办了,我就今天把教程发出来吧。

有人抱怨我上篇文章写的不明确,有很多东西都没有交代清楚,那我这篇文章尽量详细吧。如果还有哪写的不清楚,欢迎大家给提醒,我会尽量去改。那个,还有,如果有人希望也使用我的网盘,可以联系我,私人 QQ 269015385。

在这里吐个糟,我下面的教程是手动安装的教程。现在官网有一个一键安装,没错,只需要一个命令就行了,命令如下:

sudo snap install nextcloud

需要准备的清单

  1. X86架构主机:
    或者是虚拟机也行,配置不用太高,推荐双核CPU、1GB以上内存,
    我自己用的主机是4核i3 6100,8GB DDR4内存;
  2. 域名:
    推荐购买万网的域名,因为后面有一个章节会介绍到如果设置动态域名解析(DDNS);
  3. 硬盘:
    推荐单独准备一个硬盘用来存放数据,即使系统出现故障,你的数据也不会受到影响;
  4. RAID卡:
    如果可以使用 RAID 卡那就更好了,我自己使用的是 LSI 9266-4I,上面插了4个2TB硬盘,组 raid5。

操作系统

Ubuntu-server 16.04 x64

ps:有人管我要centos 的教程,我个人比较习惯用ubuntu ,其实也就是命令不一样而已。

主要软件

Apache2

PHP7

Mysql 5.7

工具清单

  1. VIM(一个 linux 的文本工具)
  2. Openssh-server(linux上的远程ssh服务,我比较喜欢用xshell远程上去配置)
  3. Filezilla(一个可以用过ssh管理主机文件的软件)
  4. unzip(解压东西用的,当然你可以用windows解压好,上传到linux)

操作用户

root

 

二、预配置

安装系统之前,我先对系统配置一下,以适应我的使用习惯。

  • 更新

apt update

  • 安装 vim

apt install vim

  • 修改网卡名称为 eth0(选)

ps:这是我个人习惯,你也可以不改,设置静态也可以通过DHCP绑定一个,都行,看你习惯。

  • 设置静态IP地址(选)

删除原文件  rm -r /etc/network/interfaces

ps:设置方法有很多种,可以自行搜索

 

  • 配置ssh服务端(选)

 

 

ps:这个是通过远程登录到linux服务器ssh服务端,当然你也可以用真机的终端配置。

  • 安装解压软件

 

三、安装Apache2

首先先登录root账户

  • 安装环境

 

  • 安装NextCloud

https://nextcloud.com/install/#instructions-server

到这个页面查找当前的下载地址,下载NextCloud到root工作目录

解压文件

复制到 Apache2 根目录

  • 配置Apache2

创建子目录配置文件

 

写入以下内容

 

链接子目录配置文件

更改网站默认目录

修改以下内容

 

添加模块

配置根目录权限

创建详细配置脚本

写入以下内容

运行脚本

重启服务

四、安装数据库

 

  • 安装MySQL

ps:设置密码为空就行,下面会去设置密码

  • 初始化安全配置

执行之后会进行如下操作

  • 为root用户设置密码
  • 删除匿名账号
  • 取消root用户远程登录
  • 删除test库和对test库的访问权限
  • 刷新授权表使修改生效

  • 设置远程访问

解除绑定IP地址

找到 'bind-address = 127.0.0.1' ,删去这一行。

如果没有找到这行代码,那就:

找到 'bind-address = 127.0.0.1' ,删去这一行。

授权用户远程连接

先进入mysql client

输入 root 用户的密码

把 password 替换成 root 用户的密码

  • 创建数据库

ps:创建一个数据库,名称是nextcloud,后面会 用到

 

  • 数据库备份(选)

例: mysqldump -u dbadmin -p nextcloud> /var/database_bak.sql;

ps:这个不是安装的必须步骤,这个是以后你想对数据库备份用的,下同

  • 数据库还原(选)

ps:这个不是安装的必须步骤

五、初始化 NextCloud

 

  • 完成初始化

在浏览器输入

http://服务器IP

• 完成初始化

  • 设置管理员账户

在第一行设置管理员的帐号

在第二行设置管理员的密码

  • 存储和数据库设置

Data folder 设置网盘所有文件保存的位置,默认就好,后面会有更改的文章;

在下面依次输入:

  • 数据库用户名(root)
  • 数据库密码(你刚才设置的)
  • 数据库名称(nextcloud,刚才写的是这个,除非你改了)
  • 数据库地址(数据库的IP,如果是本机,可以写127.0.0.1,也可以写localhost)

 

存储和数据库设置

点击完成,稍等2分钟

六、修改存储路径(选)

 

  • 停止web服务

  • 修改配置文件

找到 datadirectory 项,把后面的 '/var/www/nextcloud/data' 修改为你想要设置的路径,例:

  • 转移数据

/var/www/nextcloud/data 目录下的所有文件移动到新的 /var/data/ 目录下。

  • 修改权限

修改 /var/data/ 目录所述的组及用户与原 /var/www/nextcloud/data 目录相同,例如所述组和用户都修改为 www 。

     如果遇到“HTTP ERROR CODE 500”说明是chmod的问题

 

  • 启动web服务

七、修改apache端口(选)

 

  • 编辑apache2的配置文件

 

  • 编辑apache2的端口配置文件

  • 重启apache服务

八、使用HTTPS加密我的流量

 

  • 安装签名工具

  • 生成证书

因为现在国家通讯部的规定,运营商把所有的80端口都ban掉了。所以咱们申请证书不能使用正常的80端口进行申请证书,只能通过DNS解析的方法得到证书。

./acme.sh --issue --dns -d 你的域名.com

     然后得到这张图,你需要去你的域名运营商的控制面板里,给你的域名加上你的二级域名,如果没有二级域名,那就直接添加一个txt类型的记录,主机记录填写Domain里的值,然后把TXT value里的值写到记录值里。

例图如下:

  • 申请证书

     成功之后会出现这样的提示

  • 安装证书

     然后现在咱们去配置把证书放到网站存放证书的文件夹,并把名字更正成它需要的名字

首先要看看存放证书的文件夹在什么地方,然后把证书复制过去

     找到这2行

     然后把证书和私钥cp进去

  • 安装openssl

  • 开启SSL模块

  • 修改https的默认路径

     改成下面值的

  • 保存

按ESC

:wq

回车

启用https

     上文安装完后,会在 /etc/apache2/sites-available/ 目录下生成一个缺省的 default-ssl 文件。缺省的网页目录仍然是 /var/www/ 。我们可以创建一个链接到 site-enabled 目录。

重启apache服务:

九、万网的动态域名解析

  • 安装 python

  • 下载万网DDNS客户端

  • 复制路径

  • 修改配置文件

配置文件内容

  • 执行一次

  • 设置周期执行

本文由 落格博客 原创撰写:落格博客 » 用 NextCloud 搭建个人私有云

转载请保留出处和原文链接:https://www.logcg.com/archives/2750.html

About the Author

lucifer

Comments

  1. 多谢博主的教程,详实明白,已经照着操作好,还有小问题是ssl证书三个月到期,倾角该如何自动申请证书并完成证书复制安装呢

      1. 巧了,我也是同样的主题。
        搜索引擎过来的,刚刚搭建完nextcloud,碰到了不同用户间无法共享文件的问题。现在的安装方法(15.0)已经比一年多前简化好多了

  2. 请问博主,关于SSL证书在github上写的可以自动更新(每60天自动注册一次),但是Godaddy的TXT记录是手动添加的,那就是每次只能三个月内再次注册SSL添加TXT了吗?有没有什么方法自动来更新SSL?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注