搭建个人下载站-OneDrive+OneIndex

前段时间,无聊跟风注册了几个毫无用处的域名,想着不能浪费,刚好有人问到打算做一个下载站,于是开始动手搭建,以后也可以当做图床、在线播放等使用。而且,下载站可用之后,所下载的任何东西,都是直连OneDrive,不会消耗服务器的流量,也不会受到服务器的带宽限制。
本文仅记录本人搭建下载站的过程,需用到的相关程序非本人原创。
前期准备:一台Linux云服务器,一个域名,一个OneDrive账号。
服务器建站环境可以有两种选择,一是安装LNMP,利用LNMP新增网站;二是安装nginx+PHP,手动添加网站。
本文以CentOS 7为例,建议服务器内存512M或以上,下载站域名为gdtv.ml,需要的可在下文替换为自己的域名。

一、利用LNMP新建网站

之前文章有分享如何部署LNMP,在此不再作介绍。
1、在连接服务器后执行:lnmp vhost add,新增网站gdtv.ml和网站路径,添加SSL等。
2、安装oneindex。执行以下命令:

  1. cd /home/wwwroot/gdtv
  2. git clone https://github.com/donwa/oneindex.git
  3. chmod -R 777 oneindex

3、配置一下nginx,把网站目录设置为:/home/wwwroot/gdtv/oneindex,重启nginx后浏览器访问:https://gdtv.ml,即可进行绑定OneDrive设置。如图:


点击上图的 获取应用ID和机密,登录OneDrive获取ID和密钥后填上去再点下一步。如果此步没有生成密钥,可浏览器访问:https://apps.dev.microsoft.com,进入oneindex程序,点击 生成新密钥。填好ID和密钥后一路点击下一步即可。如图:



4、在云服务器内执行:

crontab -e

添加:

*/10 * * * * php /home/wwwroot/gdtv/oneindex/one.php cache:refresh

设置每10分钟执行一次缓存刷新,至此,下载服务器就可以正常使用了,后台登录初始密码为:oneindex。
5、oneindex的访问地址中,默认是带有一个问号的,例如:https://gdtv.ml/?/music,现在就是设置去掉这个问号。首先,后台登录oneindex,在基本设置选项中,打开去掉/?/的功能选项,然后点击保存,接着选择下面其中一个方法进行设置即可:
方法一:
在服务器终端执行:

vim /usr/local/nginx/conf/vhost/gdtv.ml.conf

在server { }内添加:

location / {
  try_files $uri $uri/ /index.php?/$uri;
}

值得注意的是,这样设置去掉网址问号之后,保存在OneDrive的图片就不能访问了,所以还需要注释掉以下信息:

#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  #{
  #  expires      30d;
  #}

重启nginx即可。
方法二:
源码文档内带有适用于Apache的.htaccess规则文件,可将其转换为Nginx规则,转换后规则为:

if (!-f $request_filename){
        set $rule_0 1$rule_0;
}
if (!-d $request_filename){
        set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
        rewrite ^/(.*)$ /index.php?/$1 last;
}

将其保存为gdtv.ml.htaccess,然后修改gdtv.ml.conf文件添加一行:include gdtv.ml.htaccess; 保存,重启nginx即可。

二、非LNMP环境搭建下载站

1、可以在安装nginx和PHP后,直接手动配置网站gdtv.ml。

  1. yum -y install epel-release && yum -y update && yum -y install nginx php-fpm php-xml php-mbstring
  2. cd /usr/share/nginx/html
  3. git clone https://github.com/donwa/oneindex.git
  4. chmod -R 777 oneindex

然后配置nginx.conf,修改网站目录以及SSL等信息,加载一下配置信息:nginx -s reload后浏览器访问网站按上一方法的步骤3-4进行设置即可。
2、也可以利用docker来进行配置。云服务器终端内执行:

  1. yum install docker-io -y
  2. systemctl start docker

接着执行:

docker run -d \
    -p 80:80 \
    --name oneindex \
    --restart=always \
    -t yinaoxiong/oneindex

然后再浏览器访问网站按上一方法的步骤3-4进行设置即可。

PS:如果有强烈强迫症的同学,不想用原作者的域名中转,那也可以先自己搭建一个域名中转服务器,例如,我自己的中转域名是:https://brake.ml,只要配置以下信息:

<?php 
if(!empty($_GET['state'])){
  header('Location: '.$_GET['state'].'?code='.$_GET['code']);
}

然后把oneindex/controller/AdminController.php里面的中转域名改为自己的中转域名即可。

本文章参考于GitHub @donwa

2 条评论 on “搭建个人下载站-OneDrive+OneIndex

  1. 九歌
    Safari 604.1.38 | Mac OS X 10_13  
    上海市 联通漕河泾IDC机房

    很不错的分享,博主有统计过月流量吗?

    回复
    1. Yours Post author
      Chrome 70.0.3538.77 | Mac OS X 10_14_1  
      广东省广州市 盈联宽带

      没有统计过,对流量不敏感,随缘。

      回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注