说明: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.md
、HEAD.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
版权声明:本文为原创文章,版权归 Rat's Blog 所有,转载请注明出处!
本文链接:https://www.moerats.com/archives/692/
如教程需要更新,或者相关链接出现404,可以在文章下面评论留言。
0 upgraded, 0 newly installed, 0 to remove and 145 not upgraded.
fatal: destination path 'Oneindex' already exists and is not an empty directory.
chmod: cannot access 'config/': No such file or directory
chmod: cannot access 'cache/': No such file or directory
[Error] OneIndex 下载失败
这是不是重复运行脚本了
同样的问题~~~~
作者删库了
是的,我fork了新版。
新版链接在哪里?
PS:博主你这个评论里回复的时候后的特效怎么弄得?
https://github.com/iiiiiii1/Oneindex,特效博客有发教程。你找找看
用上传命令显示Could not open input file: one.php咋办啊
在源码根目录运行的么
It seems that you are using sudo, please read this link first:
https://github.com/Neilpang/acme.sh/wiki/sudo
[Error] 证书配置失败
看报错意思好像是要你不要使用sudo。
按照步骤操作了,网页显示不了文件
除了显示不了文件,其它都正常?如果是,可能是api抽风
估计是缓存没刷新,现在有了。宝塔面板设置了定时刷新任务
你好,请问ssl证书失效怎么办?之前好好的,突然失效了。所以现在网盘也打不开了。
方法补到文章后面了,自己看看
请问大佬 这个脚本如何卸载?
不好卸载,安装的东西很多,看你想卸载哪一部分,最好是重装系统
了解啦,谢谢博主
我也提示要管理员确认 我先暂时用用OneIndex
可以去申请个开发者玩玩https://www.moerats.com/archives/696/
安装过程正常但登录不了,输入默认密码oneindex没错。请问何解?
没有了config/base.php
记得好像需要先绑定账号才能去后台,绑定了没
您这边没有说明如何绑定onedrive账号,而且不是应该是第一次登陆进oneindex才会出现绑定账号的页面吗?
这个我在文章加了个提示,需要先绑定,绑定账号一般有指引的。
ubuntu18.04 提示不支持?
只支持Debian 8、9
Resolving www.nihao... (www.nihao.....)... 165.227.60.174
Connecting to www.nihao...... (www.nihao.....)| IP |:80... failed: Connection refused.
一键脚本改成自己的域名后就提示以上内容大佬求解
Resolving www.nihao.....
(www.nihao.xxx)...
Connecting to www.nihao.ga (www.nihao.ga) IP |:80... failed: Connection refused.
一键脚本的域名改成自己的后运行提示拒绝连接 怎么办
你怎么改的?
wget https://www.moerats.com/usr/shell/OneIndex.sh && bash OneIndex.sh
默认这样子可以运行,但是我不知道有没有安全问题,请问一键脚本中的域名信息有什么作用?
wget https://www.nihao.xxx/usr/shell/OneIndex.sh && bash OneIndex.sh
这样子然后运行提示与 www.nihao.xxx连接被拒绝
你真是人才,不会的话别乱改就行
弄好后 每次访问 标签类的标题总有一个路径/网站名称,这个怎么改
大佬我不想自动删除怎么办
什么意思
就是下载好的东西不想自动删除
你是说的自动上传脚本?是的话先说下什么脚本
博主你好 三个月证书到期了怎么办
按理说acme.sh会自动给你续期的
图床功能貌似有点问题。。上传完成后显示404,关掉伪静态就正常
这个不知道是伪静态的问题,还是图床的问题,我有空检查下看看。
博主安装结束打开404什么情况
是安装脚本直接打开404?还是安装程序结束打开404
[OK] AriaNg 下载成功
[Error] 80 端口被占用,请检查占用进程 结束后重新运行脚本
tcp 0 0 0.0.0.0:28003 0.0.0.0:* LISTEN 922/sshd
tcp6 0 0 :::28003 :::* LISTEN 922/sshd
进行到这一步怎么也不行,求指点
root@debian:~# netstat -anp|grep 80
tcp 0 0 0.0.0.0:28003 0.0.0.0:* LISTEN 922/sshd
tcp 0 64 104.243.22.233:28003 27.38.32.44:42648 ESTABLISHED 742/0
tcp6 0 0 :::28003 :::* LISTEN 922/sshd
unix 2 [ ] DGRAM 8078 157/systemd-udevd
unix 3 [ ] STREAM CONNECTED 10980 452/bash
unix 3 [ ] DGRAM 8086 157/systemd-udevd
unix 3 [ ] DGRAM 8085 157/systemd-udevd
unix 3 [ ] STREAM CONNECTED 10580 435/rpc.idmapd
也没发现80被占用呀
/etc/init.d/ssh stop service
已解决
大佬你好,我的所有文件下载连接打开都是
出现问题
您请求的页面暂时不可用。对由此给您造成的不便,我们深表歉意,请几分钟后再返回查看。
跪求解决方法。
这个好像是API抽风的问题,只能等他好了。
现在oneindex根本读取不到onedrive的文件,估计是我的E3账号的问题,打算换个账号试试。
老大 还是报错啊
我用vultr等测试没啥错误,你加我文章下面留的微信吧,我看看你的日志。
之前忘记重装系统了,重新运行脚本就好了
我用你的报错
Docs: man:nginx(8)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
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)
抱歉,可能是我之前修改了伪静态,nginx不识别其中一个参数,导致启动失败,现在已修复了,你再试试。
ok
感谢
em.....新上传文件后,所有文件打开后网页都变成了“404 Not Found”。
这个看是不是缓存问题,多等几分钟看看或者刷新下,还不行的话,我亲自看看。
404的问题已经解决,应该是伪静态的问题,打扰了。PDF那个依然不知道怎么回事。。。
在后台文件展示设置那里添加下文档格式看看,顺便能提供下你的伪静态吗?
请教一下,系统已经安装成功,部分文件上传也显示,比如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不可以呢?
也许有些格式不支持吧,不过后台貌似可以直接添加文件格式。
我添加了 pdf,但是还是无法查看,地址是 mrlinqian.com 麻烦了。静态那个我取消就好了。
好像不支持查看,你可以去Github问下作者。
感谢。
博主 怎么不显示图片啊 一直显示不出来 视频也加载不出来 但是onedrive里面是问题的
初步估计是API问题,现在抽风厉害。
想咨询下博主,我之前也成功安装了OneIndex来显示OneDrive网盘中的内容,可是过个把月OneIndex显示列表下啥也没了,上次出现这个问题重装了OneIndex解决了,现在又出现这问题了,想问下这个可能由什么原因引起的呢。感谢
好像是API抽风了,前几天很多人都出现炸了的情况。
请问dns解析Ip与本机ip不匹配有影响吗
另80端口被占用怎么解决啊
谢谢
影响就是安装出问题,申请SSL的时候解析IP必须与服务器一样。是不是预装了Apache程序?netstat -lnp|grep 80用这个命令看看,80被什么程序占了。
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
你好 我重新运行了 还是存在端口检测
你需要重新做一个安装命令吗?
先删掉本地脚本,rm -rf OneIndex.sh,然后重新安装脚本。
nginx.service - A high performance web server and a reverse proxy server
Docs: man:nginx(8)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
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'.
显示端口被占用,你还是重装系统再运行脚本吧。
我只安装了v2 使用了55 他们冲突是吗
大概是的,端口冲突。
一直显示SSL 证书生成失败 ,换了好几个域名解析都一样
失败的报错信息是什么
换了另一台VPS好了,估计是之前那台有什么软件冲突了
[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 证书生成失败
什么意思呢`
这点错误看不出什么来
大佬,遇到个问题,域名都打得开 就是里面视频 图片都放不了。然后域名替换成ip,都能打开。但提示不安全的网页。应该是证书问题吧。也不知道怎么解决了
这个不是很清楚,没遇到过。
老大,你的脚本挂了,wget 报503
挂github不好吗
没挂,这两天被打了,开启5秒盾就这样了,我关掉看看
现在又好了
现在好了,顺便问一句,弄好了怎么下载完不会上传啊?
如果用的aria2的话,上传可以看看这个https://www.moerats.com/archives/697/。
老大,那个一键搭建的,oneindex怎么改端口?我按ariang那样改不行,80端口我还有别的用处
可以看下脚本,修改下conf配置文件就行了。
请问改端口的话直接编辑conf文件可以么?在哪个目录?
可以的,配置文件在/etc/nginx/conf.d/
安装证书出错,还有域名怎么解析啊?提示解析的ip不符
域名都不知道解析?你在哪买的域名,就把域名添加A记录,解析到你的vps服务器,然后等片刻生效,再运行本脚本就可以了。
是啊,添加了A记录,早上添加的,到现在还是没有解析到,西部数码
你可以ping下域名,要是还不通,去检查下解析记录。
大佬,我用的这个,文件大小超过15G好像就上传不上
正常,Onedrive允许的最高上传大小是15G。
好吧~
大佬用了你的一键脚本,要怎么修改和在哪里修改伪静态啊?!!!!
脚本自带伪静态,修改的话去配置文件修改,/etc/nginx/conf.d/OneIndex.conf。
找到啦,多谢大佬。如果可以的话,希望可以更新一下添加在底部的流量统计功能哈哈哈哈
这个自己可以添加的。
都部署完成了,但是打开域名没反应,还需要别的什么步骤?
部署过程没报错么?可以看下Nginx状态systemctl status nginx,一般运行脚本不出错直到完成就算安装好了。
怎么更新oneindex文件呢
你是说更新源码文件?这个你可以研究下网站根目录/home/wwwroot/xx.com。或者直接替换成最新源码。
覆盖会丢失配置文件吗?
貌似会,你先找到配置文件的地方,把配置文件保留下。
配置文件是哪几个啊
你去config/文件夹看看。
OneIndex是只能用php写吗?可以用其它语言写吗?
有个Pytho写的,地址:https://www.moerats.com/archives/734/。
这个用Python3可以吗?Python2用的不多
Python3我没试过。
我看了一下,这个Python安装的和php安装的有什么区别吗?可以直接在服务器上安装吗?
没多大区别,都是直接在服务器上安装。
多谢大佬,我就是学Python的,php不太会
用乐享弄的这个邮箱用第三方客户端怎么登录不上去呢?一直显示密码错误,可是密码没有错误啊!
第三方邮箱可能需要进行点设置。
我用申请的这个邮箱登录微软账号显示“该 Microsoft 帐户不存在。”是怎么回事?不是用乐享上提供的邮箱加自己设置的密码登录吗?
你申请时用的什么邮箱,就用什么邮箱登录。
大佬,这个5t邮箱空间怎么才能查看自己的是不是5t空间呢?还有用临时邮箱获取的365账号以后就只能用临时邮箱来登录了吗?能不能换成自己的私人邮箱登录?
貌似不能换私人。
老哥,卡在curl开启这一步了,不知道怎么开启。求指教啊
你是说在安装界面上,显示curl不支持吗?
是的,web安装界面 一个大叉
你没用这个脚本吧?这个脚本安装了CURL。
用的就是这个一键脚本,可能是小鸡的原因。换了台装好了
好了就行。
大佬,好像ovz的小鸡都会报错 E: Sub-process /usr/bin/dpkg returned an error code (1) 几个必需的包都会报
这个我没ovz小鸡,所以可能会出现这种情况,但我感觉与架构关系不大。
大神,我知道我问这问题挺low的,但是我真的小白,不懂,自己win环境iis+php5.6安装oneindex,直接跳出个No input file specified.,网上的办法都试了不行,咋解决啊?
给你在网上找到2种方法。
方法一:改php.ini中的doc_root行,打开ini文件注释掉此行,然后重启IIS。
方法二:修改php.ini,找到; cgi.force_redirect = 1,去掉前面分号,把后面的1改为0,即cgi.force_redirect = 0,然后重启IIS。
您说的我全都检查过了,doc_root默认就是空值,第二个也是默认就是开启,数值为0,iis重启过了,服务器都重启好几遍,还有web.config文件修改,.htaccess文件修改,通通没用,总之就是很无助啦
这个我就无能为力了,我不用Win建站,所以没研究过,也没这种环境去研究。
onedrive是不是限速了?我这好慢 几十K
上个魔改BBR试试,应该不会限制,可能与你的服务器网络有关。
请输入你的OneIndex域名信息这个是什么啊?
就是只要是一个域名就行,和建站一样,用来访问OneIndex界面的。
博主,我用一个美国大学的OneDrive绑定账号,网页提示此账号是unmanage state(非托管的国家或地区)。
这个没遇到过,暂时不清楚。
这个图床的风格怎么这么眼熟,让我莫明有一种看到自己博客的亲切感。。。
什么图床。
github里边并没有base.php 脚本line199出现了base.php 导致判断下载失败.. 这个应该是脚本的问题吧..我猜
改过来了,文件很久前有,现在没了,然后之前随手把作者开始的授权要求写进去了,就没注意了。
来个GoogleDrive的
GoogleDrive可以试试这个:https://www.moerats.com/archives/593/。
博主你的博客有源码吗
程序源码为Typecho,主题是handsome。
这玩意这需要一键脚本吗
水文章而已
,有的单独安装环境还是嫌麻烦的。