说明:目前用的比较多的网盘有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
成功了,谢谢博主来报个到
成功了,谢谢博主来报个到
老哥,我按照你的教程配置完伪静态之后,页面一直是“页面错误!请稍后再试~”检查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服务器,添加以下配置文件,请问这步怎么添加?
写错了,是添加代码,就是伪静态。
前排,感觉很好看啊~
对,我也觉得好看。