LNMP、OLAINDEX 搭建 OneDrive 网盘

PangZhan
PangZhan
PangZhan
269
文章
83
评论
2020-01-0608:23:42 评论 706 3210字阅读10分42秒

OLAINDEX是一款OneDrive目录文件索引应用,基于优雅的 PHP 框架 Laravel5.8 搭建,并通过 Microsoft Graph 接口获取数据展示,支持多类型帐号登录,多种主题显示,简单而强大。OneDrive 目录查看索引分页查看;支持代码、图片、文本文件即时预览、图片列表栏展示;支持音视频播放(兼容大部分格式),视频播放采用 Dplayer.js,音乐播放采用 Aplayer;支持自定义创建文件夹、文件夹加密、文件/文件夹删除、文件/文件夹的复制与移动;支持文件搜索、文件上传、文件直链分享与删除、文件直链一键下载;支持管理 readme/head 说明文件;支持图床;支持命令行操作;支持文件离线下载(个人版);后台基本显示管理,多主题管理,文件预览管理等等(清理缓存后及时生效);支持世纪互联;支持多种缓存系统(Redis、Memcached等);更多功能欢迎亲自尝试。

0x01 界面预览

本博搭建的OLAINDEX→ 私有网盘 

LNMP、OLAINDEX 搭建 OneDrive 网盘

0x02 准备环境

VPS一台环境是LNMP或者使用宝塔面板,一个OneDrive网盘的账号,这两个是必备。今天这个教程是针对军哥LNMP1.6来搭建,使用宝塔面板的可以参考官方的帮助文档

0x03 环境要求
  • PHP >= 7.1.3
  • PHP OpenSSL 扩展
  • PHP PDO 扩展
  • PHP Mbstring 扩展
  • PHP Tokenizer 扩展
  • PHP XML 扩展
  • PHP Ctype 扩展
  • PHP JSON 扩展
  • PHP BCMath 扩展
  • PHP Fileinfo 扩展 *  Laravel 文件系统模块要求,为保证成功安装,建议安装 PHP Fileinfo 扩展 ;
0x04 配置扩展

LNMP1.6的默认环境除了PHP Fileinfo 扩展没有之外其他都已具备。我们安装LNMP1.6后添加PHP Fileinfo 扩展即可;

cd /root/lnmp1.6    # 进入到lnmp1.6的目录;
vim lnmp.conf    # 编辑lnmp.conf;将配置文件中的Enable_PHP_Fileinfo='n' 修改为 Enable_PHP_Fileinfo='y' 保存
./upgrade.sh php    # 执行升级命令开始对PHP升级编译安装PHP Fileinfo 扩展;

LNMP、OLAINDEX 搭建 OneDrive 网盘

0x05 编辑PHP.ini
cd /usr/local/php/etc    # 进入到PHP目录;
vim php.ini    # 编辑 php.ini 找到 exec 、shell_exec、proc_open、proc_get_status 这四个函数删除然后保存;
lnmp php-fpm restart    # 配置完成后重启PHP让配置生效;

LNMP、OLAINDEX 搭建 OneDrive 网盘

0x06 安装Composer

以上步骤配置了PHP Fileinfo 扩展,删除了禁用的函数;LNMP1.6默认没有安装Composer,而OLAINDEX部署需要Composer

curl -sS https://getcomposer.org/installer | php    # 下载安装PHP版本composer;
mv composer.phar /usr/local/bin/composer    # 移动composer.phar到/usr/local/bin/composer 目录;

LNMP、OLAINDEX 搭建 OneDrive 网盘

0x07 添加网站

LNMP1.6添加网站主机的命令是:lnmp vhost add 根据提示键入相关参数即可;

LNMP、OLAINDEX 搭建 OneDrive 网盘

0x08 跨目录设置

网站添加完毕后,LNMP默认是有跨站、扩目录设置,需要禁用跨站、跨目录设置,否则在OLAINDEX安装完成后打开首页500错误;

cd /root/lnmp1.6/tools    # 进入到lnmp1.6的工具目录;
 ./remove_open_basedir_restriction.sh    # 移除跨站、跨目录设置,其实就是移除网站根目录的 user.ini 文件;

LNMP、OLAINDEX 搭建 OneDrive 网盘

0x09 网站配置

移除跨站、跨目录设置后,还需要设置网站的nginx配置文件;由于我建立网站的是启用的SSL,我们需要在配置文件中添加301跳转https,设置OLAINDEX的目录,取消图片及CSS、JS的缓存设置、和伪静态设置;请参照下图绿色字体部分。lnmp1.6自带了laravel.conf伪静态配置文件,只需要指定伪静态文件名即可,在网站程序根目录后面加入 /public 目录这是OLAINDEX的首页目录。

配置修改完毕后执行:lnmp nginx restart 重启NGINX服务;

LNMP、OLAINDEX 搭建 OneDrive 网盘

0x10 安装OLAINDEX

以下命令一行一个,执行到最后完毕会列出账号(admin)和密码(12345678)

cd /home/wwwroot/您网站的目录    # 进入到网站的根目录;
git clone https://github.com/WangNingkai/OLAINDEX.git tmp    # git拉去代码;
mv tmp/.git .     # 移动tmp文件到根目录;
rm -rf tmp     # 删除tmp目录
git reset --hard     
composer install -vvv    # 这里确保已成功安装 composer ,如果报权限问题,建议给予用户完整权限。
chmod -R 777 storage/*     # 设置storage目录及子目录777权限;
chown -R www:www *      # 设置当前目录所有文件用户组权限为www;
php artisan od:install     # 此处绑定域名根据实际域名填写(包含 http/https)

LNMP、OLAINDEX 搭建 OneDrive 网盘

LNMP、OLAINDEX 搭建 OneDrive 网盘

0x11 绑定OneDrive

至此OLAINDEX已经部署完毕,只需要打开绑定的域名进入到后台,点击「申请」跳转到微软获取应用的ID和机密;

LNMP、OLAINDEX 搭建 OneDrive 网盘

LNMP、OLAINDEX 搭建 OneDrive 网盘

LNMP、OLAINDEX 搭建 OneDrive 网盘

LNMP、OLAINDEX 搭建 OneDrive 网盘

LNMP、OLAINDEX 搭建 OneDrive 网盘

LNMP、OLAINDEX 搭建 OneDrive 网盘

LNMP、OLAINDEX 搭建 OneDrive 网盘

在填入了client_id和client_secret保存后500错误,就需要给目录设置权限后再保存;
chmod -R 777 storage        # 保证缓存的写入权限,,后续每次更新OLAINDEX程序都需要执行这两行权限命令;否则前台500错误
chown -R www:www *        # 设置当前目录所有文件用户组权限为www

LNMP、OLAINDEX 搭建 OneDrive 网盘

LNMP、OLAINDEX 搭建 OneDrive 网盘

LNMP、OLAINDEX 搭建 OneDrive 网盘

LNMP、OLAINDEX 搭建 OneDrive 网盘

0x12 设置缓存

默认 OLAINDEX 使用文件缓存,可以修改为 Laravel 支持的缓存类型,如 “apc”, “array”, “database”, “file”, “memcached”, “redis”等。
如使用 Redis 作为缓存的话,还需要安装 predis 包,手动执行:

 composer require predis/predis    # 执行此命令可能会卡在update

如果你已经安装了 PhpRedis 扩展,可以将 config/database.php中 Redis 配置的client选项修改为phpredis

LNMP、OLAINDEX 搭建 OneDrive 网盘

LNMP、OLAINDEX 搭建 OneDrive 网盘

然后修改.env文件配置,按下图的配置文件修改,每次修改 .env 文件都需要进行缓存清理
php artisan config:cache    # 清理缓存;

LNMP、OLAINDEX 搭建 OneDrive 网盘

0x13 添加任务
crontab -e    # 添加计划任务
* * * * * /usr/local/php/bin/php /home/wwwroot/pan.pangzhan.net/artisan schedule:run >> /dev/null 2>&1    # 将路径修改为你自己的网站路径;
0x14 官方地址

项目地址:https://github.com/WangNingkai/OLAINDEX

官方文档:https://wangningkai.github.io/OLAINDEX