说明:目前用的比较多的网盘有Nextcloud
、Seafile
等,都还不错,而刚刚在loc
看到树洞外链的作者开发出了个功能更强大的Cloudreve
网盘,博主就想试下,顺便发个搭建教程。
缘起
之前写过一个叫树洞外链的程序,其主要定位是小文件分享、图床。但许多人把他理解为网盘,提出的建议也都向网盘靠拢。既然如此,那就结合树洞外链的特点,写一个真正意义上的网盘系统吧。Cloudreve
的定位为小型公有云和私有云,即公私兼备。
截图
更新
最新的版本为1.1.0
,新增以下内容。
- 新增
OneDrive
存储策略,理论支持Bussiness
和个人账号 - 新增基于
Aria2
的离线下载(只支持本地和OneDrive
策略使用) - 全新的目录分享页样式
Web
端安装向导
功能
- 快速对接多家云存储,支持七牛、又拍云、阿里云
OSS
、AWS
S3
、Onedrive
、自定远程服务端,当然,还有本地存储。 - 可限制单文件最大大小、
MIMEType
、文件后缀、用户可用容量。 - 图片、音频、视频、文本、
Markdown
、Ofiice
文档 在线预览。 - 移动端全站响应式布局。
- 文件、目录分享系统,可创建私有分享或公开分享链接。
- 用户个人主页,可查看用户所有分享。
- 多用户系统、用户组支持。
- 初步完善的后台,方便管理。
- 拖拽上传、分片上传、断点续传、下载限速(实验性功能)。
- 多上传策略,可为不同用户组分配不同策略。
- 用户组基础权限设置。
WebDAV
协议支持。
准备
- 重写目录分享和单文件分享页面样式
- 增加保存其他用户的分享到自己账户(限
Pro
版) - 推出辅助程序,并借此实现:压缩包解压缩、文件压缩;对接
Google Drive
,上传模式为先上到自己服务器,然后中转。
安装
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 5.6
及以上的版本,Nginx
,mysql
。安装完成后再去左侧软件管理,找到PHP
版本,点击设置,安装拓展,安装fileinfo
,然后点击禁用函数,删掉proc_open
和proc_get_status
。
#如果Fileinfo拓展安装失败,就是内存太小,我们可以添加swap,不适用于ovz
1、手动添加,方法查看:https://www.moerats.com/archives/19/。
2、面板添加,找到左侧软件管理-系统工具-安装Linux工具箱,然后进入工具箱添加。
2、安装Composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
3、使用Composer安装Cloudreve
解析域名到服务器,添加网站,根目录文件夹为xx.com
。
使用命令:
cd /www/wwwroot/xx.com
git clone https://github.com/HFO4/Cloudreve.git
mv Cloudreve/* /www/wwwroot/xx.com
composer install
如果使用Composer
安装有问题的话,可以不使用Composer
安装。到http://cloudreve.org/download.php
下载最新的安装包,解压到网站根目录,并授权文件夹755
权限。其他步骤都一样。
4、配置MySQL
将根目录下的mysql.sql
导入到你的数据库,编辑application/database_sample.php
文件,填写数据库信息,并重命名为database.php
。
5、伪静态
对于Apache
服务器,请确保:
httpd.conf配置文件中加载了mod_rewrite.so模块。
AllowOverride None将None改为All。
#项目目录下的.htaccess已经配置好重写规则,如有需求酌情修改。
对于Nginx
服务器,在配置文件添加以下代码:
#程序在根目录
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
#程序在二级目录,xx为你的二级目录名
location /xx/ {
if (!-e $request_filename){
rewrite ^/xx/(.*)$ /xx/index.php?s=/$1 last;
}
}
6、后续操作
到此步时,系统已基本可以正常运行,但还需要进行一些后续操作。
1、登录后台(初始用户名:admin@cloudreve.org
,初始密码:admin
,后台URl
:http://你的域名/Admin
,登录后到设置-基本设置中检查站点URL
是否正确)。
2、到用户管理页修改初始用户密码。
3、如果你需要使用二步验证功能,请使用命令:
cd /www/wwwroot/xx.com
composer require phpgangsta/googleauthenticator:dev-master
composer require endroid/qrcode
添加Cron
定时任务:
* * * * * curl http://你的域名/Cron
* 如果你打算使用本地上传策略并且不准备开启外链功能,请将public/uploads目录设置为禁止外部访问、禁止脚本。
相关问题
1、Composer安装Cloudreve时提示The requested PHP extension ext-XXX * is missing from your system
这是PHP扩展未达到要求所致,Cloudreve需要curl、fileinfo、gd扩展支持,请先安装并启用这些扩展。
2、安装成功后页面404/No input file specified
URL重写规则未配置好,请检查。
3、安装后首页提示“遇到错误”
请依次检查:
application/database.php是否存在,如果不存在请手动创建写入数据库信息。
runtime及其子目录是否有写入权限。
其他原因,编辑application/config.php打开debug模式,查看详细报错。
4、头像无法显示/文件无法上传
检查fileinfo扩展是否被安装并启用。
5、本地存储策略文件上传到4mb时卡住
public/uploads/chunks目录没有写入权限,请分配写入权限。
6、使用云存储策略时回调失败/获取的文件外链URL不对
依次检查:
后台-设置-基本设置中的站点URL是否正确。
服务器时间是否正确。
有些服务器可能会将Authorization头自行解析掉,比如apache2,因此需要设置成不解析这个头部。以apache2为例,具体设置方法请参考 https://help.aliyun.com/document_detail/31927.html?spm=a2c4g.11186623.6.637.wPbiue。
Cloudreve应用是否能被外网访问
7、开启二步验证时的二维码无法显示
执行:
composer require phpgangsta/googleauthenticator:dev-master
composer require endroid/qrcode
相关链接
- 演示站:https://pan.aoaoao.me
- GitHub:https://github.com/HFO4/Cloudreve
- 安装说明:https://github.com/HFO4/Cloudreve/wiki
- Telegram群组: https://cloudreve.org/joingroup
版权声明:本文为原创文章,版权归 Rat's Blog 所有,转载请注明出处!
本文链接:https://www.moerats.com/archives/516/
如教程需要更新,或者相关链接出现404,可以在文章下面评论留言。
搭建好之后,首页正常显示,进入管理员后台 就是一片空白
这个如何弄成那种康乐能安装的那种,我不一定要用宝塔开鸭!
这个理解会了的话,用啥面板,或者用不用面板都行
更新啦
我上传onedrive时命令行提示:Upload Failed,The maximum request length supported is 4MB.
但我php大小设置的是1G啊
这个不清楚,好久没用了,检查下nginx+php上传设置,还有程序本身设置看看
这个不能游客上传,有点。。。如果能做游客上传就好了,别人用起来还是不太方便,毕竟不是每个人都像到处注册账号
博主,怎么设置端口访问
添加域名的时候,填Ip:端口,其它一样
博主,这个消耗服务器流量吗?绑定Onedrive的话
下载的话应该不消耗,具体还得你自己体验看下。
增加onedrive获取应用ID一直出现错误,请问如果解决呀
暂时出现问题
应用程序 ID URI 必须是有效的 URI。
管理员的可用空间是1GB这个后台也没看到设置的地方
这个不太清楚,还么深入用过
有没有对接FTP接口存储的云盘程序?
有,我发过,不过我忘了
求分享!
麻烦问一下大佬。我用的是宝塔,在网站根目录用官网的#安装开发版$ composer create-project hfo4/cloudreve:dev-master命令安装后,在根目录的是一个cloudreve文件夹,然后写了二级目录的伪静态后访问页面403啊?必须把文件夹里的文件移到网站根目录才能正常访问吗?
运行目录设置的对么?
最后配置成功但是进入网站登录界面全空,什么也没有?!请问何解?
去Github项目地址,首页有开发版安装,直接用那种方法没问题。
用那种方法装完后出现页面,未定义数组索引: themes,怎么办啊
我也是
404,您请求的文件不存在!
我的网站是在二级目录,伪静态配置文件在哪修改?好像按您的方法改了出错!
姿势不对
将根目录下的mysql.sql导入到你的数据库,请附上操作指南。小白不懂!
请问这个怎么更新啊......之前搭的有问题,去github提了说是新版修复了......然后我不知道怎么更新......
最简单的方法就是删掉源码,重新安装
主要是怕已经上传的东西看不到……这个站没法看onedrive已经有的文件,只有上传有记录的才会显示
请问一下大佬,我是按照步骤来的,最后的伪静态配置,是直接在宝塔nginx的配置修改里写吗?这程序算是在/www/wwwroot/域名?算二级目录吗?
直接在域名设置里有,伪静态设置,二级目录是你的域名目录的子目录,你这个应该是一级目录
为什么我上传快结束的时候就卡死了。/public/uploads/chunks这个我都给了777权限了。。
看是不是上传被限制了,一般默认情况下,php和nginx都会有上传大小限制
不对,我都改了,php50M,nginx 50M,改完都重启了。还是在结束的时候卡死
看下public/uploads/chunks有没有写入权限
游客无法下载文件,已在用户组中允许游客下载
我想问一下#程序在二级目录,xx为你的二级目录名,其中这个二级目录名指的是哪一个名字,博主能举个例子吗,谢谢了
xx名称不特指哪个,就是你把Cloudreve源码放到哪个二级目录就填哪个。
大佬,你的左栏那个文件,使用什么搭建的?还是你自己写的?
用的DirectoryLister,你在博客搜下关键词就可以找到教程。
成功了,谢谢博主来报个到
成功了,谢谢博主来报个到
老哥,我按照你的教程配置完伪静态之后,页面一直是“页面错误!请稍后再试~”检查application/database.php也是存在,runtime和子目录也有755权限……怎么破……关于“编辑application/config.php打开debug模式,查看详细报错”,我不太会
伪静态设置后,重启Nginx了没,按照教程一步一步来应该是没错的,再不行,你可以看看docker安装教程,查看:https://www.moerats.com/archives/556/。
512内存装不了fileinfo怎么破
怎么可能?我就是用512内存测试的,你添加点虚拟内存试试。
话说可以挂载gd盘吗,然后给我朋友用会不会他能看到我gd盘的东西?还是是独立的?
挂载后两边同步,他只能看到你挂载的那个文件夹,其他文件夹看不到。
下载时所有文件下载下来都是11B,也不是正确的下载文件,博主知道怎么回事吗?
这个你可以去github问问作者。
感觉挺好看的,想借来给自己的项目用。看了下是GPLv3,容我考虑下吃不吃这口病毒先。
吃。挺不错的,目前就是有点bug。
对接没教程哦!只把安装网盘程序写了
现在支持对接网盘有点少,都是用的挂载。
对于Nginx服务器,添加以下配置文件,请问这步怎么添加?
写错了,是添加代码,就是伪静态。
前排,感觉很好看啊~
对,我也觉得好看。