私有云详细设计(使用OpenMediaVault和NextCloud构建家庭私有云)
私有云详细设计(使用OpenMediaVault和NextCloud构建家庭私有云)选择中文安装,放心不像Ubuntu 16.04 安装的时候用中文还会报错,这个中文挺稳定的进行安装实验步骤:安装OMV系统,开通samba,安装OMV插件,安装nextcloud我们先创建这样一台虚拟机这个是测试而已,实际使用请大家自己搞台电脑出来,像我是4块2T做radi5 你预算少可以准备2块硬盘,做个raid1,这样资料安全有保证
我致力于用最简单最详细的方法来构建家庭的私有云,欢迎大家查看,吐槽下今日头条,我发的文章都是干货,从来不发水贴,为什么我一直是新手号不公平啊
最近一直在研究nas系统,试了好多,目前家里是seafile,不过家里用文件被打碎了太麻烦,在centos上弄nextcloud也不是很方便,因为我linux属于小白,然后想到了有Open Media Vault,这个系统是基于debian内核搞的,自带的功能很强大了,还有很多插件,原来2.X的版本里面有集成了owncloud插件,不过现在3.X的版本owncloud插件没集成进去,不过看到能自己安装,所以来测试下这个系统。另外由于他的开发人员原来也是开发freenas的所以他自己直接有web管理界面,里面开SAMBA,做软RAID都很方便,
官网:https://www.openmediavault.org/
我准备弄个8G的u盘,安装系统,然后另外在插4块硬盘做软raid,保存自己需要的数据。
实验步骤:安装OMV系统,开通samba,安装OMV插件,安装nextcloud
安装OMV系统我们先创建这样一台虚拟机
这个是测试而已,实际使用请大家自己搞台电脑出来,像我是4块2T做radi5 你预算少可以准备2块硬盘,做个raid1,这样资料安全有保证
进行安装

选择中文安装,放心不像Ubuntu 16.04 安装的时候用中文还会报错,这个中文挺稳定的

是

大陆就选中国吧


开始加载安装组件

主机名我就用默认了

这里也默认了

输入系统底层的密码,不是web界面的密码

读取时间

系统装到8G的U盘里

开始安装系统,安装到一半会卡住,别急等一会就好

设置镜像

我就选163了,随便你

中间有一步是配置代理,我手快了没截图就按回车了,不过我想家里应该没人吃饱了去用代理上网吧

安装grub引导

放sda中,因为这个就是u盘

安装完成重启

安装完成后,我们可以在机器界面上看到已经有ip地址192.168.2.120 下面一行显示登陆网页用户名admin 密码openmediavault。后面就全部用网页来管理了。

我们登陆OMV,输入密码就可以进入主界面

这里就是主界面,很干净方便

更新系统
我们打开更新管理,先更新下系统,打下补丁,以后有更新都在这里可以看到

等更新完成后就可以点击关闭,更新过程中无法关闭

安装插件
插件使用第三方的源,也是他们官方认证的
http://omv-extras.org/joomla/index.php/guides
我们登陆网站在下面有deb包,我们下载后上传到插件页面安装下就能看到其他的插件

上传插件

安装

安装完成后,会自动刷新页面,就会发现插件多了很多

设置系统时间
我们在时间和日期中设置下时区,然后保存下,让时间自动从网络同步

常规设置
在这个设置中,我们可以修改OMV的web端口,网页超时时间,默认5分钟太短了,我设置了长一点

硬盘管理
S.M.A.R.T.
开始SMART,这样硬盘出问题能自动检测

这里可以看到硬盘的型号序列号,如果那块硬盘有问题,找起来也方便

RAID管理
我们进入RAID管理,然后选下4块盘,设置下RADI 5,名字叫MD0
linux下面都是用md这个来命名的,所以我也这么叫了

创建完成后会进行初始化,下面有初始化的百分比,等初始化完成后在创建文件结构。

文件系统
我们进入文件系统,选择创建,选下我们刚才创建的RAID,然后输下名字继续叫MD0,然后文件系统叫EXT4

选是后会提示你,要被格式化了


这时文件系统还是不能用的,我们要选择下挂载

挂载完成

设置SAMBA共享
我家里的NAS我准备建立一个SAMBA的用户,我自己用,然后共享文件3个一个叫NAS,包括NextCloud都装在里面,这样我可以方便的直接上去管理,然后一个叫Download的文件夹,脱机下载插件下载的文件就放里面,然后一个叫Software,我自己的软件都在里面,其他包括我老婆都不用SAMBA,都用NextCloud上面,我尽量让自己的NextCloud上保存的都是轻量级的文件,大容量的就放在SAMBA上。
你自己想如何设置还是每个人不同的,不用照我的来。
建立用户
我们先建立一个用户,用于SAMBA共享

选是后会提示你,要被格式化了


这时文件系统还是不能用的,我们要选择下挂载

挂载完成

设置SAMBA共享
我家里的NAS我准备建立一个SAMBA的用户,我自己用,然后共享文件3个一个叫NAS,包括NextCloud都装在里面,这样我可以方便的直接上去管理,然后一个叫Download的文件夹,脱机下载插件下载的文件就放里面,然后一个叫Software,我自己的软件都在里面,其他包括我老婆都不用SAMBA,都用NextCloud上面,我尽量让自己的NextCloud上保存的都是轻量级的文件,大容量的就放在SAMBA上。
你自己想如何设置还是每个人不同的,不用照我的来。
建立用户
我们先建立一个用户,用于SAMBA共享


建立共享文件夹


对每个文件夹添加下用户权限

设置SAMBA
我们开启下SAMBA,不知道的选项就不用改了

添加共享文件夹


设置好后我发现访问共享不行,然后重启了下服务器ok了,都能看到了,可能是因为我是虚拟机的关系,我朋友直接设置好就可以使用了。我们可以进去然后新建下文件,看看权限是否正确

由于NextCloud没加入OMV 3的官方插件列表中,我们只能手动来了,哎好疼苦
建立SSL证书
OMV自带了证书功能,所以我们直接使用自带的创建一个证书即可,我直接创建了25年的,这样就不会过期了

创建完成

安装Nginx插件
我们在插件中搜索nginx,然后安装下

安装完成我们就能在服务中看到Nginx

添加池
我们加个池,然后用户名和组选择下,我就用我一开始创建的那个samba的wang这个用户了

在扩展选项中添加下面的内容
env[PATH] = /usr/local/bin:/usr/bin:/bin

添加服务器
这里目录就选我前面创建的那个nas目录,端口可以看到我已经变成灰色了,因为我后面一部选择了only ssl,只用ssl了不用普通的端口了,如果你不选只用ssl的话记得把这个端口改掉,80端口和omv的端口冲突了

开启SSL,然后端口可以自己修改下,我们上海电信好像都封掉正常的80和443端口的,证书就是前面创建的证书

开始php,然后池就选择NextCloud,添加个index.php

扩展选项把下面的东西都黏贴进去

client_max_body_size 10G; # set max upload size
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/] /)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(. ?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_pass $socket;
}
# Optional: set long EXPIRES header on static assets
location ~* ^. \.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
安装MySQL插件
NextCloud需要用到MySQL数据库,所以我们安装下MySQL的插件

安装完成后,启用下,然后下面的SQL management也启用下,那个是网页管理数据库的功能,好了之后我们就可以点击重设边上的SHOW来网页管理数据库

重设MySQL密码
默认的MySQL用户名是root,密码为空,我们设置一个安全一点,点击reset password重设密码

然后我们点击show,然后输入用户名密码登陆数据库

创建nextcloud数据库
我们新建一个数据库专门用于nextcloud


创建完成

安装PHP插件
我们安装NextCloud时还需要几个php的插件,我们安装下
我们使用ssh工具,登陆下服务器,然后执行下面的命令
安装php5-gd模块:apt-get install php5-gd
安装php5-curl模块:apt-get install php5-curl
安装php-pclzip模块:apt-get install php-pclzip



下载并安装NextCloud

https://download.nextcloud.com/server/releases/nextcloud-12.0.0.zip
我们直接下载nextcloud,然后解压,之后敲到我们前面SAMBA创建的那个nas的目录下

等待复制

输入https://nas的ip加上前面我设置的86端口,来进行安装
我是这个,你可以根据自己的来https://192.168.2.120:86/index.php
输入你的信息包括数据库,和默认的管理员密码

安装完成

然后我们通过samba,可以看到下面的data路径里admin账户,files文件里面都是我们上传到nas上的文件,

不过需要说明的是,我们直接把文件放到这个目录下是不行的,在nextcloud界面看不到,只能通过nextcloud的网页上传上来才能看到,不过看到的文件就是原文件
下面看到我通过nextcloud网页上传了2个视频,在底层的文件里还是看到这2个原文件,这样如何我们以后要更换新的nas系统都可以直接敲出来放进去,这就是为什么我不选seafile的原因,家里用要打碎文件干嘛

安装apc插件
root@server:~# apt-get install php-apc
在NextCloud的config.php配置文件中加入
'memcache.local' => '\OC\Memcache\APCu'

重启 php-fpm:
root@server:~# /etc/init.d/php5-fpm restart
修复opcache错误
编辑/etc/php5/fpm/php.ini
添加
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

重启 php-fpm:
root@server:~# /etc/init.d/php5-fpm restart
经过以上设置我们的服务器后台就没有任何报错了,尼玛我研究了好久我靠

设置外网访问
我们需要在我们的路由器上设置下外网访问,这样才能让外部访问我们,就开放下86端口即可,这部我就不截图了,很简单的,而且每个路由器不同,懂的自然知道怎么加端口,不懂的我路由器和你不同我加了你也不知道怎么弄。
另外我们要修改下网站的代码,否则打开会有问题
我们打开nextcloud的config目录中的config.php文件

我们要在哪个array中加入我们的域名,另外下面的https后面原来也是内网的ip地址,改成域名,这样外网访问过来就不会有问题了

当然请在自己的路由器上设置好ddns,这样外网都用域名访问就ok了
安装客户端下面的页面中有app的下载地址,ios是收费的6块钱好像,其他不收费,我这里就测试下windows pc的客户端,手机我就不测试了
https://nextcloud.com/install/#install-clients

安装完成后我们输入域名

跳出来证书不安全,因为是我们自己创建的,不管继续点ok,记得勾下总是信任该证书

输入用户名密码

这里可以选要同步的内容,我因为会把视频也放上面,太大了,所以就手动选择同步内容

选择同步个小的文件夹测试

下面有个本地存放这个文件夹的位置,可以自行修改到需要的位置,然后点连接

完成了

手机客户端官方的是收费的6块,下面这个是免费的第三方的

我发现NextCloud有一点不好,他的同步PC客户端会把所有的文件都下载下来,这样会占用我本地的磁盘,所以只能选择自己需要的下载,这一点没seafile好。
另外上面还有下载的插件,还有virtualbox的插件,可以在上面运行虚拟机这点还是不错的,其他的功能大家自己研究吧。
写文章很辛苦希望大家帮忙点赞



