前言

刚买的 OneDrive国际版 1TB只用在 VPS备份 有那么一点点的浪费 今天我终于下定决心(工作时间偷个懒)整了个 OneDrive目录列表程序,配合该博客当一个专属网盘,其主要目的是分享一些文件给有缘人下载。我大致浏览了一遍网上的教程,最后选择了 OLAINDEX

最开始用的是官方版本,后来更换到魔改版本,安装过程中碰到了一丁点问题,最终还是在 LNMP环境下部署成功了,现在来记录下。

2020-08-24 花 ¥80大洋又买了个第三方提供的 OneDrive 世纪互联版 5TB :国内服务器、很理想的访问速度、值得说明的是该账户不是从官网购买的、因此不放重要文件、目前 自用离线下载网盘、方便在线看电影~

挂载教程:魔改版rclone挂载世纪互联onedrive

准备工作

默认你已安装好LNMP在服务器上

1.修改 php.ini文件

#修改PHP配置,把 exec 、 shell_exec 、 proc_open 、proc_get_status 这四个函数从以下文档中删除
vim /usr/local/php/etc/php.ini

#重启php
lnmp php-fpm restart

2.添加域名解析:把要当做网盘的域名添加一条A记录到服务器IP(温馨提示:如果你是用 cloudflare管理DNS的话,为了后面添加虚拟机时能顺便把 ssl证书一起申请成功。请先不要点亮cloudflare里那朵橘色的云,即你新增加的解析先让它处于 DNS only状态(灰色的云朵)。

3.添加虚拟机

lnmp vhost add

##不需要新建数据库
##伪静态规则那里填写laravel即可

Please enter domain(example: www.lnmp.org): odrive.sgq.moe
Your domain: odrive.sgq.moe

Enter more domain name(example: lnmp.org *.lnmp.org): 
Please enter the directory for the domain: odrive.sgq.moe

Default directory: /home/wwwroot/odrive.sgq.moe: 
Virtual Host Directory: /home/wwwroot/odrive.sgq.moe

Allow Rewrite rule? (y/n) y
Please enter the rewrite of programme, 
wordpress,discuzx,typecho,thinkphp,laravel,codeigniter,yii2 rewrite was exist.
(Default rewrite: other): laravel
You choose rewrite: laravel

Enable PHP Pathinfo? (y/n) y
Enable pathinfo.

Allow access log? (y/n) n
Disable access log.

Create database and MySQL user with same name (y/n) n

Add SSL Certificate (y/n) y
1: Use your own SSL Certificate and Key
2: Use Let's Encrypt to create SSL Certificate and Key
Enter 1 or 2: 2

Let's Encrypt证书申请成功了的话,随时都可以回去cloudflare去点亮橘色的云,即 Proxied状态。

开始安装

1.参考官方文档的手动安装,依次输入命令到终端即可,注意web目录要更改为你实际的:

cd /home/wwwroot/odrive.sgq.moe
git clone https://github.com/YukiCoco/OLAINDEX-Magic.git tmp 
mv tmp/.git . 
rm -rf tmp 
git reset --hard 
cp database/database.sample.sqlite database/database.sqlite  # 数据库文件
composer install -vvv # 这里确保已成功安装 composer ,如果报权限问题,建议给予用户完整权限。
chmod -R 777 storage 
chown -R www:www * # 此处 www 根据服务器具体用户组而定
php artisan od:install # 此处绑定域名需根据实际域名谨慎填写(包含http/https)
Bind Domain(For Authorize):
 > https://odrive.sgq.moe/ #这里输入url

基本上这样子就已经安装成功了。

2.修改虚拟机的伪静态配置文件

vim /usr/local/nginx/conf/vhost/odrive.sgq.moe.conf

#运行目录指向public
root  /home/wwwroot/odrive.sgq.moe/
修改为
root  /home/wwwroot/odrive.sgq.moe/public;

#为防止访问图片等404,注释掉下边代码
#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        #{
        #    expires      30d;
        #}

        #location ~ .*\.(js|css)?$
        #{
        #    expires      12h;
        #}

2020-08-18记录

问题:SSL证书到期了没有自动续期...

原因:具体看这位博主的记录分析。在上面我们手动修改了虚拟机的伪静态配置文件,把运行目录指向 public,这就导致 Let'sEncrypt 记录的原始路径是不带 public 的路径。

解决方法:对应地修改虚拟机的 SSL配置文件,把里面的路径也改成有 public 目录的就可以了。

vim /usr/local/nginx/conf/ssl/域名/域名.conf
将
Le_Webroot='/home/wwwroot/odrive.sgq.moe'
修改为
Le_Webroot='/home/wwwroot/odrive.sgq.moe/public'

接着重新执行LNMP一键脚本自带的 acme脚本即可。

如果不顺利,可以手动 lnmp ssl add操作一番,注意虚拟机路径要填写正确的路径即 /home/wwwroot/odrive.sgq.moe/public

3.取消防跨目录,参考这里的

cd /root/lnmp1.6/tools && ./remove_open_basedir_restriction.sh

最后,执行 lnmp nginx reload重启下nginx。

4.添加任务调度器,参考这里的

后台定时刷新 token 和缓存,可适当加速页面的访问。

crontab -e

#然后添加如下定时任务,路径根据自己目录进行更改。
* * * * * /usr/local/php/bin/php /home/wwwroot/odrive.sgq.moe/artisan schedule:run >> /dev/null 2>&1

绑定OneDrive

现在你就可以打开域名进行最后的安装了:

  • 后台地址:https://你的域名/admin
  • 默认用户名:admin
  • 密码:12345678

参考官方文档推荐的一键申请

最后记得进入后台管理,修改默认密码,设置网盘分享文件夹,主题颜色,等等

Last modification:December 11, 2020
如果觉得我的文章对你有用,请随意赞赏