利用阿里云服务器+oss搭建大容量的个人云盘
说到云盘,大家第一时间应该想到的就是百度云,但是对于非会员的用户,它会对你进行及其恶心的限速,虽然对于会员来说没有这一限制,但是百度云盘毕竟是别人家的东西,数据隐私难免会被泄露出去,这时候我们就需要一个自己的私人云盘了。
如标题,服务器我选择的是阿里云,系统我选择的是centos7.5,而一般云服务器的存储空间都不是很大,这里我额外又购买了阿里云的oss对象储存服务。
云盘系统的话我则是选择的next cloud这套开源的云盘系统,这里附上这个项目的官网地址:nextcloud
1、搭建网站运行环境
做好准备,首先需要在云服务器上搭建一个网站可以正常运行的运行环境,我选择的是lnmp环境,用的lnmp一键脚本,省去麻烦,lnmp一键脚本官网地址:lnmp
或者你也可以直接输入下面的这句命令
1 |
wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp |
Mysql本版我选择的是5.7,需要注意的是MySQL 5.6,5.7及MariaDB 10必须在1G以上内存的更高配置上才能选择!
然后PHP的版本建议选择7.0以上,整个lnmp环境的安装时间耗时较长,大概在20-60分钟不等。
安装完成后如果显示Nginx: OK,MySQL: OK,PHP: OK,如下图所示:
并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并提示安装使用的时间及Install lnmp V1.5 completed! enjoy it.的话,说明已经安装成功。
某些系统可能会一直卡在Install lnmp V1.5 completed! enjoy it.不自动退出,可以按Ctrl+c退出。
这时当你在浏览器输入你服务器IP的时候则会出现如下显示:
2、安装软件程序
lnmp脚本搭建好的环境,网站默认运行目录是存放在/home/wwwroot目录下的,这个你可以在添加网站指定的时候自行修改
2-1、添加网站指定
1 |
lnmp vhost add |
这一步你也可以放到网站程序安装完成以后
2-2、安装网站程序
如果在这之前你还没有添加网站指定,你需要在/home/wwwroot目录先创建一个目录
1 2 |
cd /home/wwwroot mkdir aaa #aaa改为你自己的网站名或者你自己想要的,网站指定目录时两者名称要一致 |
进到刚创建好的目录里下载网站程序并解压
1 2 3 |
wget https://download.nextcloud.com/server/releases/nextcloud-14.0.4.zip unzip nextcloud-14.0.4.zip mv /home/wwroot/#你创建的网站目录名#/nextcloud/* /home/wwroot/#你创建的网站目录名# |
2-3、修改用户组
做到2-2那步其实就已经完成了,通过你绑定的域名就可以访问网站了,但这时你通过域名访问网站时你会发现网页提示“服务器内部错误”,遇到这个问题一般都是权限问题,但并不是读写权限,而是用户权限
我们在wwwroot目录下 输入ls -l #你网站目录名# 就可以看到用户组了,这时你会发现此时的用户和用户组,都是root(不同的安装方式用户权限可能不同,如果查看的用户组非root,可以忽略)
遇到这种情况,我们可以通过下面这条命令进行修改,将root用户组改为www
1 |
chown -R www:www #你的网站目录# |
修改完成后再次用ls -l #你网站目录名# 查看,发现此时的用户组都已经改为了www
这时我们再次通过域名访问网站一切就正常了
3、挂载阿里云oss
3-1、挂载oss
根据阿里云官方文档,我们需要用到官方的ossfs插件,注意,此插件只适用linux系统 官方文档
- ossfs安装方法
对于Ubuntu,安装命令为:
1 2 3 |
apt-get update apt-get install gdebi-core gdebi your_ossfs_package |
对于CentOS6.5及以上,安装命令为:
1 |
yum localinstall your_ossfs_package |
对于CentOS5,安装命令为:
1 |
yum localinstall your_ossfs_package --nogpgcheck |
- 使用方法
1 2 |
echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs |
将OSS bucket 挂载到指定目录。
1 |
ossfs my-bucket my-mount-point -ourl=my-oss-endpoint |
示例:
将my-bucket
这个bucket挂载到/tmp/ossfs
目录下,OSS endpoint是http://oss-cn-hangzhou.aliyuncs.com
1 |
ossfs my-bucket /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com |
如果您使用从阿里云购买的云服务器(ECS)来提供ossfs服务,您可以使用内网域名,在这个示例中您可以将OSS endpoint 改为 oss-cn-hangzhou-internal.aliyuncs.com
,这样可以节省带宽方面的费用。OSS的内网域名请参考访问域名和数据中心。
注意:直接通过这条命令挂载的用户组为root,如果你是挂载到了nextcloud的数据目录data目录下,你需要将用户组修改为www,同时还需要将权限也修改为770,挂载时需将命令修改如下:
1 |
ossfs my-bucket /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com -o uid=1001 -o gid=1001 -o umask=007 -o allow_other |
//如果你想挂载下来的目录属于某个用户,则可以设置uid和gid参数。user_id和group_id是用户的uid和gid参数(通过id user_name命令即可查看)
//上面的umask是用来设置挂载下来的文件夹及文件的权限的。比如如果你想挂载下的文件夹的权限为770,你就设置umask=007,也即777-770。一定不能直接设置umask=770,而是要用777减去你想赋予的权限,也即777-770!
//allow_other是为了允许其他用户访问挂载文件夹
注意:挂载时,你所要挂载的目录一定要是空的,里面没有任何文件,否则将会挂载不上
3-2、设置开机自动挂载
1 |
cd /etc/init.d/ |
新建ossfs文件,写入信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#! /bin/bash # # ossfs Automount Aliyun OSS Bucket in the specified direcotry. # # chkconfig: 2345 90 10 # description: Activates/Deactivates ossfs configured to start at boot time. ossfs my-bucket /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com -o uid=1001 -o gid=1001 -o umask=007 -o allow_other |
保存退出
之后执行命令:
1 |
chmod a+x /etc/init.d/ossfs |
把新建立的ossfs脚本赋予可执行权限。
执行命令:
1 |
chkconfig ossfs on |
挂载完毕后利用df -h命令查看会发现一个256T的容量,因为oss最大支持容量为256T
3-3、卸载bucket
1 |
fusermount -u /tmp/ossfs |
至此,利用阿里云服务器+oss搭建的私人云盘就搭好了