说明: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
我用你的报错
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/