最近被迫宅在家闲来无事,就搞了个VPS玩玩。找了几圈,发现个比较实用的用法:

搭建一个基于OLAINDEX+onedrive的网盘,可通过aria2离线下载。

(onedrive作为微软旗下的云存储产品,速度质量比起某毒盘不知道高到哪里去了。)



## **为什么选择OLAINDEX**

OLAINDEX受ONEINDEX启发,也是一款onedrive目录索引应用,相比之下功能较多,界面美观(多主题可选),还适配了pad端、移动端。

界面预览:

PC

PC端

mobile

移动端

pad

pad端



*本教程基于Ubuntu18.04,其他系统仅供参考

准备工作

  1. 一个VPS(推荐国外)
  2. 一个onedrive账号(最好是1T以上。)
  3. 三个域名(子域名也可)
  4. 一颗耐心

三个域名我用的是子域名,分别为dl.xx.com【可选】bt.xx.com【可选】pan.xx.com,在域名后台添加三条记录指向你的VPS的IP。如图:

![dns](dns.png)

安装宝塔面板

Centos

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

Ubuntu/Deepin

1
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh

安装完成后会显示信息:

1
2
3
Bt-Panel: http://你的vps的ip:8888/xxx
username: xxxx
password: ****

访问地址进入宝塔面板后台,左侧选择面板设置进行相关设置:

  • 修改登录账号密码和安全入口;
  • 【可选】绑定事先准备好的bt.xx.com,以后访问面板直接输入:bt.xx.com:8888/xxx
    ![面板设置](bt1.png)

配置环境

  • php7.3及以上
  • php扩展:【PHP OpenSSL 扩展】【PHP PDO 扩展】【PHP Mbstring 扩展】【PHP Tokenizer 扩展】【PHP XML 扩展】【PHP Ctype 扩展】【PHP JSON 扩展】【PHP BCMath 扩展】【PHP Fileinfo 扩展】

在宝塔面板左侧软件管理搜索安装,这里安装php7.3nginx 1.18

![面板设置](bt2.png)

待安装完成之后,开始配置php。
点最右边的设置,再点开安装扩展,安装fileinfoopcache

![面板设置](bt3.png)

之后再点`禁用函数`: 把`exec`、 `shell_exec`、 `proc_open`、`proc_get_status` 和`putenv`移除。重启PHP。
![面板设置](bt4.png)

安装composer:
宝塔面板已经默认安装composer,不放心得话可以通过以下命令安装:

1
2
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

安装OLAINDEX

网站配置
打开宝塔面板,点击左侧网站,再点添加站点

![面板设置](bt5.png)

在域名框输入事先准备好的`pan.xx.com`,下面的php版本选择`php7.3`,提交。
![面板设置](bt6.png)

到此,我们的网盘网站在vps上目录为`/www/wwwroot/pan.xx.com`。 接着,我在命令行输入以下命令:
1
2
3
4
5
6
7
8
9
cd /www/wwwroot/pan.xx.com #跳转到网盘站点目录
git clone https://github.com/WangNingkai/OLAINDEX.git tmp
mv tmp/.git .
rm -rf tmp
git reset --hard
composer install -vvv # 这里测试是否成功安装composer
chmod -R 777 storage/
chown -R www:www * # 此处 www 根据服务器具体用户组而定
composer run install-app #出现权限错误请重新运行一遍 chmod -R 777 storage/

**站点具体设置** 打开宝塔面板,点击左侧`网站`,点开`pan.xx.com`最右边的`设置`,运行目录改为`/public`,同时去掉`防跨站攻击`,保存。
![面板设置](bt7.png)

再点开`伪静态`,最上面选择`laravel5`,保存。
![面板设置](bt8.png)

接着点开配置文件,注释47行至59行内容,防止图片出现404。

![面板设置](bt9.png)

然后点开SSL,选择Let's Encrypt,打钩域名,然后申请
成功后显示如图,并点开强制HTTPS

![面板设置](bt10.png)

**绑定onedrive**

打开后台pan.xx.com/admin,

1
2
3
4
#账号
admin
#初始密码
123456

选择账号列表页面,点击绑定账号

![onedrive绑定](bt11.png)

在`申请`中的`redirect_uri`确认地址为: `https://pan.xx.com/callback`,点击`申请`。 会跳转到申请页面,登录onedrive账号授权,复制`应用机密`,接着点`知道了,返回到快速启动`。在新的页面中找到应用ID,复制。
![onedrive绑定](onedrive1.png)

![onedrive绑定](onedrive2.png)

返回到绑定页面,`redirect_uri`改为:`https://pan.xx.com/callback`,在`client_id`和`client_secret`填入刚刚复制的`应用id`和`应用机密`。 点击`保存`,跳转绑定页面,绑定就ok了。

Tip:如果绑定页面是空的,在vps上运行以下命令:

1
2
cd /www/wwwroot/pan.xx.com #记得替换成你的站点
chmod 777 -R storage/* database/*

该命令同样适用于500|错误

成功绑定,可以访问网盘主页了。


**配置aria2**
**aria2 安装**
打开vps,输入:
1
2
3
4
# 这里使用逗比的一键脚本,还可以自动更新tracker。
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh
# 备用地址moerats大佬
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Aria2/aria2.sh && chmod +x aria2.sh && bash aria2.sh
![onedrive绑定](aria2-2.png)

接着输入`1`安装aria2,回车。版本选择的地方直接回车。 安装完成后,会显示aria2信息,记得保存。 如果忘记配置信息,也可输入`8`查看。 输入`10`配置自动更新 BT-Tracker服务器,加速bt下载。
1
2
3
4
5
6
7
Aria2 简单配置信息:

地址 : **.**.**.**
端口 : 6800
密码 : **************
目录 : /usr/local/caddy/www/aria2/Download


**【可选】ariaNg配置和aria2其他设置**
打开宝塔面板,选择`网站`,`添加站点`,域名填入事先准备好的`dl.xx.com`,php版本选择`纯静态`,提交。
![onedrive绑定](aria2-1.png)

1
2
3
4
5
6
7
8
9
10
#跳转到dl网站目录
cd /www/wwwroot/dl.xx.com
#下载ariaNg
wget https://github.com/mayswind/AriaNg/releases/download/1.1.5/AriaNg-1.1.5-AllInOne.zip
#安装unzip
apt install unzip
#解压
unzip AriaNg-1.1.5-AllInOne.zip
#删除下载文件
rm -rf AriaNg-1.1.5-AllInOne.zip

访问dl.xx.com,显示未连接。选择左侧ariaNg设置,右侧选择RPC(dl.xx.com)

![onedrive绑定](aria2-3.png)

输入配置信息,刷新页面,左下角显示已连接。
![onedrive绑定](aria2-4.png)

再选择左侧`aria2设置`>`BitTorrent 设置`,拉到最下面,`最小做种时间`输入0。
![onedrive绑定](aria2-5.png)

**自动下载上传(离线下载)**

>>>0316已更新船新版本<<<

打开宝塔面板,选择左侧文件,跳转到/root/.aria2目录下,新建一个up.sh
编辑up.sh,输入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
downloadpath='/usr/local/caddy/www/aria2/Download' #修改成Aria2下载文件夹
folder='/lixian' #上传至网盘里的文件夹(自动创建)

if [ $2 -eq 0 ];then
exit 0
fi
path=$3 #取原始路径
olaindex=`find /www/wwwroot -name artisan` #OLAINDEX的artisan文件的绝对路径
while(true);do #path被赋值为Aria2下载目录,filepath被赋值为下载文件的绝对路径或第一层目录
filepath="$path"
path="${path%/*}"
if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ];then #单文件
php $olaindex od:upload "$filepath" "$folder/" #上传
rm -rf "$filepath" "$filepath.aria2" "$path/*.torrent" #删除
php $olaindex od:cache #刷新
exit 0
elif [ "$path" = "$downloadpath" ];then #文件夹
cd "$filepath"
for file in *;do #第一层目录
php $olaindex od:upload "$file" "$folder/${filepath##*/}"
rm -rf "$file"
done
for file in */* */*/*;do #第二、三层目录
php $olaindex od:upload "$file" "$folder/${filepath##*/}/${file%/*}"
rm -rf "$file"
done
rm -rf "$filepath" "$filepath.aria2" "$path/*.torrent"
php $olaindex od:cache
exit 0
fi
done

保存,然后编辑aria2配置文件:

vi /root/.aria2/aria2.conf

i进入插入模式,在文件中添加一句:

on-download-complete=/root/.aria2/up.sh

Esc,输入:wq保存退出。

重启aria2:

service aria2 restart

这样下载文件到vps后会上传到onedrive再删除vps上的文件。

到此,可离线在线观看视频的网盘搭建完成!

参考:

https://github.com/WangNingkai/OLAINDEX
https://imwnk.cn/archives/bt-olaindex
https://www.jianshu.com/p/4e5bee06ad74