免费的 Azure 数据库和 Web 应用搭建 Waline 评论系统
本文最后更新于:2022年10月12日 晚上
Azure 学生订阅 和其他大部分订阅都提供了免费的 MySQL
数据库和 应用服务(10 个 Web、移动或 API 应用,提供 1 GB 存储空间),刚好可以用来托管博客的评论系统 Waline。
背景
参考文章:
创建数据库
waline 支持 MySQL
和 PostgreSQL
,Azure
的学生订阅二者都支持。本文选择的是 MySQL
。
进入 Azure 首页 ,选择 创建资源。搜索 Azure Database for MySQL
或 【推荐】 Azure Database for MySQL Flexible Server
。
如果选择了 Azure Database for MySQL
记得在点击创建以后,再选择 灵活服务器
或者直接选择 Azure Database for MySQL Flexible Server
:
注意是 Azure Database for MySQL
而不是 SQL Database
!
后者对学生订阅没有免费额度。
填写创建配置:
资源组和服务器名称可以随便写,MySQL版本有 8.0 和 5.7 两种,区域推荐填写 east asia,距离中国更近。
计算 + 储存这里一定要选择 B1ms ,这样才是免费的。学生订阅有个 B1s
计算同样也免费,但它可以用于创建服务器,且配置低于 B1ms
,拿来创建数据库浪费了。
下面的管理员用户名和密码,就是你访问SQL数据库的用户名密码,设置后一定要记住。
免费计划里,数据库最多有32 GB免费存储。需要的话可以点击 配置服务器 ,然后拉满
点击,下一步:网络
,为了能够让 waline-server
访问到数据库,在防火墙规则这里选择,
可选 如果你需要从其他位置连接数据库,那么在下面填写相应的 IP 地址即可。
比如说一键添加你当前使用的 IP到白名单: **+ 添加当前客户端 IP 地址(xxx.xxx.xxx.xxx)**。
添加 0.0.0.0 - 255.255.255.255 可以使得数据库直接对公网开放,但这是危险的操作。
最后看一下网页右边的估计成本,点击创建即可。过程大概需要5分钟左右。静待完成后,点击 转到资源
。
初始化数据库
根据 Waline
官方文档,使用时请先导入 waline.sql 以完成表和表结构的创建。这里我们连接数据库后导入即可。
创建数据库
在数据库资源界面,按照下图操作即可(我用的英文,大家注意对应)
使用 Azure Cloud shell 连接数据库
首先连接数据库。有很多连接方式,只要连接 IP 在白名单内即可。(白名单除了在创建的时候配置,还可以在 网络
这里进行配置)
这里推荐使用 Azure 自带的 Azure Cloud shell
来进行连接。
进入 Azure 首页 ,找到如下图标并点击。
页面下方会出现如下控制台,选择 Bash
,第一次使用需要选择订阅,并创建存储,之后等待创建完成:
导入数据库
连接 + 初始化 数据库的命令:
1 |
|
解释一下, 数据库名称.mysql.database.azure.com
是数据库的 hostname
,管理员用户名是你设置的。 waline
是导入后的数据库库名,可以随便写,建议写 waline
如果不清楚上面说的这些,就去 所有资源 - 刚刚创建的数据库 - 连接
这里查看。
之后会出现类似下面的界面让你输入密码,注意你输入密码的时候,控制台是不显示密码的,直接键盘输入然后回车即可。
1 |
|
【可选】删除 Azure Cloud shell 中的 waline.sql 文件
1 |
|
服务端
注册好 Azure 账户后,在 Azure Portal 中创建一个 Web 应用:
之后点击 创建
就好了。
设置环境变量
等 Web 应用创建完成,按照下面的步骤一个个填写下面表格里带 ✅ 的环境变量,全部填写完后记得点击保存。
在项目中配置如下环境变量,其中有 ✅ 的是必须填写的。
环境变量名称 | 必填 | 填写的值 | 备注 |
---|---|---|---|
MYSQL_HOST | ✅ | 上面说过的 hostname | MySQL 服务的地址 |
MYSQL_PORT | 3306 | MySQL 服务的端口 | |
MYSQL_DB | ✅ | waline | MySQL 数据库库名 |
MYSQL_USER | ✅ | 数据库的管理员用户名(waline) | MySQL 数据库的用户名 |
MYSQL_PASSWORD | ✅ | 创建数据库的时候设定的 | MySQL 数据库的密码 |
MYSQL_PREFIX | wl_ | MySQL 数据表的表前缀 | |
MYSQL_CHARSET | utf8mb4 | MySQL 数据表的字符集 | |
MYSQL_SSL | ✅ | true | 是否使用 SSL MYSQL 连接数据库 |
填写后效果如下
更多环境变量配置查看官方文档
博客端配置
Hexo 有几个主题已经直接嵌入了 waline 评论系统。
1 |
|