基于OBS搭建ownCloud私人云盘
1 方案概述
1.1 背景说明
近来国内各大网盘频繁关停,大家都被迫迁移文件,很多人在寻求其它的解决方法。其中一种方案,就是利用OBS的海量、安全、低成本的数据存储能力,搭建ownCloud私人云盘,实现无限海量空间存储、共享,以及多平台同步和多形式访问。
1.2 方案说明
ownCloud私人云盘在搭建过程中,OBS桶有如下3种形式挂载在ownCloud中:
Ø 方法一:通过goofys工具,将OBS桶挂载在服务器ownCloud数据目录所在的某个文件夹;
Ø 方法二:通过obsfs工具,将OBS posix桶挂载在服务器ownCloud数据目录所在的某个文件夹;
Ø 方法三:ownCloud云盘搭建好以后,在配置网页中添加外部存储,挂载OBS桶。
前两种方式相较于第三种方式,不会暴露挂载的外部存储信息,也可防止其他登录ownCloud平台的人员查看或修改此信息。本文将详细讲解这3种挂载方式。
2 效果展示
基于OBS搭建ownCloud私人云盘搭建好以后,访问ownCloud的登录页面(http:// IP-ownCloud/owncloud/index.php/login,其中IP-ownCloud为ownCloud所在的服务器IP地址),输入搭建ownCloud时设置的用户名和密码。
图2.1 ownCloud的登录页面
登录成功以后,进入ownCloud的文件首页,可以对所有文件及文件夹,进行上传、下载、删除、分享等操作。图2.2中,bucket-obsfs文件夹是用方法一挂载的OBS桶、bucket-goofys文件夹是用方法二挂载的OBS语义桶、OBS文件夹是用方法三在网页设置页面挂载的OBS桶,3个桶均可正常进行文件操作。
图2.2 ownCloud的文件首页
3 搭建前准备
在开始搭建ownCloud云盘前需要准备1台linux主机、2个OBS桶、下载goofys和obsfs工具。
表3.1 工具准备
工具准备 | 实验中用到的数据描述 | 参考信息 |
1台linux主机 | 操作系统:CentOS 7.5 64bit | 华为云ECS申请链接:https://www.huaweicloud.cn/product/ecs.html |
2个OBS桶 | 普通桶:obs-files-zoudanhong | OBS桶申请链接:https://www.huaweicloud.cn/product/obs.html |
goofys工具 | 命令:goofys --endpoint 区域终端节点地址 --region 区域 桶名 本地挂载目录 | 下载和安装指导链接:https://bbs.huaweicloud.cn/forum/thread-1037-1-1.html |
obsfs工具 | 命令:./obsfs 桶名 本地挂载目录 -o url=区域终端节点地址 -o endpoint=区域 挂载参数 | 下载和安装指导链接:https://bbs.huaweicloud.cn/forum/thread-14106-1-1.html |
4 具体搭建流程
4.1 搭建LAMP平台
在linux主机中执行如下命令,安装LAMP架构。
[root@ecs-s3 ~]# yum install -y httpd php php-mysql mariadb-server mariadb sqlite php-dom php-mbstring php-gd php-pdo
图4.1.1 搭建LAMP平台
开启LAMP相关服务。
[root@ecs-s3 ~]# systemctl start httpd.service
[root@ecs-s3 ~]# systemctl start mariadb.service
图4.2 开启LAMP相关服务
4.2 下载安装ownCloud
从官方网站(https://owncloud.org/download/)下载最新的安装包(本示例为10.0.10),下载完毕后解压源码包,并移动到网站根目录下。
图4.2.1 ownCloud安装包下载官网
[root@ecs-s3 ~]# wget https://download.owncloud.org/community/owncloud-10.0.10.tar.bz2
[root@ecs-s3 ~]# tar -xvf owncloud-10.0.10.tar.bz2
[root@ecs-s3 ~]# cp -r owncloud /var/www/html/ #移到网站默认路径
网站数据默认存放路径为/var/www/html/owncloud/data/root/files,在这里我们拷贝了一些文件到此目录,并在此目录中新建两个目录作为OBS桶的挂载目录(bucket-goofys、bucket-obsfs)。
[root@ecs-s3 files]# ls
Documents owncloud2 ownCloud Manual.pdf owncloud测试1.txt Photos bucket-goofys bucket-obsfs
[root@ecs-s3 files]# pwd
/var/www/html/owncloud/data/root/files
[root@ecs-s3 ~]# chown -R apache.apache /var/www/html/owncloud
注:若解压遇到报错“tar (child): lbzip2: Cannot exec: No such file or directory”,可能是没有安装bz2执行yum -y install bzip2安装即可。
4.3 方法一:通过goofys工具挂载OBS桶
goofys工具的使用过程,可以概述为:安装golang---->安装goofys依赖包--->安装goofys---->挂载OBS桶。(下载和安装指导链接:https://bbs.huaweicloud.cn/forum/thread-1037-1-1.html)
4.3.1 安装golang
[root@ecs-s3 ~]# yum -y install golang
图4.3.1 golang安装
安装完golang后,在/etc/profile中配置环境变量(根据实际情况填写)。
图4.3.2 golang环境变量配置
重新加载 profile 文件。
[root@ecs-s3 ~]# source /etc/profile
测试安装是否成功,直接执行 go version,若返回了版本信息则安装成功。
图4.3.3 验证golang是否安装成功
4.3.2 安装goofys依赖包
查看系统是否已经安装了fuse,若未安装,执行如下命令。
[root@ecs-s3 ~]# yum -y install fuse
4.3.3 安装goofys
将已下载的编译好的goofys放到$GOBIN目录下,加上执行权限后(chmod +x goofys)验证是否安装成功,执行goofys --version可以显示版本信息证明成功。
图4.3.4 验证goofys是否安装成功
4.3.4 挂载OBS桶
首先配置OBS认证密钥,创建/root/.aws/credentials文件,将OBS帐户所在的AK\SK按如下格式写入文件中。
vi root/.aws/credentials //可以使用一个比较不易访问的目录保证安全性
[default]
aws_access_key_id = AK
aws_secret_access_key = SK
执行图4.3.5中的命令,将OBS桶obs-files-zoudanhong,挂载在ownCloud网站数据目录下创建的bucket-goofys目录。其中uid 48和gid 48分别指apahce用户id和apahce用户组id。
之后使用df –h查看是否已经挂载上。
图4.3.5 goofys挂载OBS桶
4.4 方法二:通过obsfs工具挂载OBS桶
将obsfs工具拷贝到指定目录解压,这里以 /home目录为例,按照指导文档进行配置。(下载和安装指导链接:https://bbs.huaweicloud.cn/forum/thread-14106-1-1.html)
首先准备好密钥文件,将OBS将帐户访问密钥写入全局默认文件“/etc/passwd-s3fs”。
echo AK:SK > /etc/passwd-s3fs
执行图4.4.1中命令,将OBS桶obsftpzoudanhong,挂载在ownCloud网站数据目录下创建的bucket-obsfs目录。其中uid 48和gid 48分别指apahce用户id和apahce用户组id。
之后使用df –h查看是否已经挂载上。
图4.4.1 obsfs挂载OBS桶
4.5 创建ownCloud的数据库
初始化数据库:
[root@ecs-s3 ~]# mysql_secure_installation #设置root密码,之后全部选择y
图4.5.1 创建ownCloud数据库
创建 owncloud 用户和权限:
[root@ecs-s3 ~]# mysql -u root –p #输入密码
MariaDB [(none)]> create database owncloud;
MariaDB [(none)]> create user 'owncloud'@'localhost' identified by 'somedatabasepassword';
MariaDB [(none)]> grant all on owncloud.* to 'owncloud'@'localhost';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit;
图4.5.2 创建 owncloud 用户和权限
4.6 【可选】升级 PHP 版本
若本次部署的owncloud的php版本低于PHP 5.6.0,访问ownCloud的登录页面时会报错,需要对PHP版本进行升级。
图4.6.1 php版本过低ownCloud登录报错
4.6.1 添加第三方源
检查当前PHP的安装包。
[root@ecs-s3 ~]# yum list installed | grep php
移除当前PHP的安装包,否则容易起冲突。
[root@ecs-s3 ~]# yum remove php*
由于默认的YUM源无法升级PHP,所以需要添加第三方的YUM源。
[root@ecs-s3 ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm #更新源
[root@ecs-s3 ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
4.6.2 安装新版本 PHP(7.2)
[root@ecs-s3 ~]# yum install -y php72w php72w-opcache php72w-xml php72w-mcrypt php72w-
gd php72w-devel php72w-mysql php72w-intl php72w-mbstring
4.6.3 验证 PHP 版本
[root@ecs-s3 ~]# php –v
图4.6.2 验证php新版本是否安装成功
4.6.4 重启 apache
[root@ecs-s3 ~]# systemctl restart httpd.service
此时重新刷新ownCloud的登录界面,界面已经能正常显示。
4.7 登录 ownCloud
访问ownCloud的登录页面(http:// IP-ownCloud/owncloud/index.php/login,其中IP-ownCloud为ownCloud所在的服务器IP地址),输入搭建ownCloud时设置的用户名和密码。
图4.7.1 ownCloud的登录页面
登录成功以后,进入ownCloud的文件首页,可以对所有文件及文件夹,进行上传、下载、删除、分享等操作。图2中,bucket-obsfs文件夹是用方法一挂载的OBS桶、bucket-goofys文件夹是用方法二挂载的OBS语义桶、OBS文件夹是方法三在网页设置页面搭载的OBS桶,3个桶均可正常进行文件操作。
图4.7.2 ownCloud的文件首页
4.8 方法三:通过ownCloud配置页面挂载OBS桶
在“管理-存储”中勾选 【Enable external storage】并按照图示填入图4.8.1中红色标注的这几项即可
图4.8.1 ownCloud的配置页面挂载OBS桶
完成后即可在网盘首页看到OBS对象存储的目录,如图4.7.2所示。
- 点赞
- 收藏
- 关注作者
评论(0)