说明
最近一直在研究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系统
我们登陆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
我们开启下SAMBA,不知道的选项就不用改了
添加共享文件夹
设置好后我发现访问共享不行,然后重启了下服务器ok了,都能看到了,可能是因为我是虚拟机的关系,我朋友直接设置好就可以使用了。我们可以进去然后新建下文件,看看权限是否正确
安装NextCloud
由于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;”;
设置权限
到共享文件夹acl里用递归先项把nextcloud及子目录的权限修改成,读/写/执行
(不进行这一步操作,很可能在下一步操作后,网页无法找到)
安装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的插件,可以在上面运行虚拟机这点还是不错的,其他的功能大家自己研究吧。
写文章很辛苦希望大家帮忙点赞
2 条评论
你好,按照这个方式运行nginx后,提示如下:
● nginx.service – A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2020-02-28 13:31:17 CST; 30s ago
Docs: man:nginx(8)
Process: 1767 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
Feb 28 13:31:17 NAS systemd[1]: Starting A high performance web server and a reverse proxy server…
Feb 28 13:31:17 NAS nginx[1767]: nginx: [emerg] unknown directive “includeSubDomains” in /etc/nginx/sites-enabled/zzz-omv-nginx:119
Feb 28 13:31:17 NAS nginx[1767]: nginx: configuration file /etc/nginx/nginx.conf test failed
Feb 28 13:31:17 NAS systemd[1]: nginx.service: Control process exited, code=exited status=1
Feb 28 13:31:17 NAS systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Feb 28 13:31:17 NAS systemd[1]: nginx.service: Unit entered failed state.
Feb 28 13:31:17 NAS systemd[1]: nginx.service: Failed with result ‘exit-code’.
然后就没办法登录omv网页了
请问是什么问题,怎么解决?
Feb 28 13:31:17 NAS nginx[1767]: nginx: configuration file /etc/nginx/nginx.conf test failed
nginx.conf 配置有问题 你在检查下