企业网站建设     RSS订阅网站建设运营,网络营销,网络推广,草根网络创业者
你的位置:首页 » 网站建设 » 正文

教你快速架设自己的私有云盘

选择字号: 超大 标准 admin 发布于2019-01-07 属于 网站建设 栏目  0个评论 35人浏览

么多年来,总有些东西你是不舍得删除,或是有些你不想被人知道,有的网盘已经倒了,也许还有些你信不过他们,但是你没得选。哈,又或者你觉得无所谓,其实架云盘,很容易。我有个推荐,它用起来非常好,只要你随便花一点时间,它一定可以让你满意。

我们开门见山,今天的主角是Nextcloud,著名开源云盘解决方案。

QQ截图20190107153820.jpg

桌面客户端支持Windows/macOS/Linux

QQ截图20190107153853.jpg

移动端iOS和Android自不必说,连Windows mobile都有支持哦

QQ截图20190107153913.jpg

安装说起来也蛮简单的,说到底它也不过是个PHP的网站而已,所以重点就是准备好数据库和PHP的环境。数据库方面Nextcloud支持MariaDB(MySQL)和sqlite,特别是后者,对于低配置环境相当友好。PHP方面要求7.0以上,这稍微有点坑,因为某些环境——我就直说了吧,Redhat/CentOS系——用yum命令安装默认只有PHP5,简直让人费解,8102年都已经快要过去了(我很怀念它),这已经“稳定”到不思进取了。边上的Debian/Ubuntu系也别笑,用apt命令装出来的MariaDB默认phpMyAdmin无法登陆,真是没一个让人省心的。

哦对了,我们还没说硬件环境呢。其实不光是废旧电脑,各种智能路由器、NAS,以及树莓派,只要是跑Linux核心、能接硬盘的设备都可以拿来做主机。你要做的只是试一下你的设备是用yum还是apt做包管理就行了。如果最终选择使用配置较低的设备,建议选择sqlite作为数据库,性能会稍微差一点但是个人使用还是没问题的。

下面我用apt为例,带着大家走一下流程。大家看看就好,完全无需亲自动手,别忘了我们今天的主题是“一键架设”啊,最后自然是会有个简单的方式搞定一切。只不过中间有些(实在无法自动化的)步骤你得知道该如何响应。

首先是HTTP服务,我们用Apache,后续的配置会比Nginx简单一点。

sudo apt-get install -y apache2

然后是数据库,这里我们把MariaDB和sqlite都装上

sudo apt-get install -y mariadb-server sqlite

不过MariaDB并不是装上就完了,还得稍微做一点初始化的工作

sudo mysql_secure_installation

首先会要求你输入当前数据库的root密码,刚刚装好的话自然是空的,直接回车即可。

Enter current password for root (enter for none):

然后会问你要不要修改root密码,

Change the root password? [Y/n]

要不要移除匿名用户,

Remove anonymous users? [Y/n]

禁止root远程登录,

Disallow root login remotely? [Y/n]

移除测试用数据库,

Remove test database and access to it? [Y/n]

以及更新权限表,

Reload privilege tables now? [Y/n]

除了修改root密码需要重复输入两次新密码,其他的放心一路默认回车便是。

接着是PHP以及Nextcloud必需的模块

sudo apt-get install -y libapache2-mod-php7.0 php7.0-gd php7.0-json php7.0-curl php7.0-mbstring php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip php7.0-mysql php7.0-sqlite

下面是安装phpMyAdmin,

sudo apt-get install -y phpmyadmin

过程中会有两个对话框,第一个请选择apache2

QQ截图20190107153930.jpg

第二个则选no,一般人用默认配置就挺好

QQ截图20190107153948.jpg

等安装完成,作为一个懒人我选择把phpMyAdmin的目录链接到www根目录下,而不是写Apache配置文件。

sudo ln -s /usr/share/phpmyadmin /var/www/html

如果这时候你就急着用浏览器打开http://设备ip/phpmyadmin就会发现无论如何登录不了,这就是MariaDB的坑了,解决如下

sudo mysql -u root -p #登录MySQL
update mysql.user set plugin='mysql_native_password';flush privileges; #修改连接数据库方式
exit #退出mysql

现在就可以打开phpMyAdmin了。既然现在已经打开了phpMyAdmin,就顺便给我们的Nextcloud网盘新建一个用户和相应的数据库好了,再次身为懒人我选择直接新建用户同时创建同名空数据库。

QQ截图20190107154008.jpg

环境准备完毕,接下来的步骤自然就是安装Nextcloud的代码。目前的最新稳定版本是14.0.4,下载并解压,移动到适当的位置去。

wget download.nextcloud.com/
tar -jxvf nextcloud-14.0.4.tar.bz2
sudo mv nextcloud /var/www/

悄悄的说一句,Nextcloud官网是提供所有历史版本的,所以不用担心我们的一键安装脚本里的下载链接会失效。

所有一切准备就绪,只剩打开浏览器完成最后的安装了,这一步其实相当简单

QQ截图20190107154025.jpg
QQ截图20190107154043.jpg

最上方箭头所指的“数据目录”其实是将来保存网盘文件的位置,和数据库没有一毛钱关系。

中间“配置数据库”那里可以选择是用sqlite还是MariaDB。我们上面说过如果设备配置较低,不想跑数据库进程,就用sqlite。

最后点“安装完成”,稍等那么几分钟(视设备性能而定)就进入你自己的网盘了。开不开心?

QQ截图20190107154102.jpg

欢迎页里会提供各种客户端的下载,不要错过哦。以及提一句,iOS客户端可能会出现一切都正确但就是无法登陆的情况,这时候请在登录界面下方选择“旧的登录方式”。

安装完成了,作为一个负责任的管理员进入一个新系统第一件事是什么?当然是检查更新了。

QQ截图20190107154118.jpg
QQ截图20190107154141.jpg
QQ截图20190107154203.jpg

一路沿箭头走过来就可以看到版本更新情况了。不过你更有可能先注意到这个

QQ截图20190107154224.jpg

Emmm,只是警告而已,又不是错误,可以忽略掉。当然也可以接受强烈建议,设置一下HTTPS,反正Let's encrypt提供免费证书,why not?

且慢!你知道申请证书的(划)四个(掉)步骤么?关键是两点:一你要有个已经正常工作的域名;二这个免费证书每90天要更新一次。

域名其实也好办,如果你是高贵的vps主机用户那你肯定有正常工作的域名了。不过既然是私人云盘大概率是放在家里,那么请先看看你的路由器是不是支持动态域名。比如我这里是这样的:

QQ截图20190107154242.jpg

如果你的路由器不支持也没关系,我们有万能的双手。我是选择了no-ip的服务,它家提供三个免费的动态域名,而且Linux的客户端用起来也算方便。首先去noip.com/注册个用户并且选一个顺眼的域名,这我就不详细说明了,然后安装负责自动更新域名ip的客户端。

wget no-ip.com/client/linux/
tar vzxf noip-duc-linux.tar.gz
cd noip-2.1.9-1
make
sudo make install

QQ截图20190107154257.jpg

这里是让你选择Internet连接使用的网卡,这个要根据你自己的情况而定。

接下来会让你输入你的no-ip用户信息

Please enter the login/email string for no-ip.com
Please enter the password for user

没说的,该怎样就怎样

Please enter an update interval:[30] #更新间隔
Do you wish to run something at successful update?[N] (y/N) #更新ip成功后要不要执行什么命令

这两项都默认回车即可。如果你觉得配置的不妥,可以

sudo /usr/local/bin/noip2 -C #重新配置

不过这还有个小问题,客户端没有开机自动启动,比较简单的办法是编辑/etc/rc.local,加入这么一行

sudo /usr/local/bin/noip2

好了,域名搞定了接下来还要在路由器上打开端口映射,这样来自公网的访问才能转到内网的设备,我这里是这样的

QQ截图20190107154314.jpg

服务名称填个自己喜欢的,Source IP(来源IP)不用填,端口范围80,本地IP要填上你的设备的IP,本地端口80,协议TCP。添加之后再来一遍,不过这次端口是443,也就是HTTPS的端口。如果你决定将来只用其中一个端口,建议使用443,毕竟来都来了。

这里还有一个需要注意的地方是“本地IP”这栏,为了确保你的设备永远是这一个内网ip,最好指定一下DHCP的固定分配地址,类似下图。当然你要想在设备上手工配置地址也行。

QQ截图20190107154328.jpg

搞定这一切就先用浏览器访问你的动态域名看看是不是正常工作了,如果一切正常我们再来下一步,申请域名证书。

wget dl.eff.org/certbot-auto
sudo chmod a+x certbot-auto
sudo mv certbot-auto /usr/local/bin/
/usr/local/bin/certbot-auto certonly --webroot -w /var/www/html -d YOURDOMAIN.ddns.net

如果一切顺利,/etc/letsencrypt/live/YOURDOMAIN.ddns.net下就会出现你的证书文件,如果出错了屏幕上会有提示,就按提示来处理吧。基本上最大的出错可能性就是域名配置不正确,所以才要先试试域名正常工作了没有啊。

确认得到了证书,就可以加到Apache的配置中去了。不过因为目录权限的问题,如果你想看的自己的证书必须用sudo ls,千万别看见ls: cannot open directory就以为证书申请不成功

sudo nano /etc/apache2/sites-enabled/default-ssl.conf
SSLCertificateFile /etc/letsencrypt/live/YOURDOMAIN.ddns.net/ful
SSLCertificateKeyFile /etc/letsencrypt/live/YOURDOMAIN.ddns.net/pri
#找到上面两行,如上修改
sudo service apache2 restart #重启Apache

现在就可以用YOURDOMAIN来访问你自己的网盘了。

但是,见鬼的但是,刚刚我们说过免费证书每90天要续期一次,那么如何续期呢?我的做法是加了个计划任务,每周日凌晨3点检查一下证书是不是要更新。

crontab -e #每周日凌晨3点检查证书更新,更新完成后重启apache
* 3 * * 0 /usr/local/bin/certbot-auto renew --quiet --post-hook "sudo service apache2 restart"

放心,根据Let's encrypt官方的说明,没有指定强制更新的话,证书只会在临近到期前几天才会被更新,而这个检查频率也不被认为是过于频繁。

至此整个流程介绍完毕,下面是具体的脚本,insNextcloudCentOS是用于yum安装的系统,而insNextcloudDebian是apt-get安装的系统,自带usage说明。除了不得不交互的地方,其他包括下载文件,修改配置,添加计划任务等等全都自带完成,可以说是相当省心了。

insNextcloud

需要特别说明的是,脚本没包括动态域名那部分的自动安装,因为noip没给广告费。好吧其实是因为我觉得现在的路由器都自带动态域名支持了,而且要兼容太多服务商真叫人头秃。

以上。

PS

有人提了这么个问题,/var/www/在系统卷上,存储空间不足以支撑云盘怎么办?这根本不叫事儿!如果没有用LVM,又不想把一整个硬盘mount到/var/www/nextcloud/data下,也可以ln -s /media/HUGEDISK/wwwdata /var/www/nextcloud/data一下,亲测没毛病。不过要记得把已有的数据迁移过去。


本文来自:https://zhuanlan.zhihu.com/p/51930074

聚网源码淘宝店

标签:私有云搭建,搭建云盘系统,

亲!有什么想法呢?2018-12-12新装,请您点赞
  • 流泪

    0

  • 打酱油

    0

  • 开心

    0

  • 点赞

    0

  • 差评

    0

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门文章
热评文章
    | |
随机文章
扫一扫,加我为微信好友 加我为微信好友