自建云盘系列——Cloudreve(树洞外链作者的又一力作)

文章目录[隐藏]

一.介绍

Cloudreve这个我最早是在QQ群里看到的,有人发了一张图片,发现界面看上去很棒,我之前做了一个自建私人云盘的系列文章,在写的过程中搜集了很多相关的程序,毫不夸张的说我可能把国内外这方面的程序都起码是过了一遍的,然而这个看上去这么棒的程序我怎么会漏掉呢。

于是在百度上谷歌上到处搜索,然而当时作者还没有发帖,官网的搜索引擎Rank也很低,我只找到一个.com的网站,还是显示的域名正在出售,正在疑惑之时突然想起,这也许是有人新开发的程序,由于有中文,所以或许是国人开发的,于是尝试去GitHub搜索,果不其然,发现了它的Repo。

高兴之余突然发现作者的名字有点眼熟,点开他的Repo列表一看,原来是树洞的作者,惊了。然后也在Repo里看到了Demo网站,访问后感觉确实不错。

然后当天晚上就在Hostloc以及V2ex等网站上看到了作者发帖介绍他的新程序_(:з」∠)_,我也算是抢先了。

说了这么多废话,我还是来介绍下Cloudreve吧。Cloudreve基于ThinkPHP构建的网盘系统,能够助您以较低成本快速搭建起公私兼备的网盘。

目前已经实现的特性:

  1. 快速对接多家云存储,支持七牛、又拍云、阿里云OSS、AWS S3、自建远程服务器,当然,还有本地存储
  2. 可限制单文件最大大小、MIMEType、文件后缀、用户可用容量
  3. 图片、音频、视频、文本、Markdown、Ofiice文档 在线预览
  4. 移动端全站响应式布局
  5. 文件、目录分享系统,可创建私有分享或公开分享链接
  6. 用户个人主页,可查看用户所有分享
  7. 多用户系统、用户组支持
  8. 初步完善的后台,方便管理
  9. 拖拽上传、分片上传、断点续传、下载限速(*实验性功能)
  10. 多上传策略,可为不同用户组分配不同策略
  11. 用户组基础权限设置、二步验证
  12. WebDAV协议支持

安装需求:

  1. LNMP/AMP With PHP5.6+
  2. curl、fileinfo、gd扩展
  3. Composer

虽然是才放出来不久,但是从一开始功能就是相当多的了,我比较喜欢自建远端存储以及断点续传的功能,当然WebDAV这种也是必不可少的啦,Office的在线预览算是锦上添花。其实各种分享以及权限限制在树洞外链上其实也以及比较完善了,但是树洞对云存储过于依赖了,本地化的反而不足,由于一堆云在数据量和流量大的情况下比购置服务器或者VPS贵多了,所以实在是不适合。

二.安装

安装的话和常规的下载安装包解压不太一样,虽然如果非要这样也是可以的,Cloudreve使用Composer实现快捷的安装与配置。

当然,在安装之前还是请配置LNMP的环境,各种一键包和面板均可,然后新建vhost并创建新的数据库以及用户,我这边以OneInStack举例

#这儿的php路径请自行确认
curl -sS https://getcomposer.org/installer | /usr/local/php/bin/php
mv composer.phar /usr/local/bin/composer
 
#安装开发版,目前还在开发阶段,所以也没有啥稳定版啊啥的,不过也没啥大问题其实
cd /path/to/vhost/root/
#请注意这一步还会检测PHP的模块,如果缺少fileinfo请自行安装
composer create-project hfo4/cloudreve:dev-master

然后会有个配置指引,按照说明输入数据库信息以及网址就行,我这边一开始创建的Mysql用户是只允许localhost访问的,用127.0.0.1不行,后来又加了个127.0.0.1能访问的用户才行

接着我们需要修改下程序的位置,以及目录的权限,主要是runtime目录以及public目录

#默认在vhost根目录下使用composer获取会把程序放在cloudreve文件夹中,我们需要 直接用根目录的话要么修改vhost配置,要么把里面的文件移出来,这个看你选择了
cd /path/to/vhost/root/
mv cloudreve/* .
mv cloudreve/{.htaccess,.travis.yml} .
rm -rf cloudreve
#如果你打算使用二部验证功能,请额外运行如下命令添加依赖
composer require phpgangsta/googleauthenticator:dev-master
composer require endroid/qrcode
#设置所有者以及权限
chown -R www:www *
chmod -R 755 runtime public

这样就OK了,接着由于ThinkPHP框架的要求,我们需要设置下伪静态,Apache由于.htaccess文件的关系只要启用mod_rewrite.so模块并确保AllowOverride All就能够自动处理,而Nginx需要手动添加如下内容到vhost配置文件中。

当然,你也可以在面板或者一键包创建vhost的时候选择ThinkPHP伪静态

location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=/$1 last;
        break;
    }
}

接着重启下Nginx然后就OK了,对了,还得配置下Cron,来定时处理一些任务

#自己改域名
echo "* * * * * curl http://pan.example.com/Cron" >> /var/spool/cron/root
chmod 600 /var/spool/cron/root
service crond reload
service crond restart

然后访问 http://pan.example.com/Admin 登陆就行
初始用户名:admin@cloudreve.org
初始密码:admin

登陆后可以右上角进管理面板,改改用户名、邮箱、密码啥的,如果是私人使用也可以把注册功能关掉

剩下的还有启用Sendfile支持和配置远程存储我就不提了,因为文档相当完善,下面给链接

https://github.com/HFO4/Cloudreve/

如果有什么意见或建议可以去GitHub开issue,看了眼最近的issue作者可能会在下个大版本更新中添加Aria2实现离线下载功能,还是比较期待的。

声明:本文为原创,作者为 Svlik,转载时请保留本声明及附带文章链接:http://www.svlik.com/2414.html