天策无双
一个优雅的个人主义者

「独家教程」LNMP环境使用OLAINDEX搭建OneDeive网盘程序

本文共 3656 个字,预计阅读需要 7 分钟
原先的 PyOne 罢工了,正好换换口味,找了个 OLAINDEX 程序,结果发现网上全是基于宝塔面板的教程,这不是歧视非宝塔用户吗?没办法,谁叫自己不愿意用面板程序呢,只能撸起袖子自己干了。

这是我第三次安装 OneDrive 程序了,前面装过 PyOne 和 CuteOne 网盘程序,总体挺顺利的,没想到这次是踩坑最多的一次。

OLAINDEX 是由@Wang Ningkai 开发的一款 OneDrive 目录索引程序,基于最新 PHP 框架 Laravel5 搭建而成, Bootswatch 响应式页面布局,适配 PC、平板、手机。

OLAINDEX 网盘程序

环境配置

我是使用军哥 LNMP1.6 安装的环境,下面的教程默认在此环境下进行,一般 LNMP1.4/1.5 可以通用此教程。

前期准备:

  • 内存: 512M 以上,推荐 768M 以上
  • 硬盘: 100M 以上可用硬盘空间
  • 系统: CentOS 6.x / 7.x (Ubuntu、Debian)
  • 一个域名以及一个 OneDrive 账号

环境要求:

  • PHP >= 7.1.8
  • OpenSSL PHP
  • PHP PDO 扩展
  • PHP Mbstring 扩展
  • PHP Tokenizer 扩展
  • PHP XML 扩展
  • PHP Ctype 扩展
  • PHP JSON 扩展
  • PHP Fileinfo 扩展

PHP 扩展安装

以上扩展基本在安装 LNMP 环境的时候都配置好了,除了最后一个 PHP Fileinfo 扩展,大家可以在phpinfo页面查缺补漏。

这里介绍一下 PHP Fileinfo 扩展的安装方法:

如果你是第一次安装或者准备重新安装环境,可以直接开启 Fileinfo 扩展,在执行安装之前,修改lnmp1.6目录中的lnmp.conf文件,将对应的选项改为开启即可。

如果是已经安装完 lnmp 环境,则可以重新编译 PHP 或者升级 PHP 到合适的版本,在执行升级前,先修改lnmp1.6目录中的lnmp.conf文件,在PHP_Modules_Arguments=""参数的双引号里添加 PHP_Fileinfo 模块,若需要多个模块参数用空格隔开,然后再运行以下升级命令即可。

./upgrade.sh php

移除禁用函数

在目录/usr/local/php/etc中编辑php.ini配置文件,移除proc_openproc_get_statusexecshell_exec这几个函数。

然后执行以下命令,重启 PHP 程序。

lnmp php-fpm restart

安装 Composer

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

如果出现是否覆盖,可以选择是,覆盖原先的文件。

添加网站

运行lnmp vhost add添加网站,按提示添加域名、目录、是否伪静态以及开启日志等内容。

伪静态设置

关于伪静态的设置,可以在添加网站的时候,直接选择伪静态规则为laravel规则即可。

或者是自行添加以下命令到配置文件中:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

取消防跨目录

添加网站成功后,必须要执行的一个就是取消防跨目录访问的设置。

如果没有设置好,打开网站就会出现 500 错误,这种错误页面和后面的 500 错误不同,注意区分。

OLAINDEX 没有防跨目录设置,500 错误

/root/lnmp1.6/tools目录下执行以下命令:

 ./remove_open_basedir_restriction.sh

然后输入设置的域名,即可移除user.ini文件,取消防跨目录访问。

在 Thinkphp、codeigniter、Laravel 等框架下,网站目录一般是在 public 下,但是 public 下的程序要跨目录调用 public 上级目录下的文件,因为 LNMP 默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉,才能正常工作。

修改网站目录

这里需要修改 /usr/local/nginx/conf/vhost 文件夹中对应的配置文件,将目录修改成你域名对应的public目录。

root /home/wwwroot/你的域名/public;

重载 Nginx

lnmp nginx reload

程序安装

依次执行以下命令:

cd /home/wwwroot/你的网站目录
git clone https://github.com/WangNingkai/OLAINDEX.git tmp 
mv tmp/.git . 
rm -rf tmp 
git reset --hard 
composer install -vvv # 这里确保已成功安装 composer ,如果报权限问题,建议给予用户完整权限。
chmod -R 777 storage/*
chown -R www:www * 
php artisan od:install # 此处绑定域名根据实际域名填写(包含 http/https)

基本上不报错,目录权限没问题,就可以进入最后一步,绑定 OneDrive 了。

绑定 OneDrive

现在可以打开域名进行最后的安装了,后台地址:https://你的域名/admin,默认用户名:admin密码:12345678

打开后按照指示进行操作,这里提供应用信息查看地址。

旧版应用界面地址,点击这里,新版应用界面地址,点击这里

OLAINDEX 绑定 OneDrive 网盘

添加应用机密也就是client_secret和应用 ID 到相应位置,点击绑定即可。

注意回调地址 redirect_uri 需要是 https 地址,还有不要搞错应用机密和应用 ID 的位置,不要填反了。

这一步可能会出现很多问题,基本是目录权限和账号的问题,大家就自行搜索网络解决了,多试几下,基本都可以解决。

最后,如果升级程序,需要重新执行目录权限,不然网站 500 错误。

chmod -R 777 storage        # 保证缓存的写入权限
chown -R www:www *

缓存配置

默认 OLAINDEX 使用文件缓存,可以修改为 Laravel 支持的缓存类型,如 “apc”, “array”, “database”, “file”, “memcached”, “redis”等。

如使用 Redis 作为缓存的话,还需要安装 predis 包,手动执行:

 composer require predis/predis

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

Laravel 使用 PhpRedis 扩展缓存

这样就不用安装 predis 包了,而且可以看到 Laravel 默认使用数据库 1 进行缓存文件,你也可以修改成自己想要的数据库。

然后修改.env文件配置

CACHE_DRIVER=redis # 这里是缓存类型,修改成你要的类型
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

然后需要执行

php artisan config:cache

连接 redis 查看运行效果:

OLAINDEX 网盘程序使用 redis 运行效果查看

任务调度

推荐添加此任务调度器,后台定时刷新 token 和缓存,可适当加速页面的访问。

crontab -e

然后添加如下定时任务,路径根据自己目录进行更改。

* * * * * /usr/local/php/bin/php /home/wwwroot/pan.tiance.me/artisan schedule:run >> /dev/null 2>&1

每次修改.env文件或配置时,需要运行以下命令确保配置更改生效。

php artisan config:cache

提示Could not open input file: artisan说明目录不对,需要切换到程序所在目录。

踩坑的地方

毕竟和网上宝塔面板的教程有所不同,所以踩坑是难免的,基本上比较难的地方就是添加网站这部分了,其余的和网上其他教程没有太大差异。

网页 500 错误

这个 500 错误一个是前面防跨目录没有设置好,另一个就是下面的目录权限问题了。

OLAINDEX 目录权限不足首页 500 错误

前后折腾了挺久,有时网站频繁报 500 错误,最后找了半天原因,最后是chown -R www:www *解决,但是其实我前面已经执行过了,可能授权过程中又生成了关键文件,因此只需要再次运行命令即可解决问题。

绑定失效

出现了很多次的点击绑定,结果页面上应用机密和应用 ID 是空的,我前后申请了五六次都是这样,网上说是目录权限的问题,其实我自己也忘记怎么解决了。

OLAINDEX 绑定网盘时应用机密和应用 ID 为空

首页 403 错误

一切流程都走完的时候,结果出现了下面的图片,心中哇凉哇凉的。

OLAINDEX 首页 URL 403 错误

最吐血的就是 403 报错了,程序安装完了,但是首页弹出 URL 403 错误,最后找了半天,别人说等一会就会自动好了。

然后我等了 5 分钟、10 分钟、20 分钟半个小时过去了,还是一样,我都以为是不是又跪了。

最后过了一个多小时,再次打开首页,成功了。

总结

折腾的道路上总是布满荆棘,但只要多多尝试,终究都会成功的。

本站演示:https://pan.tiance.me

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

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

赞(0) 打赏
本博客内容如无特殊说明皆为原创,未经允许不得转载:天策无双 » 「独家教程」LNMP环境使用OLAINDEX搭建OneDeive网盘程序
分享到: 更多 (0)

打赏鼓励博主创作更多优质内容!

支付宝扫一扫打赏

微信扫一扫打赏