Posted by novicepq on

安装个人网络硬盘Nextcloud

用nextcloud给自己打造一个专属于私人的网络云硬盘,拥有自己的Dropbox,Google Drive,Onedrive,百度网盘等。

安装环境:Debian 9.0
需要一个域名和一个域名解析服务:域名推荐免费域名(www.freenom.com)进行练手,域名解析国外的比如cloudflare等。
需要一个VPS,至少500MB内存,10G的硬盘空间。

因为会用到域名,所以本文会涉及到安装Apache,MariaDB,PHP7。本文在root下进行安装,普通用户自行在代码前增加sudo。

第一步,系统更新和升级

在安装之前先对Debian系统进行更新和升级,使用如下代码:

第二步,安装apache网络服务器

安装完成之后,运行以下代码查看是否运行正常:

看到绿色的Active(Running)表明apache已安装成功
最好也能设置apache开启自启动:

查看apache的安装版本号:

应显示:
Server version: Apache/2.4.25 (Debian)
Server built: 2017-07-18T18:37:33

如果安装了防火墙,则需要设立防火墙规则,详见此文

现在如果输入VPS的公共IP地址,应该看到如下图示:

如果不知道IP地址,可用以下代码显示:

如果nextcloud是安装在本地电脑上,则在浏览器地址栏里输入127.0.0.1或者localhost
接下来,需要把www-data(apache用户)设置成网站拥有root权限的用户,因为初始设置的时候默认的是vps的root用户:

第三步,安装MariaDB数据库服务器

安装完成后MariaDB应该会自动运行,可以用以下代码查看状态:

系统应该返回如下结果:
● mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2017-08-13 03:05:17 UTC; 1min 37s ago
Main PID: 16127 (mysqld)
Status: "Taking your SQL requests now..."
CGroup: /system.slice/mariadb.service
└─16127 /usr/sbin/mysqld

如果系统没有自动运行,可以用以下代码启动:

可以让系统开机自启动:

运行以下代码安装安全程序:

MariaDB会问你root密码,因为尚未设置,直接按回车键
按如下截图回答问题:


记下刚才设置的root密码。
使用如下代码检测MariaDB是否安装成功:
登陆MariaDB数据库:

退出数据库:

检查MariaDB数据库的版本号:

第四步,安装PHP7

使用如下代码进行安装:

打开apache php7.0模块,并重启网络服务器:

安装完成后,可使用如下代码查看是否安装成功:
1. 查看php的版本号:php --version
2. 在web root目录下新建info.php文件:nano /var/www/html/info.php
a. 在文件里输入:

保存退出,在浏览器里输入vps IP地址/info.php, 如果是本地安装,则vps IP替换为127.0.0.1或者localhost。
当见到如图所示的页面后,说明php已经安装成功:

安全起见,看到该页面后,需要把info.php从vps里删掉:

这样LAMP就装好了,下面开始讲安装nextcloud。

第五步,下载nextcloud

首先去https://nextcloud.com/install/页面,在Get Cloud Server下点击Download,在弹出的页面上右键点击Download Nextcloud,选择复制链接地址Copy Link Location

在ssh下输入以下代码,链接地址使用自己复制的nextcloud链接地址:

需要用unzip将包解压到/var/www/目录下:

接下来把前面第二步设的apache用户www-data设置成/var/www/nextcloud/这个文件夹的所有人:

第六步,在MariaDB里新建数据库和数据库用户

登陆MariaDB数据库:

给数据库取名,可以取任意名字,这里取名nextcloud:

新建一个数据库用户,可取任何名字,这里取名nextclouduser,及其密码,并赋予其nextcloud的所有权力,可以自己定义上述参数:

然后末尾添上两句,把参数冲掉:

第七步,设置binary登陆MariaDB

编辑MariaDB的配置文件:

找到[mysqld]字位,并将以下三行全部替代:

binary日志的格式必须是mixed。保存退出设置文件,然后重启MariaDB:

第八步,为nextcloud创建一个apache虚拟host文件

/etc/apache2/sites-available目录下新建nextcloud.conf文件:

将以下代码贴到上面的文件中,将第三行nextcloud.your-domain.com替换为自己注册的域名:

保存退出文件后,运行以下代码使设置文件生效:

同时需要设置一些apache模块:

以及php模块:

最后重启apache,以使安装的模块生效:

这时候可以用浏览器访问你的域名了,不出问题网页将显示nextcloud界面。

为了确保网站安全,可以给它做上ssl证书,即自带https协议。

第九步,安装ssl证书

先安装cerbot:

然后运行如下代码:

–webroot-path /var/www/nextcloud即为第八步设的nextcloud储存地址。安装时会询问是否允许http和https两种访问方式或者默认https访问,看自己喜好选择哪种。

如果不灵,参考该文档,选择apache和自己安装的系统。

安装完成后,如果输入你的域名就会发现网址自动加上https协议。

最后一步,给nextcloud设置用户名

设立管理员账号,需要新建一个文件夹,作为网盘文件夹。
(可选,因为发现安装时nextcloud路径下已经有data文件夹)安全起见,文件夹不应放在网盘root路径下,比如可以放在/var/www/nextcloud-data路径下,可用以下代码实现:

用apache的root用户(www-data)(见第二步)将新建的文件夹设置成可写权限:

然后用第六步设立的数据库名,数据库用户名,数据库用户密码填入网页相关栏里,新建admin管理员用户和密码,登陆后,nextcloud就创立完成了,以后可以直接以管理员用户登陆。

nextcloud还有网页和手机客户端,这时我们就真正具备了一个自己私人的网络硬盘了。

本文参考以下两篇英文文章:
https://www.linuxbabe.com/debian/install-lamp-stack-debian-9-stretch
https://www.linuxbabe.com/debian/install-nextcloud-debian-9-stretch-lamp-apache


Leave a Reply