利用OneManger+Onedrive+阿里云服务器(VPS)搭建5T大容量私有云,实现服务器磁盘扩容+可公有也可私有的个人网盘

问题描述

本项目拟解决以下问题:

1、笔者的VPS服务器磁盘空间不够,希望可以扩大服务器的磁盘空间;

2、希望可以有一个个人网盘,既可以公网访问,用于写作时素材的分享下载链接;也可以当作私有云,存储备份文件;

3、由于国内的墙,网页版的OneDrive在国内打不开,导致Onedrive的使用场景非常受限,但是OneDrive在国内的下载速度还算可以,因此想要搭建一个中转服务器来处理OneDrive网页版无法使用的问题;

通过检索后,目前的主要方案是利用微软onedrive api将onedrive目录映射成一个云盘的程序来解决这类问题,而且目前(2022/07)这种利用VPS+OneDrive搭建个人网盘和扩容主要有以下的解决方案:

  • OneIndex:作者已删库跑路…
  • OneManager:搭建较简单,教程多【选择】
  • rclone : 教程较少

因此,笔者最终选择OneManger+Onedrive+阿里云服务器(VPS)搭建5T大容量私有云,实现服务器磁盘扩容+可公有也可私有的个人网盘。过程中遇到了很多问题,在文中都进行了记录,最终完成后的demo如下:

Ferry’s Cloud

image-20220801203627893

准备工作

在搭建之前,需要准备以下:

1、服务器(Virtual Private Server,VPS,虚拟专用服务器)。可以选阿里云的香港轻量服务器,系统选择宝塔面板BT-panel6.0或者选Ubuntu。参考笔者的文章,服务器同时可以用来搭建个人网站个人V*N机场

2、域名。也很便宜,参考这篇文章里的购买方式。

3、OneDrive。

很多人推荐在淘宝购买很便宜的5T/25T存储空间的账号,但这是不安全的,开账户的大多是私人搭建的企业版OneDrive,有极高的封号概率,翻车的后果是所有账户都会被停用;而且管理员可以修改你所购买的账号和密码,所以不要走这条路…

微软对全球学生群体有永久免费提供的office365,学生可以用edu教育邮箱免费获取office365,有1T的OneDrive空间。无管理员,所以使用这种方式申请1T的one drive空间。(非学生也可以在网上找到临时教育邮箱的注册方法,注册临时教育邮箱后再申请)

方法很简单:打开官网,输入学校邮箱并验证完成office365注册,很快就申请完成了

image-20220731230155723

注册OneDrive API

注册完OneDrive后,我们需要获取OneDrive账号的API。首先进入Microsoft Azure,登录账号密码后,点击新注册

image-20220801155000371

名称随便填,然后选择“任何组织目录(任何 Azure AD 目录 – 多租户)中的帐户和个人 Microsoft 帐户(例如,Skype、Xbox) ”,url填写https://scfonedrive.github.io/( 因为 OneManager 是这样要求的),点击注册。

image-20220801155051977

将生成的客户端ID保存起来(其他两个不用)

image-20220801155205645

点击证书与密码->新客户端密码,说明随便填,时间最长选3年

image-20220801155326267

将生成的值保存起来(注意:这里如果不保存,后面就不显示了)

image-20220801155405606

点击API权限,添加权限->Microsoft Graph->委托的权限,搜索 Files.ReadWrite.All并添加

image-20220801185435919

完成之后,按照说明文档还需要点击用管理员同意才能拥有读写权限,但笔者进行到这一步,发现尝试了各种方法都没法完成权限设置。(注意:应该选择委托的 Files.ReadWrite.All(如上图),而不是应用程序的 Files.ReadWrite.All!)

image-20220801185835580

于是,笔者开始电话了咨询,打了很多次微软的客服电话,咨询了好久,才知道我们学校的教育邮箱账号也是盗版的,客服也没法帮我开通管理员权限;于是我又咨询了学校信息中心的老师,暑期居然没上班,要我等上班时间线下去问…

IMG_8433

笔者猜想这是因为学校老师和学生账号后缀是分开的,也许老师后缀的账号是正版的,学生账号只是子账号,这一点还没经过确认,等开学笔者再去询问,看能否开通一个正版账号。

(笔者在搭建完成后,试着选择了OneManager默认的ID和机密,但由于学校的账号不是正版的,也行不通…)

image-20220801171457056

但都做到了这里了,也不好就此放弃,先暂且在淘宝买一个账号,完成搭建吧。等后续有了自己的账号再重新同步…

image-20220801183606411

安装宝塔面板

接着需要安装一个宝塔面板,简单说,宝塔面板即使一个装在服务器上的管理面板,因为服务器大多是Linux系统,没有像window系统一样的可视化操作界面,宝塔面板相当于提供了一个可视化的管理界面。

如果已经有了服务器(笔者这里是Ubuntu系统),通过Mac的Finalshell连接服务器,然后通过以下命令安装宝塔面板

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

笔者输入后,结果报错了:

image-20220801130800454

查了一下,宝塔面板要求安装的VPS必须为没装过其它环境如Apache/Nginx/php/MySQL的新系统,而笔者已经通过LNMP搭建了个人网站(服务器已经有LAMP环境了),不是纯净系统了 。

不是干净系统能否安装?结果看到官方文档宝塔论坛都回应不可操作,网上大部分教程也是建议格式化磁盘…

官方要求是纯净系统安装使用,已有环境安装面板是无法使用面板去管理已安装的环境,也不必引起不知因素的问题。

网上大部分教程都是通过宝塔进行OneManager的安装,但笔者这里为了防止个人网站出现不必要麻烦,接下来的安装将使用命令行进行。

新建网站站点

在安装OneManager之前,需要新建一个网站站点作为网盘的地址。

在添加网站前,需要先将域名解析到VPS服务器上。笔者是阿里云,进入阿里云域名管理后台,解析域名,添加记录值:

image-20220801140110478

由于笔者的服务器已经安装了LNMP环境,LNMP脚本中网站又称为vhost,一个vhost就代表一个网站站点,一台VPS上可以同时有多个网站(vhost)。成功安装LNMP环境后,直接执行如下命令即可添加网站:

lnmp vhost add

之后会提示让你输入相应的网站信息,包括

  • 域名(笔者是pan.ferryxie.com)
  • 域名别称(例如访问ferryxie.com也会重定向到本站,但笔者这里不设置域名别称,还是输入pan.ferryxie.com)
  • 网站数据路径以及日志路径直接默认即可(直接按回车)
  • 如果跟笔者一样是WordPress建站,那么rewrite规则就选择wordpress
  • 需要PHP,选择y;MySQL和SSL不需要,选择n(OneManager只要能运行 PHP 代码即可)
  • 全部没有问题后按任易键即可完成网站添加:
root@iZj6caeuxxf7de8lbs6zauZ:~# lnmp vhost add
+-------------------------------------------+
|    Manager for LNMP, Written by Licess    |
+-------------------------------------------+
|              https://lnmp.org             |
+-------------------------------------------+
Please enter domain(example: www.lnmp.org): pan.ferryxie.com
 Your domain: pan.ferryxie.com
Enter more domain name(example: lnmp.org *.lnmp.org): pan.ferryxie.com
 domain list: pan.ferryxie.com
Please enter the directory for the domain: pan.ferryxie.com
Default directory: /home/wwwroot/pan.ferryxie.com: 
Virtual Host Directory: /home/wwwroot/pan.ferryxie.com
Allow Rewrite rule? (y/n) y
Please enter the rewrite of programme, 
wordpress,discuzx,typecho,thinkphp,laravel,codeigniter,yii2 rewrite was exist.
(Default rewrite: other): wordpress
You choose rewrite: wordpress
Enable PHP Pathinfo? (y/n) y
Enable pathinfo.
Allow access log? (y/n) y
Enter access log filename(Default:pan.ferryxie.com.log): 
You access log filename: pan.ferryxie.com.log
Create database and MySQL user with same name (y/n) n
Add SSL Certificate (y/n) n

Press any key to start create virtul host...

Create Virtul Host directory......
set permissions of Virtual Host directory......
You select the exist rewrite rule:/usr/local/nginx/conf/rewrite/wordpress.conf
Test Nginx configure file......
nginx: [warn] conflicting server name "pan.ferryxie.com" on 0.0.0.0:80, ignored
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Reload Nginx......
nginx: [warn] conflicting server name "pan.ferryxie.com" on 0.0.0.0:80, ignored
Reload service php-fpm  done
================================================
Virtualhost infomation:
Your domain: pan.ferryxie.com
Home Directory: /home/wwwroot/pan.ferryxie.com
Rewrite: wordpress
Enable log: yes
Create database: no
Create ftp account: no
================================================
root@iZj6caeuxxf7de8lbs6zauZ:~# 

安装OneManager

对于在VPS的部署方式说明得很简单,主要是通过对于Nginx和PHP进行解析和转发处理。

image-20220801133133667

首先到OneManager-php 官方项目项目下载压缩包:

image-20220801133901242

通过Finalshell上传到服务器,放到上面设置的目录里面,比如笔者这里是/home/wwwroot/pan.ferryxie.com,并进行解压:

root@iZj6caeuxxf7de8lbs6zauZ:~# cd /home/wwwroot/pan.ferryxie.com
root@iZj6caeuxxf7de8lbs6zauZ:/home/wwwroot/pan.ferryxie.com# ls
OneManager-php-master.zip
root@iZj6caeuxxf7de8lbs6zauZ:/home/wwwroot/pan.ferryxie.com# unzip -o -d /home/wwwroot/pan.ferryxie.com OneManager-php-master.zip

然后修改 nginx config 文件,将 rewrite ^(.*) /index.php?/$1 last写入到相应的 vhost 的 conf 文件中 :

root@iZj6caeuxxf7de8lbs6zauZ:/home/wwwroot/pan.ferryxie.com# cd /usr/local/nginx/conf/vhost/
root@iZj6caeuxxf7de8lbs6zauZ:/usr/local/nginx/conf/vhost# ls
pan.ferryxie.com.conf
root@iZj6caeuxxf7de8lbs6zauZ:/usr/local/nginx/conf/vhost# vim pan.ferryxie.com.conf

rewrite ^(.*) /index.php?/$1 last; 加入到 conf 文件中 。

image-20220801143300633

修改域名解析后,按道理就可以直接通过域名访问并安装 OneManager 了。但是笔者却出现了403 forbidden… 检查测试了好久,才发现问题出现了路径不匹配上,如下的路径跟解压时候的路径不匹配,所以要将OneManager-php-maste下面的文件拉到pan.ferryxie.com下。

image-20220801152810593

这样就可以通过域名访问并安装 OneManager 了

image-20220801152903350

点击上图开始安装,下一步是选择语言,然后测试伪静态

image-20220801153511905

这里测试失败了,可能是上一步的问题导致的。正常情况下,应该是点击后直接进入密码设置页。

image-20220801153715787

所以在服务器中,将程序代码所在的目录的所有者修改为 www:www ;并且给 .data/config.php 读取写入权限。例如笔者的修改如下:

root@iZj6caeuxxf7de8lbs6zauZ:/usr/local/nginx/conf/vhost# chown -R www:www /home/wwwroot/pan.ferryxie.com/

root@iZj6caeuxxf7de8lbs6zauZ:/usr/local/nginx/conf/vhost# chmod 666  /home/wwwroot/pan.ferryxie.com/.data/config.php

修改完成后,再次进入刷新页面,完成安装后的页面如下。

image-20220801154229928

然后点击管理添加 OneDrive ,标签与名称随便填写, Client ID 和 Client Secret 填写前文所说的的,输入后,跳转登录账号并接受许可。选择one drive盘。

image-20220801154811460

这样就完成了个人网盘的搭建,可以进行设置,关于各个设置的内涵和方法可以参考这篇文章

image-20220801190317740

有几点需要注意:

  • 在OneDrive中修改文件,通过域名访问的也是同步修改后的文件。
  • 笔者使用的主题是自带的tfo.html,这个主题没有管理员登录按钮,例如笔者可以设置通过 pan.ferryxie.com?login=admin的方式进入管理登录界面;也可以通过服务器的 vim /home/wwwroot/pan.ferryxie.com/.data/config.php命令修改配置文件。
  • 可以在OneDrive盘设置中通过设置/public路径作为公开文件,再设置/private路径作为私有文件,实现一个OneDrive同时使用公有个人网盘和私有个人网盘。

笔者设置完成后,最终效果如下:Ferry’s Cloud

image-20220801203627893

评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇