OLAINDEX是一款OneDrive目录文件索引应用,基于优雅的 PHP 框架 Laravel5.8 搭建,并通过 Microsoft Graph 接口获取数据展示,支持多类型帐号登录,多种主题显示,简单而强大。OneDrive 目录查看索引分页查看;支持代码、图片、文本文件即时预览、图片列表栏展示;支持音视频播放(兼容大部分格式),视频播放采用 Dplayer.js,音乐播放采用 Aplayer;支持自定义创建文件夹、文件夹加密、文件/文件夹删除、文件/文件夹的复制与移动;支持文件搜索、文件上传、文件直链分享与删除、文件直链一键下载;支持管理 readme/head 说明文件;支持图床;支持命令行操作;支持文件离线下载(个人版);后台基本显示管理,多主题管理,文件预览管理等等(清理缓存后及时生效);支持世纪互联;支持多种缓存系统(Redis、Memcached等);更多功能欢迎亲自尝试。
0x01 界面预览
本博搭建的OLAINDEX→ 私有网盘
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 扩展;
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让配置生效;
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 目录;
0x07 添加网站
LNMP1.6添加网站主机的命令是:lnmp vhost add 根据提示键入相关参数即可;
0x08 跨目录设置
网站添加完毕后,LNMP默认是有跨站、扩目录设置,需要禁用跨站、跨目录设置,否则在OLAINDEX安装完成后打开首页500错误;
cd /root/lnmp1.6/tools # 进入到lnmp1.6的工具目录; ./remove_open_basedir_restriction.sh # 移除跨站、跨目录设置,其实就是移除网站根目录的 user.ini 文件;
0x09 网站配置
移除跨站、跨目录设置后,还需要设置网站的nginx配置文件;由于我建立网站的是启用的SSL,我们需要在配置文件中添加301跳转https,设置OLAINDEX的目录,取消图片及CSS、JS的缓存设置、和伪静态设置;请参照下图绿色字体部分。lnmp1.6自带了laravel.conf伪静态配置文件,只需要指定伪静态文件名即可,在网站程序根目录后面加入 /public 目录这是OLAINDEX的首页目录。
[mark_e]配置修改完毕后执行:lnmp nginx restart 重启NGINX服务;[/mark_e]
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)
0x11 绑定OneDrive
至此OLAINDEX已经部署完毕,只需要打开绑定的域名进入到后台,点击「申请」跳转到微软获取应用的ID和机密;
在填入了client_id和client_secret保存后500错误,就需要给目录设置权限后再保存;
chmod -R 777 storage # 保证缓存的写入权限,,后续每次更新OLAINDEX程序都需要执行这两行权限命令;否则前台500错误 chown -R www:www * # 设置当前目录所有文件用户组权限为www
0x12 设置缓存
默认 OLAINDEX 使用文件缓存,可以修改为 Laravel 支持的缓存类型,如 “apc”, “array”, “database”, “file”, “memcached”, “redis”等。
如使用 Redis 作为缓存的话,还需要安装 predis 包,手动执行:
composer require predis/predis # 执行此命令可能会卡在update
如果你已经安装了 PhpRedis 扩展,可以将 config/database.php中 Redis 配置的client选项修改为phpredis
然后修改.env文件配置,按下图的配置文件修改,每次修改 .env 文件都需要进行缓存清理
php artisan config:cache # 清理缓存;
0x13 添加任务
crontab -e # 添加计划任务 * * * * * /usr/local/php/bin/php /home/wwwroot/pan.pangzhan.net/artisan schedule:run >> /dev/null 2>&1 # 将路径修改为你自己的网站路径;
[mark_e]0x14 官方地址[/mark_e]