Oneindex 是一款开源的 Onedrive 目录列表程序(点此直达项目地址),可以直接列出 OneDrive 文件目录,提供文件直链下载,不占用服务器空间,不走服务器流量(文件存储在 OneDrive 上),支持 OneDrive 个人版和 OneDrive 商业版。本文详细介绍如何在 Ubuntu 18.04 手动安装 Oneindex 实现 Onedrive 文件分享。 Oneindex 的运行依赖 nginx 和 php ,如果服务器未安装 nginx 和 php ,请先参考文章“Ubuntu 18.04 手动搭建LNMP环境”安装 nginx 和 php 。以下操作是在 root 账号下进行的,非 root 账号需提升到 root 权限。

搭建 Oneindex

克隆源码

源码可选官方版本和基于官方版本的修改版。修改版添加 redis 缓存支持,页面支持分页,后台可自定义每页显示项目的数量,博主目前在用的就是基于官方版本的修改版。使用如下命令克隆源码:
官方版本 Oneindex :

git clone https://github.com/donwa/oneindex.git /var/www/oneindex

基于官方版本的修改版 Oneindex :

git clone https://github.com/0oVicero0/oneindex.git /var/www/oneindex

注意,如果源码选择修改版且要启用 redis 缓存模式,服务器需要安装 redis-serverphp7.1-redisredis-server 的安装详见文章“Ubuntu 18.04 手动安装最新版 Redis”,php7.1-redis 使用如下命令安装:

apt install php7.1-redis -y

创建虚拟机

使用如下命令创建 Oneindex 虚拟机配置文件:

vim /etc/nginx/sites-available/oneindex

复制以下内容粘贴并保存。注意,在复制前请将 example.com 修改为自己的域名:

server {
    listen 80;
    index index.php;   
    server_name  example.com;  # 将 example.com 修改为自己的域名
    
    root /var/www/oneindex;

    # individual nginx logs for this gitlab vhost
    access_log  /var/log/nginx/example.com_access.log; # 将 example.com 修改为自己的域名
    error_log   /var/log/nginx/example.com_error.log;  # 将 example.com 修改为自己的域名
   
    location / {
    if (!-f $request_filename){ 
        rewrite (.*) /index.php; 
        } 
    } 
   
    location ~ [^/]\.php(/|$) {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    if (!-f $document_root$fastcgi_script_name) {
        return 404;
    }

    fastcgi_param HTTP_PROXY "";

    #fastcgi_pass 127.0.0.1:9000;
    fastcgi_pass unix:/run/php/php7.1-fpm.sock;
    fastcgi_index index.php;

    include fastcgi_params;

    fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
    fastcgi_param  PATH_INFO         $fastcgi_path_info;
    }
}

将虚拟机接入 nginx :

ln -s /etc/nginx/sites-available/oneindex /etc/nginx/sites-enabled/oneindex

授予访问权限并重载 nginx :

chown -R www-data:www-data /var/www/oneindex && systemctl reload nginx.service

配置 Oneindex

绑定 Onedrive

浏览器访问 example.com 便可看到 Oneindex 安装界面,如下图所示:

install-oneindex-on-ubuntu.PNG
点击“下一步”按钮,开始配置 Oneindex 。配置 Oneindex 需要登陆自己的 Onedrive 账户,并分别获得 client_secretclient_id 。详细的配置过程详见下图动画:

config-oneindex-on-ubuntu

设置 Oneindex

绑定 Onedrive 后访问 example.com 便可看到 Oneindex 程序界面。后台管理地址为 example.com/admin ,初始密码 oenindex 。后台设置比较简单,首先修改后台登陆密码;修改“基本设置”里的最后一项“去掉地址栏中的/?/ (需配合伪静态使用!!)”,打开该选项可以去掉网址中的 ? ,使地址看起来更美观。本文提供的虚拟主机配置里已经添加了适合于 Oneindex 的伪静态,因此该选项直接启用即可,启用后点击右下角的保存按钮生效;如果安装的是基于官方版本的修改版 Oneindex ,且服务器已经安装了 redis-serverphp7.1-redis,后台将缓存类型修改为 redis 以提高性能。

设置定时任务

按照官方的建议,添加定时任务定时刷新缓存和令牌,以提高 Oneindex 访问性能。使用如下命令添加定时任务:

crontab -e

复制以下内容粘贴并保存,以设置定时任务:

*/10 * * * * php /var/www/oneindex/one.php cache:refresh  # 每隔十分钟刷新一次缓存
0 * * * * php /var/www/oneindex/one.php token:refresh     # 每隔一小时刷新一次令牌

启用 https

使用 certbot 自动配置 ssl 证书以启用 https 访问,certbot 的详细用法请参考文章“Ubuntu 18.04 手动安装 certbot 并为网站添加 SSL 证书以启用 https”。

通过以上步骤便可在 Ubuntu 18.04 手动安装 Oneindex 实现 Onedrive 文件分享,本文结束。

文章目录