Rat's

OneIndex一键安装脚本 for Debian
说明:OneIndex很久前就介绍过了,一个目录列表程序,可以将OneDrive网盘里面的文件列出来供我们查看/下...
扫描右侧二维码阅读全文
07
2018/08

OneIndex一键安装脚本 for Debian

说明:OneIndex很久前就介绍过了,一个目录列表程序,可以将OneDrive网盘里面的文件列出来供我们查看/下载,而且并不会消耗服务器的流量和空间,很是强大,之前该程序只适用于OneDrive Business账号,很多人不知道怎么搞,博主也没怎么在意,现在已经支持OneDrive个人账号了,估计很多人会用到,这里为了让部分小白快速上手,这里就整了个一键脚本,如果你不喜欢脚本或者服务器已有Web网站环境,可参考教程:OneIndex安装教程,进行手动安装。

截图

请输入图片描述
请输入图片描述
请输入图片描述

更新

【2018.12.30】
修复重定向次数过多的问题,现已修复(这个抱歉,忘记在脚本里注释部分$,导致出了点小问题)。
【2018.12.22】
替换伪静态规则,调整缓存刷新时间
【2018.12.21】
修复一点小问题,并增加定时刷新缓存和token,并优化脚本步骤信息的提示

功能

#以下为大致功能
缩略图功能
命令行上传功能
响应式,支持小屏设备
图片、视频、音频在线预览
代码在线查看(js、css、html、sh、php、java、md等)
README.md支持,解析各目录下(onedirive目录下)README.md文件,在页面尾部展示。
HEAD.md支持,在页面头部展示
.password文件夹加密
在线视频播放器替换成Dplayer
在线视频播放支持mp4、webm,avi、mpg、mpeg、rm、rmvb、mov、wmv、mkv、asf。
cli文件夹上传(单线程)
不同后缀展示设置
文件直接输出
文件上传管理(后台)
图床功能

安装

Github地址:https://github.com/donwa/oneindex

系统要求:脚本只适用于Debian 8、9,且无网站环境,会自动签发Let's Encrypt SSL证书,请提前将域名解析至VPS服务器。

运行命令:

wget https://www.moerats.com/usr/shell/OneIndex.sh && bash OneIndex.sh

安装完成后,打开域名,按照提示进行安装配置。
请输入图片描述
请输入图片描述
请输入图片描述
后台地址:https://xx.com/?/admin,默认密码:oneindex,网站根目录/home/wwwroot/xx.com

提示:这里好几个同学反映进不去后台,博主看了下原因,顺便再说下,安装好了后,需要先访问自己的域名,然后绑定OneDrive账号了才能访问后台,不然是进不去后台的!

绑定OneDrive后建议先访问后台,如果前台出现HTTP ERROR 500的情况,可以重新下载源码后再绑定账号,使用命令:

#将domain.com改成你的域名再运行以下命令
cd /home/wwwroot/domain.com
rm -rf ./*
git clone https://github.com/iiiiiii1/Oneindex.git
mv oneindex/* ./
chmod -R 777 config/ cache/

特殊文件实现功能

README.mdHEAD.md、.password特殊文件使用。

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

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

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

#直接输出网页
在onedrive的文件夹中添加index.html文件,程序会直接输出网页而不列目录,配合文件展示设置-直接输出效果更佳。

命令行功能

仅能在php cli模式下运行,且以下命令均在网站根目录/home/wwwroot/xx.com运行。

#清除缓存 
php one.php cache:clear

#刷新缓存 
php one.php cache:refresh

#刷新令牌:  
php one.php token:refresh

#上传文件  
php one.php upload:file 本地文件 [onedrive文件]

#上传文件夹
php one.php upload:folder 本地文件夹 [onedrive文件夹]

上传示例:

#上传demo.zip 到onedrive 根目录  
php one.php upload:file demo.zip  

#上传demo.zip 到onedrive /test/目录  
php one.php upload:file demo.zip /test/  

#上传demo.zip 到onedrive /test/目录并命名为 d.zip  
php one.php upload:file demo.zip /test/d.zip  

#上传up/ 到onedrive /test/  
php one.php upload:file up/ /test/

获取OneDrive 5T网盘

如果我们使用个人版网盘的话,容量好像不够,这时候我们就可以使用OneDrive Business账号了,总共有5T容量,如果你有钱可以直接去官网买,没钱就可以使用方法免费获取了,这里推荐如有乐享博客分享的获取OneDrive 5T网盘的方法,查看:申请OneDrive 5T 网盘便民方法和邮箱

申请方法大致流程:

1、进入注册地址https://products.office.com/en-us/student?tab=students
2、输入如有乐享提供的临时邮箱
3、填入密码,和从临时邮箱获取的验证码

如果SSL证书过期,这里给个更新命令:

#修改为你的域名
domain="www.moerats.com"
service nginx stop
~/.acme.sh/acme.sh --issue -d ${domain} --standalone -k ec-256 --force
~/.acme.sh/acme.sh --installcert -d ${domain} --fullchainpath /home/wwwroot/ssl/OneIndex.crt --keypath /home/wwwroot/ssl/OneIndex.key --ecc
service nginx start
Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2020 年 04 月 27 日 11 : 58 PM

发表评论

158 条评论

  1. anymous

    我用你的报错
    Dec 27 19:54:57 debian systemd[1]: Starting A high performance web server and a reverse proxy server...
    Dec 27 19:54:57 debian nginx[9698]: nginx: [emerg] invalid condition "!-f" in /etc/nginx/conf.d/OneIndex.conf:20
    Dec 27 19:54:57 debian nginx[9698]: nginx: configuration file /etc/nginx/nginx.conf test failed
    Dec 27 19:54:57 debian systemd[1]: nginx.service: Control process exited, code=exited status=1
    Dec 27 19:54:57 debian systemd[1]: Failed to start A high performance web server and a reverse proxy server.
    Dec 27 19:54:57 debian systemd[1]: nginx.service: Unit entered failed state.
    Dec 27 19:54:57 debian systemd[1]: nginx.service: Failed with result 'exit-code'.
    root@debian:/var/tmp# systemctl start nginx.service
    Job for nginx.service failed because the control process exited with error code.
    See "systemctl status nginx.service" and "journalctl -xe" for details.
    root@debian:/var/tmp# nano /etc/nginx/conf.d/OneIndex.conf
    root@debian:/var/tmp# systemctl start nginx.service
    Job for nginx.service failed because the control process exited with error code.
    See "systemctl status nginx.service" and "journalctl -xe" for details.
    root@debian:/var/tmp# systemctl status nginx.service
    ● nginx.service - A high performance web server and a reverse proxy server
    Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Thu 2018-12-27 20:20:06 CST; 27s ago

    Docs: man:nginx(8)

    Process: 9841 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
    Main PID: 10300 (code=exited, status=0/SUCCESS)

    1. Rat's
      @anymous

      抱歉,可能是我之前修改了伪静态,nginx不识别其中一个参数,导致启动失败,现在已修复了,你再试试。

      1. anymous
        @Rat's

        ok
        感谢

  2. 小白

    em.....新上传文件后,所有文件打开后网页都变成了“404 Not Found”。

    1. Rat's
      @小白

      这个看是不是缓存问题,多等几分钟看看或者刷新下,还不行的话,我亲自看看。

    2. 小白
      @小白

      404的问题已经解决,应该是伪静态的问题,打扰了。PDF那个依然不知道怎么回事。。。

      1. Rat's
        @小白

        在后台文件展示设置那里添加下文档格式看看,顺便能提供下你的伪静态吗?

  3. 小白

    请教一下,系统已经安装成功,部分文件上传也显示,比如mp3也会播放,doc也会显示,但是打开pdf文件会显示“The URL of the original file is not valid or the document is not publicly accessible.
    Verify the URL is correct, then contact the document owner.”
    很奇怪,都是在一个文件夹下的啊,为什么其他的可以,pdf不可以呢?

    1. Rat's
      @小白

      也许有些格式不支持吧,不过后台貌似可以直接添加文件格式。

      1. 小白
        @Rat's

        我添加了 pdf,但是还是无法查看,地址是 mrlinqian.com 麻烦了。静态那个我取消就好了。

        1. Rat's
          @小白

          好像不支持查看,你可以去Github问下作者。

          1. 小白
            @Rat's

            感谢。

  4. 闷闷

    博主 怎么不显示图片啊 一直显示不出来 视频也加载不出来 但是onedrive里面是问题的

    1. Rat's
      @闷闷

      初步估计是API问题,现在抽风厉害。

  5. Crazysnail

    想咨询下博主,我之前也成功安装了OneIndex来显示OneDrive网盘中的内容,可是过个把月OneIndex显示列表下啥也没了,上次出现这个问题重装了OneIndex解决了,现在又出现这问题了,想问下这个可能由什么原因引起的呢。感谢

    1. Rat's
      @Crazysnail

      好像是API抽风了,前几天很多人都出现炸了的情况。

  6. ldy

    请问dns解析Ip与本机ip不匹配有影响吗
    另80端口被占用怎么解决啊
    谢谢

    1. Rat's
      @ldy

      影响就是安装出问题,申请SSL的时候解析IP必须与服务器一样。是不是预装了Apache程序?netstat -lnp|grep 80用这个命令看看,80被什么程序占了。

      1. ldy
        @Rat's

        tcp 0 0 0.0.0.0:6800 0.0.0.0:* LISTEN 789/aria2c
        tcp6 0 0 :::6800 :::* LISTEN 789/aria2c
        unix 2 [ ACC ] STREAM LISTENING 13800 843/systemd /run/user/0/gnupg/S.gpg-agent.browser
        unix 2 [ ACC ] STREAM LISTENING 13802 843/systemd /run/user/0/gnupg/S.gpg-agent.ssh
        unix 2 [ ACC ] STREAM LISTENING 13804 843/systemd /run/user/0/gnupg/S.gpg-agent.extra

        1. Rat's
          @ldy -端口检测有问题,我下掉端口检测,你重新运行脚本。
          1. ldy
            @Rat's

            你好 我重新运行了 还是存在端口检测

          2. ldy
            @Rat's

            你需要重新做一个安装命令吗?

            1. Rat's
              @ldy

              先删掉本地脚本,rm -rf OneIndex.sh,然后重新安装脚本。

              1. ldy
                @Rat's

                nginx.service - A high performance web server and a reverse proxy server
                Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
                Active: failed (Result: exit-code) since Mon 2018-12-03 13:29:56 CST; 1min 49s ago

                Docs: man:nginx(8)

                Process: 1365 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
                Process: 3281 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
                Process: 3277 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
                Main PID: 803 (code=exited, status=0/SUCCESS)

                Dec 03 13:29:53 debian nginx[3281]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
                Dec 03 13:29:54 debian nginx[3281]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
                Dec 03 13:29:54 debian nginx[3281]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
                Dec 03 13:29:55 debian nginx[3281]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
                Dec 03 13:29:55 debian nginx[3281]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
                Dec 03 13:29:56 debian nginx[3281]: nginx: [emerg] still could not bind()
                Dec 03 13:29:56 debian systemd[1]: nginx.service: Control process exited, code=exited status=1
                Dec 03 13:29:56 debian systemd[1]: Failed to start A high performance web server and a reverse proxy server.
                Dec 03 13:29:56 debian systemd[1]: nginx.service: Unit entered failed state.
                Dec 03 13:29:56 debian systemd[1]: nginx.service: Failed with result 'exit-code'.

                1. Rat's
                  @ldy

                  显示端口被占用,你还是重装系统再运行脚本吧。

                  1. ldy
                    @Rat's

                    我只安装了v2 使用了55 他们冲突是吗

                    1. Rat's
                      @ldy

                      大概是的,端口冲突。

  7. sdshdv

    一直显示SSL 证书生成失败 ,换了好几个域名解析都一样

    1. Rat's
      @sdshdv

      失败的报错信息是什么

      1. sdshdv
        @Rat's

        换了另一台VPS好了,估计是之前那台有什么软件冲突了

  8. Wicked

    [Wed Nov 7 19:00:12 CST 2018] Please add '--debug' or '--log' to check more details.
    [Wed Nov 7 19:00:12 CST 2018] See: https://github.com/Neilpang/acme.sh/wiki/How-to-debug-acme.sh
    [Error] SSL 证书生成失败
    什么意思呢`

    1. Rat's
      @Wicked

      这点错误看不出什么来

  9. minitru

    大佬,遇到个问题,域名都打得开 就是里面视频 图片都放不了。然后域名替换成ip,都能打开。但提示不安全的网页。应该是证书问题吧。也不知道怎么解决了

    1. Rat's
      @minitru

      这个不是很清楚,没遇到过。

  10. 嘿嘿嘿!

    老大,你的脚本挂了,wget 报503
    挂github不好吗

    1. Rat's
      @嘿嘿嘿!

      没挂,这两天被打了,开启5秒盾就这样了,我关掉看看

      1. 嘿嘿嘿!
        @Rat's

        现在又好了

      2. 嘿嘿嘿!
        @Rat's

        现在好了,顺便问一句,弄好了怎么下载完不会上传啊?

        1. Rat's
          @嘿嘿嘿!

          如果用的aria2的话,上传可以看看这个https://www.moerats.com/archives/697/。

          1. 嘿嘿嘿!
            @Rat's

            老大,那个一键搭建的,oneindex怎么改端口?我按ariang那样改不行,80端口我还有别的用处

            1. Rat's
              @嘿嘿嘿!

              可以看下脚本,修改下conf配置文件就行了。

              1. Freaky_Arse
                @Rat's

                请问改端口的话直接编辑conf文件可以么?在哪个目录?

                1. Rat's
                  @Freaky_Arse

                  可以的,配置文件在/etc/nginx/conf.d/