目前已经实现的特性:
1. 快速对接多家云存储,支持七牛、又拍云、阿里云OSS、AWS S3、Onedrive、自建远程服务器,当然,还有本地存储
2. 可限制单文件最大大小、MIMEType、文件后缀、用户可用容量
3. 自定义主题配色
4. 基于Aria2的离线下载
5. 图片、音频、视频、文本、Markdown、Ofiice文档 在线预览
6. 移动端全站响应式布局
7. 文件、目录分享系统,可创建私有分享或公开分享链接
8. 用户个人主页,可查看用户所有分享
9. 多用户系统、用户组支持
10. 初步完善的后台,方便管理
11. 拖拽上传、分片上传、断点续传、下载限速(*实验性功能)
12. 多上传策略,可为不同用户组分配不同策略
13. 用户组基础权限设置、二步验证
14. WebDAV协议支持
环境要求
a: LNMP/AMP With PHP5.6+ and mysql5.6+
b: curl、fileinfo、gd扩展
c: Composer
安装
部署cloudreve之前需要部署lamp/nmp的环境。我们可以自己手动安装,也可以采用面板或者一键安装包安装。
一键安装包:
https://lnmp.org/install.html
lnmp安装软件及其安装目录
https://lnmp.org/faq/lnmp-software-list.html#lnmp.conf
安装lnmp稳定版
wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp
1. 首先会提供多个版本的MySQL,MariaDB数据库选项,需要注意的是MySQL 5.6,5.7及MariaDB
10必须在1G以上内存的更高配置上才能选择!如仅需安装数据库在lnmp安装包目录下执行:./install.sh db
2. 设置MySQL的root密码(为了安全不输入直接回车将会设置为lnmp.org#随机数字)如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除(个别情况下是只需要Backspace键)。输入后回车进入下一步
3. 询问是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入 y
,如果确定确实不需要该引擎可以输入 n,(MySQL 5.7+版本无法关闭InnoDB),输入完成,回车进入下一步。
4. 输入要选择的PHP版本的序号,回车进入下一步,选择是否安装内存优化,可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车,直接回车为默认为不安装。
cloudreve部署
一 装包部署:
安装包地址:https://cloudreve.org/download.php
1. 前往安装包发布页下载最新的安装包,解压至您网站的根目录。
2. 给runtime目录写入权限,如果你使用本地存储,public 目录及其子目录也需要有写入权限;
chown -R www:www *
chmod -R 755 runtime public
3. 配置URL重写,Cloudreve的配置方式与ThinkPHP相同,如果遇到麻烦,你也可以参考有关ThinkPHPURL重写的配置教程。
如果您使用的是Apache,一般情况下无需进行额外配置,只需要启用url_rewrite模块即可。
如果您使用的是nginx,请在网站配置文件中添加以下内容()做伪静态):
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
4.配置下server下的nginx-php-fpm(可选)
4.1:nginx使用php-fpm的方式通信
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
4.2: 如果nginx使用unix socket的方式通信,则需要更改(ps -ef | grep php 中master orocess的文件)
找到listen = 127.0.0.1:9000;注释掉,增加socket连接:listen = /tmp/php-cgi.sock
location ~ \.php$ {
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/tmp/php-cgi.sock
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
4.3:重启你的php-fpm和nginx服务,建议先重启php-fpm。
/etc/init.d/php-fpm restart
/etc/init.d/nginx restart
5. 配置MYSQL
5.1:登录数据库
5.2:创建数据库
CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
5.3:导入数据库文件:
cd /home/wwwroot/default && mysql -u root -p 数据库名 < mysql.sql
6. 在发布目录中找到application目录下的database.php:
将数据库的基本信息填入
return [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'cloudreve',
// 用户名
'username' => 'root',
// 密码
'password' => '123456',
// 端口
'hostport' => '3306',
// 连接dsn
'dsn' => '',
// 数据库连接参数
'params' => [],
.....
.....
7. 创建一个定时任务crontab
echo "* * * * * curl http://ip_address/Cron" >> /var/spool/cron/root
chmod 600 /var/spool/cron/root
systemctl restart crond
ststemctl enable crond
systemctl status crond
8. 启用Sendfile支持,可大大降低用户下载文件时服务端的压力。使用前请先在后台-设置-杂项中启用X-Sendfile传输模式,并根据你使用的服务器软件选择正确的Header,并更改服务器配置:
Apache:
到https://www.apachelounge.com/download/ 下载并安装mod_xsendfile
在站点配置文件中加载并启用模块:
LoadModule xsendfile_module modules/mod_xsendfile.so
XSendFile On
XSendFileAllowAbove On
注:如果下载下载的文件为空文件,则说明后台Sendfile Header选项 选择有误。
Nginx:
在站点配置文件nginx.conf中添加
location /protected_files {
internal;
#此处为public/uploads目录的绝对路径
alias /home/wwwroot/file.cloudreve.org/public/uploads/;
}
9. 浏览器访问:http://ip_address/
10.点击用户面板-选择用户-管理员账号邮箱,密码。
11.点击用户面板-选择用户组-人员-初始容量
12.点击用户面板-选择上传策略-单文件最大大小
ps -ef | grep php 中master orocess的文件
二 composer部署:
Composer为PHP的包管理器,你可以使用Composer在命令行环境下进行安装。
1. 安装Composer:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
详细安装说明参考:http://docs.phpcomposer.com/00-intro.html
2. 由于我们国内环境限制,切换至Composer中国全量镜像以加快安装速度。
命令输入:composer config -g repo.packagist composer https://packagist.phpcomposer.com
其他参考:https://pkg.phpcomposer.com/
3. 在空白的网站根目录下执行,没有则创建一个空目录。
composer create-project hfo4/cloudreve:dev-master ./
4. 等待安装依赖库后,会自动执行安装脚本,按照提示输入数据库账户信息。在此过程中,请给runtime目录写入权限,如果你使用本地存储,public
目录及其子目录也需要有写入权限;在安装过程中还额外需要application
static目录的写入权限,但这两个目录在安装后就可以恢复原有权限配置;
___ _ _
/ __\ | ___ _ _ __| |_ __ _____ _____
/ / | |/ _ \| | | |/ _` | '__/ _ \ \ / / _ \
/ /___| | (_) | |_| | (_| | | | __/\ V / __/
\____/|_|\___/ \__,_|\__,_|_| \___| \_/ \___|
Ver XX
================================================
#按提示输入信息
......
5 出现以下提示即表明安装完成:
Congratulations! Cloudreve has been installed successfully.
Here's some informatioin about yor Cloudreve:
Homepage: https://pan.aoaoao.me/
Admin Panel: https://pan.aoaoao.me/Admin
Default username: admin@cloudreve.org
Default password: admin
6. 配置nginx.conf的伪静态规则:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
7. 创建一个定时任务crontab
echo "* * * * * curl http://ip_address/Cron" >> /var/spool/cron/root
chmod 600 /var/spool/cron/root
systemctl restart crond
ststemctl enable crond
systemctl status crond
8. 启用Sendfile支持,可大大降低用户下载文件时服务端的压力。使用前请先在后台-设置-杂项中启用X-Sendfile传输模式,并根据你使用的服务器软件选择正确的Header,并更改服务器配置:
Apache:
到https://www.apachelounge.com/download/ 下载并安装mod_xsendfile
在站点配置文件中加载并启用模块:
LoadModule xsendfile_module modules/mod_xsendfile.so
XSendFile On
XSendFileAllowAbove On
注:如果下载下载的文件为空文件,则说明后台Sendfile Header选项 选择有误。
Nginx:
在站点配置文件nginx.conf中添加
location /protected_files {
internal;
#此处为public/uploads目录的绝对路径
alias /home/wwwroot/file.cloudreve.org/public/uploads/;
}
9. 浏览器访问:http://ip_address/
10 点击用户面板-选择用户-管理员账号邮箱,密码。
11 点击用户面板-选择用户组-人员-初始容量
12 点击用户面板-选择上传策略-单文件最大大小
实现结果: