Rat's

一款支持对接多家云存储的多功能网盘系统:Cloudreve搭建教程
说明:目前用的比较多的网盘有Nextcloud、Seafile等,都还不错,而刚刚在loc看到树洞外链的作者开发出...
扫描右侧二维码阅读全文
18
2018/02

一款支持对接多家云存储的多功能网盘系统:Cloudreve搭建教程

说明:目前用的比较多的网盘有NextcloudSeafile等,都还不错,而刚刚在loc看到树洞外链的作者开发出了个功能更强大的Cloudreve网盘,博主就想试下,顺便发个搭建教程。

缘起

之前写过一个叫树洞外链的程序,其主要定位是小文件分享、图床。但许多人把他理解为网盘,提出的建议也都向网盘靠拢。既然如此,那就结合树洞外链的特点,写一个真正意义上的网盘系统吧。Cloudreve的定位为小型公有云和私有云,即公私兼备。

截图

请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述

更新

最新的版本为1.1.0,新增以下内容。

  • 新增OneDrive存储策略,理论支持Bussiness和个人账号
  • 新增基于Aria2的离线下载(只支持本地和OneDrive策略使用)
  • 全新的目录分享页样式
  • Web端安装向导

功能

  • 快速对接多家云存储,支持七牛、又拍云、阿里云OSSAWS S3Onedrive、自定远程服务端,当然,还有本地存储。
  • 可限制单文件最大大小、MIMEType、文件后缀、用户可用容量。
  • 图片、音频、视频、文本、MarkdownOfiice文档 在线预览。
  • 移动端全站响应式布局。
  • 文件、目录分享系统,可创建私有分享或公开分享链接。
  • 用户个人主页,可查看用户所有分享。
  • 多用户系统、用户组支持。
  • 初步完善的后台,方便管理。
  • 拖拽上传、分片上传、断点续传、下载限速(实验性功能)。
  • 多上传策略,可为不同用户组分配不同策略。
  • 用户组基础权限设置。
  • 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及以上的版本,Nginxmysql。安装完成后再去左侧软件管理,找到PHP版本,点击设置,安装拓展,安装fileinfo即可。

#如果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,后台URlhttp://你的域名/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

相关链接

需要Office365 E3 MSDN 25的可加入萌咖杂货店QQ群购买→【点击加入
最后修改:2018 年 09 月 14 日 06 : 13 PM

发表评论

20 条评论

  1. dm2wq

    大佬,你的左栏那个文件,使用什么搭建的?还是你自己写的?

    1. Rat's
      @dm2wq

      用的DirectoryLister,你在博客搜下关键词就可以找到教程。

  2. zn乐

    成功了,谢谢博主来报个到

  3. zn乐

    成功了,谢谢博主来报个到

  4. underworld

    老哥,我按照你的教程配置完伪静态之后,页面一直是“页面错误!请稍后再试~”检查application/database.php也是存在,runtime和子目录也有755权限……怎么破……关于“编辑application/config.php打开debug模式,查看详细报错”,我不太会

    1. Rat's
      @underworld

      伪静态设置后,重启Nginx了没,按照教程一步一步来应该是没错的,再不行,你可以看看docker安装教程,查看:https://www.moerats.com/archives/556/。

  5. esout

    512内存装不了fileinfo怎么破

    1. Rat's
      @esout

      怎么可能?我就是用512内存测试的,你添加点虚拟内存试试。

  6. kizop

    话说可以挂载gd盘吗,然后给我朋友用会不会他能看到我gd盘的东西?还是是独立的?

    1. Rat's
      @kizop

      挂载后两边同步,他只能看到你挂载的那个文件夹,其他文件夹看不到。

  7. 秋风寒

    下载时所有文件下载下来都是11B,也不是正确的下载文件,博主知道怎么回事吗?

    1. Rat's
      @秋风寒

      这个你可以去github问问作者。

  8. nidei

    感觉挺好看的,想借来给自己的项目用。看了下是GPLv3,容我考虑下吃不吃这口病毒先。

    1. Rat's
      @nidei

      吃。挺不错的,目前就是有点bug。

  9. kedyao

    对接没教程哦!只把安装网盘程序写了

    1. Rat's
      @kedyao

      现在支持对接网盘有点少,都是用的挂载。

  10. 回梦游仙

    对于Nginx服务器,添加以下配置文件,请问这步怎么添加?

    1. Rat's
      @回梦游仙

      写错了,是添加代码,就是伪静态。

  11. NEO

    前排,感觉很好看啊~

    1. Rat's
      @NEO

      对,我也觉得好看。