Zavier's Blog

在LNMP环境下用Cloudreve搭建轻量级网盘系统

简介


cloudreve是一款国产的轻量级网盘系统,基于ThinkPHP构建,定位为公私兼备的网盘系统。

详细介绍可查看作者在v2ex发布的说明:https://www.v2ex.com/t/429092

先前用过NextCloud、OwnCloud、可道云等一些云盘系统,但是都不如我意,前二者都太过臃肿,比如NextCloud加载速度过慢,且对主机性能还有PHP要求较高,所以我用了一段时间便放弃了,到后来我发现了Cloudreve,这确实是一款优秀的云盘系统,加载速度快,且在线编辑文档、浏览视频图片等网盘的基本功能都一一具备。据作者介绍,目前已实现的功能有:

快速对接多家云存储,支持七牛、又拍云、阿里云 OSS、AWS S3,当然,还有本地存储

可限制单文件最大大小、MIMEType、文件后缀、用户可用容量

图片、音频、视频、文本、Markdown、Ofiice 文档 在线预览

移动端全站响应式布局

文件、目录分享系统,可创建私有分享或公开分享链接

用户个人主页,可查看用户所有分享

多用户系统、用户组支持

初步完善的后台,方便管理

拖拽上传、分片上传、断点续传、下载限速(*实验性功能)

多上传策略,可为不同用户组分配不同策略

用户组基础权限设置

WebDAV 协议支持


服务器配置要求及配置文件


环境

Linux+nginx+MySQL+PHP

PHP版本要求:

PHP5.6及以上,要求有curl、fileinfo、gd扩展。

获取程序源码:

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

创建web目录及用phpmyadmin配置好Cloudreve所使用的数据库后,将源码包解压到web目录,将mysql.sql导入数据库。导入完毕后,将目录下的mysql.sql和deploy.sh删除,并保证runtime目录有写入权限(可使用chown -R web用户 web目录 命令将整个目录的拥有者设为web用户拥有),同时,为了安全,须配置SSL证书,可使用letsencrypt的免费证书。

Nginx的配置文件:

server
   {
      listen 80;
      server_name pan.yourdomain.com; #你的域名
      rewrite ^(.*)$ https://pan.yourdomain.com;  #配置302跳转到https
   }
server  #https配置
   {
     listen 443;  
     ssl on;
     ssl_certificate /etc/https/yourdomain.com/server.crt;  #证书存放目录
     ssl_certificate_key /etc/https/yourdomain.com/server.key; #私钥存放目录
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_ciphers
     "EECDH+CHACHA20:EECDH+CHACHA20-
     draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";  
     ssl_prefer_server_ciphers on;
     ssl_session_cache shared:SSL:10m;
     server_name pan.yourdomain.com;
     root 填写你的web目录;
     index index.php;
     access_log 填写生成日志目录; #配置日志
        location ~ [^/]\.php(/|$)  #开启php
        {
            fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
           fastcgi_split_path_info ^(.+?\.php)(/.*)$;
           set $path_info $fastcgi_path_info;
           fastcgi_param PATH_INFO       $path_info;
           try_files $fastcgi_script_name =404;
        }
     location /
     {      
       client_max_body_size 2000M;  #最大上传文件大小配置,须另外在php.ini里面配置
       if (!-e $request_filename)       #重写规则配置
       {
        rewrite  ^(.*)$  /index.php?s=/$1  last;
        break;
       }
     }
      location ^~ /public/uploads/    #若干安全配置,禁止未授权客户直接访问敏感目录及文件
      {
        deny all;
      }
      location ^~ /public/thumb/
      {
        deny all;
      }
      location ^~ /runtime/log/
      {
        deny all;
      }
     location ~ .*\.(json)?$
      {
          deny all;
      }
     location ~ .*\.(js|css)?$     #js和css后缀文件缓存在本地,加快网页打开速度
      {
          expires      12h;
      }
      location ~ /\.  
      {
         deny all;
      }
  }


image.png






发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Copyright © 2017-2023 Zavier的博客.网站地图