[Cloudreve]用 Cloudreve 快速建设基于OSS的个人云盘

前言

之前其实在云计算的1024中玩法中其实也有介绍过在 ECS 搭建一个 NextCloud 的网盘(),不过其实 ECS 云盘的价格还是比较贵的,在高并发下载的时候也容易遇到 I/O 瓶颈,特别是当云盘储存到一定容量以后如何扩容云盘也会是一个比较麻烦的事情。

像 OSS 这样的对象储存才是附件储存的第一选择,在国内外许多网盘公司都是选择购买对象储存的云服务来降低成本和运维压力的。那么我们搭建一个私人网盘自然也要选择 OSS 作为储存。

介绍

Cloudreve 就是这样一款出色的国产网盘,是一款基于 ThinkPHP 构建的网盘系统,能够助您以较低成本快速搭建起公私兼备的网盘。在功能上,可限制单文件最大大小、MIMEType、文件后缀、用户可用容量,图片、音频、视频、文本、Markdown、Ofiice文档 在线预览,拖拽上传、分片上传、断点续传、下载限速等等。

要求 & 收获

需要使用到的产品:

  1. 搭建了 LNMP 环境的任意(包括非阿里云)服务器/ECS (阿里云服务器可以不计推送到 OSS 的流量)
  2. 阿里云 OSS

通过本文你将讲学到:

  1. 使用 Composer 安装 PHP 程序
  2. 使用 OSS 作为网盘储存

教程

由于篇幅限制,不过多介绍 LNMP 环境介绍和虚拟主机搭建,具体教程请看:【云计算的1024种玩法】手把手学会配置安装 LNMP 建站环境

安装 Composer

由于目前 Cloudreve 处于开发状态,所以我们需要通过 Composer 进行安装。

一、运行下面代码即可全局安装 Composer:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

二、使用国内镜像 因为默认源在海外,国内服务器下载可能会很慢,海外服务器可以跳过:

composer config -g repo.packagist composer https://packagist.phpcomposer.com

安装 Cloudreve

创建好网盘用的虚拟主机和数据库后,进入虚拟主机网站的目录,例如我的是 /data/wwwroot/pan,然后开始下载安装:

cd /data/wwwroot/
composer create-project hfo4/cloudreve:dev-master

然后再虚拟主机的配置 conf 中加入伪静态规则:

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

[WP-CLI]使用 WP-CLI 高效便捷化管理 WordPress

介绍

WP-CLI 是一个强大的 PHP 命令行拓展,可以在不使用 WP后台 的情况下,仅通过命令行就可以完成 WP、主题、插件的安装、升级、使用等等,非常的强势,并且安装插件都是以最佳的姿势进行,如果一些插件需要课外进行什么复杂的设置,那么使用 WP-CLI 就可以便捷的完成安装,并且规避新手随意设置权限带来的安全风险。

因为 WP-CLI 的运行要求较高,所以一般只存在于高级虚拟主机和服务器中。

环境

  • Unix-like 环境(OS X, Linux,FreeBSD,Cygwin)
  • PHP 5.3.29 或更新
  • WordPress 3.7 或更新

安装

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp --info

可选

由于 WP-CLI 是为了安全的 WP 操作而生的,所以如果直接使用 root 账户操作,会提示不安全。所以我们要创建一个账户

useradd wp-cli
// 'wp-cli' 是换成你想要的账户名称,然后输入两次密码即可

然后我们通过 'wp-cli' 登入 SSH,再使用 WP 命令进行操作即可。 不过需要确保新建账户对相关 WP 目录拥有操作权限。 一般来说 /home/wp-cli/ 目录是肯定有权限的。后续需要 root 权限的操作,使用 sudo 即可。

注: 如果不想新建账户,那么我们在命令后加上 --allow-root 即可。
例如:

wp --allow-root core download --version=4.6.1 ...

HBM vs. HMC继DDR技术后的两种颠覆性内存类型

数据中心硬件买家可以评估两种新兴的服务器类型内存,搭建未来高性能系统。

高带宽内存(HBM)是一种用于支持内存设备数据吞吐量的高性能接口,其性能远超常规形式的内存。

混合存储立方(HMC)技术带来远超传统高带宽内存设计的性能,如双倍数据率三代与四代(DDR3和DDR4),但是这两种方法采用的技术不同,它们对服务器内存性能的提升也有所不同。 ...

Let’s Encrypt 免费通配型证书申请

主要步骤:

  1. 安装 acme.sh
  2. 生成证书
  3. copy 证书到 nginx/apache 或者其他服务
  4. 更新证书
  5. 更新 acme.sh
  6. 出错怎么办, 如何调试

下面详细介绍.

1. 安装 acme.sh

安装很简单, 一个命令:

curl  https://get.acme.sh | sh

普通用户和 root 用户都可以安装使用.
安装过程进行了以下几步:

  1. 把 acme.sh 安装到你的 home 目录下:
~/.acme.sh/

并创建 一个 bash 的 alias, 方便你的使用: acme.sh=~/.acme.sh/acme.sh

2). 自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书.

更高级的安装选项请参考: https://github.com/Neilpang/acme.sh/wiki/How-to-install

安装过程不会污染已有的系统任何功能和文件, 所有的修改都限制在安装目录中: ~/.acme.sh/

2. 生成证书

acme.sh 实现了 acme 协议支持的所有验证协议.
一般有两种方式验证: http 和 dns 验证.

1. http 方式需要在你的网站根目录下放置一个文件, 来验证你的域名所有权,完成验证. 然后就可以生成证书了.

acme.sh  --issue  -d mydomain.com -d www.mydomain.com  --webroot  /home/wwwroot/mydomain.com/

只需要指定域名, 并指定域名所在的网站根目录. acme.sh 会全自动的生成验证文件, 并放到网站的根目录, 然后自动完成验证. 最后会聪明的删除验证文件. 整个过程没有任何副作用.

如果你用的 apache服务器, acme.sh 还可以智能的从 apache的配置中自动完成验证, 你不需要指定网站根目录:

acme.sh --issue  -d mydomain.com   --apache

如果你用的 nginx服务器, 或者反代, acme.sh 还可以智能的从 nginx的配置中自动完成验证, 你不需要指定网站根目录:

acme.sh --issue  -d mydomain.com   --nginx

注意, 无论是 apache 还是 nginx 模式, acme.sh在完成验证之后, 会恢复到之前的状态, 都不会私自更改你本身的配置. 好处是你不用担心配置被搞坏, 也有一个缺点, 你需要自己配置 ssl 的配置, 否则只能成功生成证书, 你的网站还是无法访问https. 但是为了安全, 你还是自己手动改配置吧.

如果你还没有运行任何 web 服务, 80 端口是空闲的, 那么 acme.sh 还能假装自己是一个webserver, 临时听在80 端口, 完成验证:

acme.sh  --issue -d mydomain.com   --standalone

更高级的用法请参考: https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert

2. dns 方式, 在域名上添加一条 txt 解析记录, 验证域名所有权.

这种方式的好处是, 你不需要任何服务器, 不需要任何公网 ip, 只需要 dns 的解析记录即可完成验证.
坏处是,如果不同时配置 Automatic DNS API,使用这种方式 acme.sh 将无法自动更新证书,每次都需要手动再次重新解析验证域名所有权。

acme.sh --issue --dns -d mydomain.com ...