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,然后点击禁用函数,删掉proc_openproc_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,后台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

相关链接

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2019 年 04 月 07 日 09 : 59 PM

发表评论

59 条评论

  1. 阿萨德

    麻烦问一下大佬。我用的是宝塔,在网站根目录用官网的#安装开发版$ composer create-project hfo4/cloudreve:dev-master命令安装后,在根目录的是一个cloudreve文件夹,然后写了二级目录的伪静态后访问页面403啊?必须把文件夹里的文件移到网站根目录才能正常访问吗?

    1. Rat's
      @阿萨德

      运行目录设置的对么?

  2. kanlee

    最后配置成功但是进入网站登录界面全空,什么也没有?!请问何解?

    1. Rat's
      @kanlee

      去Github项目地址,首页有开发版安装,直接用那种方法没问题。

      1. 阿萨德
        @Rat's

        用那种方法装完后出现页面,未定义数组索引: themes,怎么办啊

        1. Javi
          @阿萨德

          我也是

  3. kanlee

    404,您请求的文件不存在!

    1. kanlee
      @kanlee

      我的网站是在二级目录,伪静态配置文件在哪修改?好像按您的方法改了出错!

      1. Rat's
        @kanlee

        姿势不对

  4. kanlee

    将根目录下的mysql.sql导入到你的数据库,请附上操作指南。小白不懂!

  5. 阿萨德

    请问这个怎么更新啊......之前搭的有问题,去github提了说是新版修复了......然后我不知道怎么更新......

    1. Rat's
      @阿萨德

      最简单的方法就是删掉源码,重新安装

      1. 阿萨德
        @Rat's

        主要是怕已经上传的东西看不到……这个站没法看onedrive已经有的文件,只有上传有记录的才会显示

  6. 阿萨德

    请问一下大佬,我是按照步骤来的,最后的伪静态配置,是直接在宝塔nginx的配置修改里写吗?这程序算是在/www/wwwroot/域名?算二级目录吗?

    1. Rat's
      @阿萨德

      直接在域名设置里有,伪静态设置,二级目录是你的域名目录的子目录,你这个应该是一级目录

  7. 哈哈骑士

    为什么我上传快结束的时候就卡死了。/public/uploads/chunks这个我都给了777权限了。。

    1. Rat's
      @哈哈骑士

      看是不是上传被限制了,一般默认情况下,php和nginx都会有上传大小限制

      1. 哈哈骑士
        @Rat's

        不对,我都改了,php50M,nginx 50M,改完都重启了。还是在结束的时候卡死

        1. Rat's
          @哈哈骑士

          看下public/uploads/chunks有没有写入权限

  8. pipi

    游客无法下载文件,已在用户组中允许游客下载

  9. 咸鱼不GG

    我想问一下#程序在二级目录,xx为你的二级目录名,其中这个二级目录名指的是哪一个名字,博主能举个例子吗,谢谢了

    1. Rat's
      @咸鱼不GG

      xx名称不特指哪个,就是你把Cloudreve源码放到哪个二级目录就填哪个。

  10. dm2wq

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

    1. Rat's
      @dm2wq

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