IT男的笔记 篇一:Win10下基于NextCloud的可公网访问的家庭云盘搭建

2018-12-19 17:42:27 34点赞 295收藏 31评论

小编注:此篇文章来自#原创新人#激励计划,新人发文前三篇文章,篇篇额外奖励50金币。参加超级新人计划活动,新人发文即可瓜分10万金币周边好礼达标就有,邀新任务奖励无上限点击查看活动详情

追加修改(2018-12-19 18:57:52):
winsw配置文件有误,应为: “ <configuration> <!-- ID of the service. It should be unique accross the Windows system--> <id>FRPC</id> <!-- Display name of the service --> <name>frpc client (powered by WinSW)</name> <!-- Service description --> <description>内网穿透工具</description> <!-- Path to the executable, which should be started --> <executable>frpc.exe</executable> <arguments>-c frpc.ini</arguments> <logmode>reset</logmode> </configuration> ”

购买理由

因为某度网盘离线下载关了,同步盘不好用,会员太贵等原因,自建网盘的需求逐渐提上日程。

目标: 主要在局域网访问,经过局域网穿透绑定域名,外网也可以轻度访问。

恰逢家里有一台限制的MacMini,于是购买了一个硬盘盒,接上硬盘,开搞。

Apple Mac mini台式电脑 (Core i5 处理器/4GB内存/500G存储 MGEM2CH/A)3548元老款丐版MacMini京东去购买YottaMaster 移动硬盘盒底座2.5/3.5英寸硬盘座通用USB3.0玩客云台式笔记本外置固态硬盘盒子 黑K100-U369元外接硬盘盒,不贵,还算稳定。可以买双盘位的,带有一键备份功能。京东去购买希捷(SEAGATE)酷鱼系列 4TB 5400转256M SATA6Gb/s 台式机机械硬盘(ST4000DM004)679元普通硬盘京东去购买


文字版,记录和分享一下过程和经历的坑。

操作系统

硬件配置

i5-4200U 双核四线程 1.4GHz的弱鸡CPU,4G内存

软件配置

用bootcamp安装了最新版的win10,build 1809。
控制面板程序启用或关闭Window功能,打开“适用与Linux的Windows子系统”,以下简称“WSL”。
打开自带应用商店,搜索ubuntu,下载安装,当前版本为Ubuntu 18.04.
打开cmd命令行,输入bash即可进入WSL子系统(以下操作除非特殊说明,均在bash命令行下)。

安装依赖软件

PHP

主要安装php及其扩展

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install openssl php7.2-common php7.2-mcrypt php7.2-cli php7.2-xml php7.2-mysql php7.2-gd php7.2-imap php7.2-intl php7.2-json php7.2-ldap php7.2-imagick php-ssh2 php7.2-recode php7.2-tidy php7.2-xmlrpc php7.2-mbstring php7.2-curl php7.2-redis php7.2-zip php7.2-sqlite3

Apache

默认安装和配置就好,默认网站存放位置/var/www/html

sudo apt install apache2 libapache2-mod-php7.2

mariadb(mysql亦可)

数据库服务,默认配置

sudo apt install mariadb-server

配置root用户密码

mysql
UPDATE mysql.user SET password = PASSWORD('newpassword') WHERE USER = 'root';
FLUSH PRIVILEGES;

完成后重启数据库

sudo service mysql restart

Redis

缓存服务,默认配置

sudo apt install redis

nextcloud安装

安装nextcloud的方式有很多种,都是很简单的。值得注意的是,目前离线下载插件只支持到13.0版本,更新的14和最新15的版本尚未支持。

一键安装脚本

官网提供一键安装脚本
创建文件夹

sudo mkdir /var/www/nextcloud

修改权限

sudo chown -R www-data:www-data /var/www/nextcloud

进入文件夹

cd /var/www/nextcloud

下载脚本

sudo -u www-data wget https://download.nextcloud.com/server/installer/setup-nextcloud.php

执行脚本

sudo -u www-data php setup-nextcloud.php

等待下载安装完成,过程中会选择安装路径 按.选择当前(/var/www/nextcloud)即可。
配置apache主页

sudo vim /etc/apache2/sites-enabled/000-default.conf

将其中的DocumentRoot的值改为/var/www/nextcloud
提醒: vim编辑器,非编辑状态hjkl控制上下左右,i进入编辑状态,esc推出编辑状态,非编辑状态下:wq保存退出,非编辑状态下:q!不保存退出,不了解的同学建议搜索vim相关快捷键和操作。
配置完成,重启apache

sudo service apache2 restart

即可打开localhost,观察结果并进行后续操作。

snap安装

该安装方式不需要手动安装依赖软件

sudo snap install nextcloud

等待安装结束即可打开localhost,观察结果并进行后续操作。

其他

手动安装和虚拟机安装以及docker方式在此不再赘述。

nextcloud配置

安装

如果软件包安装顺利,那么这时在win10下打开网页localhost,应该会出现首次运行的配置界面。
填入用户名密码,数据库选择mysql/mariadb,数据库地址localhost:3306,数据库名nextcloud。
选择数据存放位置,比如/home/lidemingzi/yunpan,在命令行创建目录并配置该目录权限

sudo mkdir /home/lidemingzi/yunpan
sudo chown -R www-data:www-data /home/lidemingzi/yunpan
sudo chmod -R 0770 /home/lidemingzi/yunpan

回到网页,确认安装,等待安装结束就会进入nextcloud云盘界面

优化

进入程序目录,编辑配置文件

cd /var/www/nextcloud
sudo vim config/config.php

在array格式的配置里,加入redis的配置

'memcache.local' => 'OCMemcacheRedis',
'redis' => array (
'host' => 'localhost',
'port' => 6379,
),
'memcache.locking' => 'OCMemcacheRedis',

配置apache,允许路由转发和设置header

sudo cp /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled/headers.load
sudo cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

开发apache配置文件

sudo vim /etc/apache2/sites-enabled/000-default.conf

在VirtualHost内添加配置


AllowOverride All

编辑/var/www/nextcloud/.user.ini

sudo vim /var/www/nextcloud/.user.ini

修改:

upload_max_filesize=16G
post_max_size=16G
memory_limit=513M

并新增

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

upload_max_filesize和post_max_size是配置上传文件最大限制。
复制一份到php的配置目录

sudo cp .user.ini /etc/php/7.2/apache2/conf.d/user.ini

重启apache即可

配置外网访问

此处采用云服务器vps转发的方式
采用的是frp一款很方便的开源的局域网穿透工具

VPS服务器端

下载对应系统的release包并解压,修改frps.ini

[common]
bind_port = 7000
vhost_http_port = 8080

配置成自启动,以ubuntu为例,新建配置文件

sudo vim /lib/systemd/system/frps.service

写入以下内容

[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#启动服务的命令(此处写你的abc的实际安装目录)
ExecStart=/your/path/frps -c /your/path/frps.ini
[Install]
WantedBy=multi-user.target

配置完成后,可通过 "你的vps域名:8080" 方式访问你本地的nextcloud,当然也可以配置80端口,或者通过配置nginx等的端口转发功能把子域名的80端口转发到8080上。
以nginx为例,在配置文件中http节点内添加配置

server {
listen 80;
server_name cloud.lideyuming.com;

location / {
proxy_pass http://cloud.lideyuming.com:8080;
}
}

本地电脑Win10

下载windows的release包,解压至合适的目录,修改配置文件frpc.ini,x.x.x.x为你的vps地址或者域名

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[web]
type = http
local_port = 80
custom_domains = www.你要绑定的域名.com

配置在windows下自启动
下载release包解压
拷贝winsw.exe(可能不叫这个名字)到frpc同目录,新建同名的winsw.xml文件,写入



FRPC

frpc client (powered by WinSW)

内网穿透工具

frpc.exe
-c frpc.ini
reset

打开windows的cmd,进入winsw的所在目录, 运行

winsw.exe install

安装完成后,在任务管理器的服务标签,找到FRPC服务,并启动。

打开防火墙的80和相关端口

本地电脑WSL

修改配置文件

sudo vim /var/www/nextcloud/config/config.php

在trusted_domains的配置项array中加入你绑定的域名(如果有的话),重启apache

数据迁移和备份

数据迁移

不推荐直接在系统层面对文件进行操作。
如需将旧文件迁移进来,将文件移动到数据存放位置,比如/home/lidemingzi/yunpan/lidemingzi/files,然后进入安装目录执行nextcloud自带的扫描程序,比如:

cd /var/www/nextcloud
sudo -u www-data php occ files:scan --all

备份

nextcloud商店有ftp支持插件,自身也支持webdav访问,在另一台电脑上使用GoodSync等程序定期备份即可。

一些坑

自启动

win10的WSL不能跟随系统启动,需要手动添加启动脚本
新建一个文本文件,改名为wslstartup.bat,里面写入如下内容

powershell.exe -WindowStyle Hidden -c "bash /init.sh "

打开运行,输入shell:startup回车,打开windows启动文件夹,将创建的批处理脚本移动进去
在WSL命令行下,创建init文件,写入以下内容,123456替换为你的密码

sudo vim /init.sh

写入:

#!/bin/bash
echo "123456" | sudo -S /usr/sbin/service mysql start
echo "123456" | sudo -S /usr/sbin/service apache2 start
echo "123456" | sudo -S /usr/sbin/service redis-server start

配置权限

sudo chmod 755 /init.sh
sudo chown lidemingzi:lidemingzi /init.sh

挂载的windows盘符的权限问题

在WSL中,win10的c盘d盘,自动挂载在了/mnt/c /mnt/d下,但是这些文件和文件夹的权限都是1001并且无法通过chown和chmod更改,因此需要使用drvfsf方法重新挂载

sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata,uid=1000,gid=1000,umask=22,fmask=11

为了方便,把如下脚本加入到/init.sh中,WSL启动时就执行

echo "123456" | sudo -S /bin/umount /mnt/c
echo "123456" | sudo -S /bin/umount /mnt/d
echo "123456" | sudo -S /bin/mount -t drvfs C: /mnt/c -o metadata,uid=1000,gid=1000,umask=22,fmask=11
echo "123456" | sudo -S /bin/mount -t drvfs P: /mnt/d -o metadata,uid=1001,gid=1001,umask=22,fmask=11

完成

至此,旧电脑物尽其用,nextcloud的搭建基本完成,其官网提供桌面和手机客户端,同时有很多插件可供选择,可以使其更好用。

运行效果运行效果

未经授权,不得转载
展开 收起

Apple Mac mini台式电脑 (Core i5 处理器/4GB内存/500G存储 MGEM2CH/A)

Apple Mac mini台式电脑 (Core i5 处理器/4GB内存/500G存储 MGEM2CH/A)

¥3548.00 去购买

YottaMaster 移动硬盘盒底座2.5/3.5英寸硬盘座通用USB3.0玩客云台式笔记本外置固态硬盘盒子 黑K100-U3

YottaMaster 移动硬盘盒底座2.5/3.5英寸硬盘座通用USB3.0玩客云台式笔记本外置固态硬盘盒子 黑K100-U3

¥69.00

希捷(SEAGATE)酷鱼系列 4TB 5400转256M SATA6Gb/s 台式机机械硬盘(ST4000DM004)

希捷(SEAGATE)酷鱼系列 4TB 5400转256M SATA6Gb/s 台式机机械硬盘(ST4000DM004)

¥679.00 去购买

SEAGATE 希捷 酷鱼BarraCuda系列 3.5英寸台式机硬盘 4TB 256MB(5400rpm、SMR)ST4000DM004

SEAGATE 希捷 酷鱼BarraCuda系列 3.5英寸台式机硬盘 4TB 256MB(5400rpm、SMR)ST4000DM004

¥508.97

Apple 苹果 Mac mini 台式电脑 Core i5 1.4GHz 4GB 500G

Apple 苹果 Mac mini 台式电脑 Core i5 1.4GHz 4GB 500G

¥3548.00

SEAGATE 希捷 酷狼PRO系列 18TB 7200转256M SATA 网络存储(NAS)硬盘(ST18000NE000)

SEAGATE 希捷 酷狼PRO系列 18TB 7200转256M SATA 网络存储(NAS)硬盘(ST18000NE000)

4999元起

SEAGATE 希捷 STCT300 2盘位 NAS网络存储 (无内置硬盘)

SEAGATE 希捷 STCT300 2盘位 NAS网络存储 (无内置硬盘)

1699元起

Synology 群晖 DS220J 双盘位NAS (RTD1296、512MB)

Synology 群晖 DS220J 双盘位NAS (RTD1296、512MB)

901.55元起

QNAP 威联通 TS-551 NAS网络存储器 五盘位 无内置硬盘 黑色

QNAP 威联通 TS-551 NAS网络存储器 五盘位 无内置硬盘 黑色

1539元起

Lexar 雷克沙 时光机M1 个人云存储 NAS (LNWMB1N-RNBNC、1GB、无硬盘)

Lexar 雷克沙 时光机M1 个人云存储 NAS (LNWMB1N-RNBNC、1GB、无硬盘)

335.67元起

ZSpace 极空间 Z4 4盘位 NAS存储 钛金灰(J4125 4GB 无盘)

ZSpace 极空间 Z4 4盘位 NAS存储 钛金灰(J4125 4GB 无盘)

2599元起

Synology 群晖 DS220+ 双盘位NAS网络存储服务器 黑色

Synology 群晖 DS220+ 双盘位NAS网络存储服务器 黑色

2770元起

Synology 群晖 DS420+ 四盘位NAS网络存储服务器 黑色

Synology 群晖 DS420+ 四盘位NAS网络存储服务器 黑色

3980元起

威联通(QNAP)TS-212P3 四核双盘位NAS网络存储器 白色 标配无硬盘

威联通(QNAP)TS-212P3 四核双盘位NAS网络存储器 白色 标配无硬盘

879元起

HIKVISION 海康威视 单盘位NAS存储 黑色 (H99、12TB、无硬盘)

HIKVISION 海康威视 单盘位NAS存储 黑色 (H99、12TB、无硬盘)

228元起

HIKVISION 海康威视 H200 双盘位NAS网络存储服务器(4T版)

HIKVISION 海康威视 H200 双盘位NAS网络存储服务器(4T版)

1399元起

Synology 群晖 DS1621+ 六盘位NAS(锐龙4核、4G、无硬盘)

Synology 群晖 DS1621+ 六盘位NAS(锐龙4核、4G、无硬盘)

7200元起

Synology 群晖 DS420j 4盘位NAS (RTD1296 、1GB)

Synology 群晖 DS420j 4盘位NAS (RTD1296 、1GB)

2580元起

Lenovo 联想 A1 L-SSC101-31 个人云存储 3T 樱花白

Lenovo 联想 A1 L-SSC101-31 个人云存储 3T 樱花白

949元起

Lenovo 联想 X1 五盘位NAS网络存储服务器 曜石金

Lenovo 联想 X1 五盘位NAS网络存储服务器 曜石金

2369元起

Synology 群晖 DS120j 单盘位NAS (A3720、512MB)

Synology 群晖 DS120j 单盘位NAS (A3720、512MB)

799元起

文中相关商品

京东 Apple 苹果 Mac mini 台式电脑  Core i5  1.4GHz 4GB 500G
京东 Yottamaster K100-U3 USB3.0 硬盘底座
亚马逊中国 SEAGATE 希捷 酷鱼BarraCuda系列 3.5英寸台式机硬盘 4TB 256MB(5400rpm、SMR)ST4000DM004
31评论

发表评论请 登录
  • 最新
  • 最热
评论举报

请选择举报理由

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
295
扫一下,分享更方便,购买更轻松