最近身边有些人,总问我有没有某某资源,然后我就在自己的资源库搜索一番后,找到资源再分享给他们,分享起来有些麻烦,方便给种子的直接给种子,不方便给种子的我就要在我自己的服务器上开个临时的http服务给直链让他们下载。总觉着很麻烦,于是想搭建一个方便的共享平台。于是开始搜索解决方案,方案呢需要有以下几点要求
- 首先付费是不可能,本来就是个给他人便利的事情,自己再花钱emmm,我可没那么壕。
- 下载或者访问播放速度要较快,至少不能慢如蜗牛。
- 要简单,方便,如果是有界面的,不能太丑!
最终找到了oneindex这个神器,其实这个程序我早有了解,早期他还比较简陋的时候我就有过尝试,当时还挺简陋,存在一些bug,尝试后就放弃了。现在这款php程序已经成熟,功能强大稳定!博主搭建的已经稳定运行快一个月了,体验完美。
github: https://github.com/donwa/oneindex
功能:
- 不用服务器空间,不走服务器流量,
- 直接列onedrive目录,文件直链下载。
- 文件夹加密访问
- 文档在线浏览,视频可在线播放。
- 可做图床。
demo
需求:
1、PHP空间,PHP 5.6+ 打开curl支持 2、onedrive 账号 (个人、企业版或教育版/工作或学校帐户) ==》 在此获取5T超大空间OneDrive3、oneindex 程序 ==》 在此下载
安装
本安装过程基于宝塔面板搭建的lnmp环境
使用宝塔面板新建网站环境,php版本使用php5.6或更高版本。
进入网站根目录,下载oneindex程序,并将压缩包内所有文件提取至根目录。
访问你的域名,进入安装引导,在此使用官方readme的gif教程:
优化设置
为了保证实时同步onedrive内的文件列表,需要设置定时任务进行定时同步。
- 进入宝塔定时任务设置,任务类型选择shell脚本,任务名称:每小时刷新一次token ,任务周期选择每小时0分钟,脚本内容为:
/具体路径/php /程序具体路径/one.php token:refresh
。ps:具体路径为你网站根目录路径。 - 再添加一条定时任务,任务名称:每十分钟后台刷新一遍缓存,任务周期改为N分钟-10分钟,脚本内容为:
*/10 * * * * /具体路径/php /程序具体路径/one.php cache:refresh
.
- 进入宝塔定时任务设置,任务类型选择shell脚本,任务名称:每小时刷新一次token ,任务周期选择每小时0分钟,脚本内容为:
- 更换主题 默认主题比较简洁,我使用的是
nexmoe
伪静态设置
nginx 伪静态设置
if (!-f $request_filename){ set $rule_0 1$rule_0; } if (!-d $request_filename){ set $rule_0 2$rule_0; } if ($rule_0 = "21"){ rewrite ^/(.*)$ /index.php?/$1 last; }
- 后台打开
去掉/?/ (需配合伪静态使用!!)
,保存设置
特殊文件实现功能
README.md
、HEAD.md
、 .password
特殊文件使用
可以参考https://github.com/donwa/oneindex/tree/files
在文件夹底部添加说明:
在onedrive的文件夹中添加
README.md
文件,使用markdown语法。
在文件夹头部添加说明:
在onedrive的文件夹中添加
HEAD.md
文件,使用markdown语法。
加密文件夹:
在onedrive的文件夹中添加
.password
文件,填入密码,密码不能为空。
直接输出网页:
在onedrive的文件夹中添加
index.html
文件,程序会直接输出网页而不列目录。
配合 文件展示设置-直接输出 效果更佳
命令行功能
仅能在php cli模式下运行
清除缓存:
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/
gitalk评论系统的添加
我在建立oneindex之后,有朋友向我反馈,说缺少一个留言/评论的板块,自己魔改程序的话比较麻烦,也没必要。于是想到了添加静态评论系统,这里我使用了gitalk。
Gitalk 是一个基于 GitHub Issue 和 Preact 开发的评论插件。
特性
- 使用 GitHub 登录
- 支持多语言 [en, zh-CN, zh-TW, es-ES, fr, ru]
- 支持个人或组织
- 无干扰模式(设置 distractionFreeMode 为 true 开启)
- 快捷键提交评论 (cmd|ctrl + enter)
安装准备
先进入你选择的主题文件夹,位于网站根目录/view/
下,classic为默认主题,我选用的是nexmoe主题
编辑layout.php
文件,在</head>
前添加
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css">
<script src="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js"></script>
在倒数第一个</div>
前添加
<div id="gitalk-container"></div>
在倒数第一个</div>
后添加
<script type="text/javascript">
var gitalk = new Gitalk({
clientID: 'GitHub Application Client ID',
clientSecret: 'GitHub Application Client Secret',
repo: 'gitalk',
owner: 'owner',
admin: ['owner'],
id: 'oneindex',
distractionFreeMode: true,
createIssueManually: true
});
gitalk.render('gitalk-container');
</script>
获取clientID和clientSecret
首先,需要申请一个 Github APP ,填写要求如下:
Application name :
myoneindex # 随意填写
Homepage URL :
https://pan.fingerit.cn #你的oneindex主页
Application description :
# 说明(可以不填)
Authorization callback URL :
https://pan.fingerit.cn # 你的oneindex主页
最后点击 Registered application 得到clientID和clientSecret
然后新建一个名为gitalk的仓库。
完成安装
返回准备工作总最后一步添加的js代码,将上面获取的clientID和clientSecret填入其中,owner和admin设置为你的用户名即可。
最后打开你的oneindex首页,等待最下方gitalk评论加载完毕,点击初始化issue,再刷新页面即可。
您好,想问下您网盘底部的图片是怎么加的,挺好看的
已成功用上!
你好,我想把这个安装过的项目移动一下位置,也换了个网站,就提示什么没权限了,请问怎么改呢
权限不足,授权呗。。。给755就行了。
已经是755了,还是不行,我重新安装一下也不行,说安装失败
是nginx报错权限不足,还是oneindex程序报错?我在想是不是你账号的问题
警告:file_put_contents(/www/wwwroot/www.laoguoba.com/oneindex-master/config/token.php):未能打开流:权限被拒绝/www/wwwroot/www.laoguoba.com/oneindex-master/init .PHP在线57
警告:file_put_contents(/www/wwwroot/www.laoguoba.com/oneindex-master/cache/c9a6cf72a1cffbd69a8bf347db914637.php):未能打开流:权限被拒绝/www/wwwroot/www.laoguoba.com/ oneindex主/的init.php上线81
警告:file_put_contents(/www/wwwroot/www.laoguoba.com/oneindex-master/cache/8ba4451e0ca877225da4965bb7277cae.php):未能打开流:允许在拒绝/网络/ wwwroot的/万维网第81行的.laoguoba.com / oneindex-master / init.php
就是这样的

这应该就是权限的问题,你尝试给这些文件 777 权限试试
这个密码忘了怎么办啊
后台的密码
在这个文件里查看编辑密码
/config/base.php
嗯,谢谢,这个下面那个评论功能不行怎么弄啊
没有,就是出现了这句话
未找到相关的 Issues 进行评论
请联系 @XXX 初始化创建
然后下面就死一个按钮 使用GitHub登录
那你点击github登录后再刷新页面试试呢。
这个最下面那个没有评论,怎么初始化啊
出现初始化的按钮没?
手指哥更新博客啦,赞!
啊哈哈。