之前写了两篇关于OneDrive网盘目录程序的文章,最近发现了又一个网盘程序,看了下作者的 dome 感觉非常棒,特来折腾一番,程序基于的 PHP框架 Laravel搭建,并通过 Microsoft Graph接口获取数据展示。基于 bootswatch响应式页面布局,适配PC、平板、手机。建议宝塔面板部署,手动部署可能有点麻烦,宝塔面板的安装和 LNMP 环境自行百度。

 

功能

  • OneDrive 目录查看索引分页查看;
  • 支持代码、图片、文本文件即时预览、图片列表栏展示;
  • 支持音视频播放(兼容大部分格式),视频播放采用 Dplayer.js,音乐播放采用 Aplayer;
  • 支持自定义创建文件夹、文件夹加密、文件/文件夹删除、文件/文件夹的复制与移动;
  • 支持文件搜索、文件上传、文件直链分享与删除、文件直链一键下载;
  • 支持管理 readme/head 说明文件;
  • 支持图床;
  • 支持命令行操作;
  • 支持文件离线下载(个人版);
  • 后台基本显示管理,多主题管理,文件预览管理等等(清理缓存后及时生效)
  • 支持世纪互联;
  • 支持多种缓存系统(Redis、Memcached等)

 

项目地址

https://github.com/WangNingkai/OLAINDEX

 

演示地址

https://p.tiax.cn

 

PHP 扩展要求

  • PHP >= 7.4
  • PHP OpenSSL 扩展
  • PHP PDO 扩展
  • PHP Mbstring 扩展
  • PHP Tokenizer 扩展
  • PHP XML 扩展
  • PHP Ctype 扩展
  • PHP JSON 扩展
  • PHP BCMath 扩展
  • PHP Fileinfo 扩展 *(建议安装)

 

程序部署

1.PHP扩展安装,安装 fileinfo 扩展并附带安 opcache 扩展以加速 php 运行和安装 redis 用作缓存,也可以安装 memcached 扩展。个人推荐redis

 

1.1.PHP禁用函数

修改 PHP 配置,需要删除两个禁用的函数:proc_open 和 putenv

弄完重启下PHP生效

 

2.新建站点, 在面板里添加一个站点,然后 ssh 切换到站点的目录下,新版宝塔面板自带 ssh 终端。

 

2.1 执行安装,下面的命令依次执行。⚠️注意: # 号及 # 号后边的内容为注释,别无脑复制

$ git clone https://github.com/WangNingkai/OLAINDEX.git tmp 
$ mv tmp/.git . 
$ rm -rf tmp 
$ git reset --hard 
$ composer install -vvv  # 安装
$ chmod -R 777 storage # 授权
$ chown -R www:www *
$ composer run install-app # 安装

到此就安装好了 OLAINDE执行过最后一句可能会报错 如下内容:

Script php artisan install handling the install-app event returned with error code 1

这是因为数据库的问题,只需要修改目录下的 .env 文件中关于数据库的相关配置,然后再执行最后一句即可!我用的 MySQL+Redis ,以下是我的 .env 配置示意图:

 

3.配置站点信息,勾选取消防跨站攻击(open_basedir) 将站点的运行目录改为 public

 

3.1 伪静态修改,选择 Laravel 5

 

3.2 修改配置文件,注释选定内容,防止图片出现 404

HTTPS最后在启用下就可以了

 

程序配置

1.上面就完成了程序的部署,现在就进行帐号设置和世纪互联的目录挂载,浏览器打打开:https://域名/admin,填写给出的默认的账户和密码登录后台,后台可以修改帐号和密码。

默认帐号:admin、密码:123456

 

1.1目录挂载,打开帐号列表,默认是没有的,点新增。

 

1.2 国际版 OneDrive 如图所示,把回调URL改了后点击申请,然后把申请的IDkey填回来,点保存就可以了,流程很简单,这里不再赘述了。

申请 client_idclient_secret

国际版

 

1.3 世纪互联版 OneDrive 不能直接点申请,需要单独去世纪互联的Azure Active Directory 去注册应用。

  • 打开世纪互联的Microsoft Azure https://portal.azure.cn
  • 在左侧列表选择Azure Active Directory
  • 选择:应用注册
  • 点击:新注册

 

应用注册

  • 在名称处填入为新应用起的名字
  • 在重定向 URL处选择Web并在后面的框中填入olaindex提供的回调redirect_uri链接,
  • 如:https://xxx/callback

 

API权限

  • 点击右侧的API权限
  • 添加权限
  • 选择常用 Microsoft API
  • 选择委托的权限
  • 找到 Files (2)Files.ReadWriteFiles.ReadWrite.All两项 添加权限进行保存

     

    证书和密码

    • 所看到值 就是所需的 client_secret

     

    应用程序ID

    • 返回到主界面上应用程序(客户端)ID 就是所需的 client_id

     

    初始化配置

    • 弄完了,回到程序的初始化配置,把IDsecret 填进去,选择世纪互联,保存就完事。

     

    后台配置

    显示设置

    • 图片

      bmp jpg jpeg png gif
    • 视频

      mkv mp4 webm qlv
    • Dash 视频(不支持个人版账户)

      avi mpg mpeg rm rmvb mov wmv asf ts flv
    • 音频

      mp3 ogg wav flac ape
    • 文档

      text json md
    • 代码

      html htm css go java js ts sh php py
    • 文件流

      txt log

     

    特殊文件功能

    • 在文件夹头部添加说明

      在onedrive的文件夹中添加HEAD.md 文件,使用markdown语法
    • 在文件夹底部添加说明

      在onedrive的文件夹中添加README.md文件,使用markdown语法

     

    版本更新

    $ git pull 
    $ composer install # 安装依赖更新包
    
    $ chmod -R 755 storage # 注意!!!确保缓存目录具有读写权限,否则500
    $ chown -R www:www * # 确保目录权属
    
Last modification:June 19, 2021
如果你想请我喝奶茶的话