LNMP、OLAINDEX 搭建 OneDrive 网盘

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]

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

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

相关推荐
python ERROR: Command errored out with exit status 1:
Windows Server 2016 搭建 SMB 共享文件
Windows Server 2019 域环境搭建 SMB 共享文件服务
Parallels Desktop 15.1.3