Rat's

一款好用、美观的OneDrive目录列表程序:OLAINDEX
说明:之前我们使用的最多的OneDrive目录列表程序就是Oneindex,博主已经写了很多使用教程了,最近有大佬...
扫描右侧二维码阅读全文
14
2018/10

一款好用、美观的OneDrive目录列表程序:OLAINDEX

说明:之前我们使用的最多的OneDrive目录列表程序就是Oneindex,博主已经写了很多使用教程了,最近有大佬受Oneindex启发,功能借鉴其思想,写出一个基于laravel5框架的OneDrive目录列表程序,看上去很不错,这里分享下。

截图

请输入图片描述

简介

  • OneDrive目录索引;
  • 基于最新PHP框架laravel5搭建而成;
  • 基于bootswatch响应式页面布局,适配PC、平板、手机;

功能

  • OneDrive目录查看索引,支持分页查看;
  • 图床功能(国内不太稳低);
  • 支持文件路径一键复制、下载;
  • 支持代码、图片、文本文件即时预览;
  • 支持音视频播放(兼容大部分格式),视频播放采用Dplayer,音乐播放采用Aplayer
  • 支持文件夹加密(需管理员);
  • 支持文件上传(需管理员);
  • 支持readme/head说明文件添加/编辑/删除;
  • 支持文件搜索(需管理员);
  • 支持自定义创建文件夹(需管理员);
  • 支持文件/文件夹删除(需管理员);
  • 后台基本管理,支持主题,预览设置等等(清理缓存后及时生效)(需管理员)。
  • v2.0全新路径显示(pathinfo
  • 添加看图相册
  • 配置文件化,不再依赖数据库

TODO

  • 共享目录支持
  • 支持视频字幕,音频歌词
  • 支持后台大文件上传,断点续传

环境要求

PHP >= 7.1.3
OpenSSL PHP
PHP PDO 扩展
PHP Mbstring 扩展
PHP Tokenizer 扩展
PHP XML 扩展
PHP Ctype 扩展
PHP JSON 扩展
PHP Fileinfo 扩展(非必需,但最好安装)

安装

Github地址:https://github.com/WangNingkai/OLAINDEX

这里为了方便,可以直接使用宝塔搭建lnmp环境。

1、安装宝塔

#Centos系统
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

#Ubuntu系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh

#Debian系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && bash install.sh

然后进入后台再安装PHP 7.2Nginx,这里基本上除了Fileinfo扩展,其余都默认安装好了。

接下来再找到左侧软件管理-PHP管理-设置-安装Fileinfo扩展(非必需扩展,不过不安装的话,不保证安装程序能成功)。

#如果Fileinfo拓展安装失败,就是内存太小,我们可以添加swap,不适用于ovz
1、脚本添加,脚本地址:https://www.moerats.com/archives/722/。
2、面板添加,找到左侧软件管理-系统工具-安装Linux工具箱,然后进入工具箱添加。

然后同样的在PHP设置里找到禁用函数,删除proc_openproc_get_statusputenv函数,最后重启PHP

2、安装Composer

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

3、安装程序
我们先点击左侧网站,添加域名,此时网站根目录就是/www/wwwroot/xx.com

运行命令:

#将域名修改成自己的再运行
cd /www/wwwroot/xx.com
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 * #此处www根据服务器具体用户组而定
composer run install-app

5、伪静态设置
点击域名设置-网站目录,运行目录选择public,并把防跨站的勾去掉并重启PHP。然后点击伪静态,输入以下代码:

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

最后就可以打开域名进行安装配置了。
请输入图片描述
注意回调地址redirect_uri需要是https地址,可以直接在宝塔开启免费SSL证书。如果你使用上面的一键申请绑定账号失败了,可以试试手动申请client_idclient_secret,申请方法→传送门

后台地址:https://xx.com/admin,密码:12345678

特殊文件功能

#不建议创建和以下同名的文件夹和文件,否则会导致文件无法查看下载
README.md、HEAD.md 、.password 、.deny特殊文件使用

#在文件夹底部添加说明
在onedrive的文件夹中添加README.md文件,使用markdown语法。

#在文件夹头部添加说明
在onedrive的文件夹中添加HEAD.md 文件,使用markdown语法。

#加密文件夹
在onedrive的文件夹中添加.password文件,填入密码,密码不能为空。

#禁止访问文件夹
在onedrive的文件夹中添加.deny文件,该文件夹被禁止访问。

其它设置

#重置全部数据,删除数据库数据
php artisan od:reset

#重置OneDrive登陆账号
php artisan od:logout
    
#升级程序
git pull
composer install -vvv
php artisan od:update

如果你出现了一些问题可以先查看→传送门

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2020 年 07 月 19 日 12 : 16 AM

发表评论

156 条评论

  1. 免贵姓操

    cp: 无法获取"database/database.sample.sqlite" 的文件状态(stat): 没有那个文件或目录

    这是啥情况阿!

    1. Rat's
      @免贵姓操

      这个文件没了,教程有变,更新了下,再试试,作者提供的安装文档:https://wangningkai.github.io/OLAINDEX/#/install

      1. 免贵姓操
        @Rat's

        。。。。断更这么久,还以为你失踪了,原来还健在阿,哈哈

        1. Rat's
          @免贵姓操

          咸鱼了而已

  2. qwertyuiop1822

    [root@VM-32-9-centos oneindex]# php artisan od:install
    PHP Warning: require(/www/wwwroot/oneindex/vendor/autoload.php): failed to open stream: No such file or directory in /www/wwwroot/oneindex/artisan on line 18

    Warning: require(/www/wwwroot/oneindex/vendor/autoload.php): failed to open stream: No such file or directory in /www/wwwroot/oneindex/artisan on line 18
    PHP Fatal error: require(): Failed opening required '/www/wwwroot/oneindex/vendor/autoload.php' (include_path='.:/www/server/php/72/lib/php') in /www/wwwroot/oneindex/artisan on line 18

    Fatal error: require(): Failed opening required '/www/wwwroot/oneindex/vendor/autoload.php' (include_path='.:/www/server/php/72/lib/php') in /www/wwwroot/oneindex/artisan on line 18

    1. qwertyuiop1822
      @qwertyuiop1822

      大佬, 这个怎么解决

      1. qwertyuiop1822
        @qwertyuiop1822

        折腾了几天,发现80x86/olaindex docker版本最省事。

        1. Rat's
          @qwertyuiop1822

          肯定docker方便省事多,就是出了问题有点不好维护

  3. mzrme

    大佬,OLAINDEX 5.0出了,来个教程吧

    1. Rat's
      @mzrme

      我好像只看到了4.0

      1. 苏寅
        @Rat's

        确实有5.0版本:https://github.com/WangNingkai/OLAINDEX/tree/5.0

        1. Rat's
          @苏寅

          居然还在更新,这类好多不更新了

          1. 苏寅
            @Rat's

            试着安装了好几遍5.0版本,但是一直在首页报SQLSTATE[HY000]: General error: 1 no such table: accounts (SQL: select "id", "remark" from "accounts" where "status" = 1)这个错误,不知道该怎么搞。。。

            1. 苏寅
              @苏寅

              已解决

          2. 苏寅
            @Rat's

            对啊,像pyone,oneindex等都不更新了。可能是受OLAINDEX-Magic影响吧,所以更新了。

  4. 白劭

    请问OLAINDEX队列刷新在宝塔面板Supervisor插件里怎么设置呢

  5. 爱好者博客

    博主请问,这个程序我已经搭建完成了,放了一些电影上去,在线观看很卡,下载速度也很慢,有什么办法解决吗

    1. Rat's
      @爱好者博客

      这个得看微软,现在速度好像都不太给力

  6. k

    哪一步都没报错,就是网站进不去。。。。但是我的php里本来就没有proc_get_status这个函数

  7. 西瓜

    最后确认绑定的出错,登录错误,不知道咋办
    AADSTS700016: Application with identifier 'zzXXXXXXXX95*$]' was not found in the directory '40b2e8eb-XXXXXX-e9ef7b04e'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You may have sent your authentication request to the wrong tenant.

    1. Rat's
      @西瓜

      手动申请的client_id、client_secret吗

  8. 宝龙

    一直500

    1. 宝龙
      @宝龙

      内部服务器错误
      服务器遇到内部错误或配置错误,无法完成您的请求。

      请通过webmaster@example.com与服务器管理员联系,以告知他们该错误发生的时间以及您在此错误发生之前执行的操作。

      服务器错误日志中可能会提供有关此错误的更多信息。

      gj.lcai.vip端口80上的Apache服务器

      1. Rat's
        @宝龙

        500应该是数据库的问题,参考这个链接:https://wangningkai.github.io/OLAINDEX/#/question

  9. 瀚文

    博主你好,在执行composer install -vvv时出现以下问题,请问如何解决
    [root@vultr share.hanwen.life]# composer install -vvv
    Reading ./composer.json
    Loading config file /root/.config/composer/config.json
    Loading config file /root/.config/composer/auth.json
    Loading config file ./composer.json
    Checked CA file /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem: valid
    Executing command (/www/wwwroot/share.hanwen.life): git branch --no-color --no-abbrev -v
    Failed to initialize global composer: Composer could not find the config file: /root/.config/composer/composer.json
    To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
    Reading /www/wwwroot/share.hanwen.life/vendor/composer/installed.json
    Running 1.9.1 (2019-11-01 17:20:17) with PHP 7.3.12 on Linux / 3.10.0-1062.4.1.el7.x86_64
    Do not run Composer as root/super user! See https://getcomposer.org/root for details
    Reading ./composer.lock
    Loading composer repositories with package information
    Installing dependencies (including require-dev) from lock file
    Reading ./composer.lock
    Resolving dependencies through SAT
    Looking at all rules.

    Dependency resolution completed in 0.001 seconds
    Analyzed 270 packages to resolve dependencies
    Analyzed 830 rules to resolve dependencies
    Nothing to install or update
    Generating optimized autoload files

    post-autoload-dump: IlluminateFoundationComposerScripts::postAutoloadDump
    post-autoload-dump: @php artisan package:discover
    Executing command (CWD): '/www/server/php/73/bin/php' -d allow_url_fopen='1' -d disable_functions='passthru,system,chroot,chgrp,chown,popen,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv' -d memory_limit='1536M' artisan package:discover

    The environment file is invalid!
    Failed to parse dotenv file due to unexpected whitespace. Failed at [php artisan od:install].
    Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1

    谢谢!

  10. Elizen

    打开是 502 错误,会是什么情况啊?