免费的 Azure 数据库和 Web 应用搭建 Waline 评论系统

本文最后更新于:2022年10月12日 晚上

Azure 学生订阅 和其他大部分订阅都提供了免费的 MySQL 数据库和 应用服务(10 个 Web、移动或 API 应用,提供 1 GB 存储空间),刚好可以用来托管博客的评论系统 Waline。

背景

参考文章:

  1. 【hexo博客】在Azure上搭建Waline评论服务

创建数据库

waline 支持 MySQLPostgreSQLAzure 的学生订阅二者都支持。本文选择的是 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 访问到数据库,在防火墙规则这里选择,

允许从任何 Azure 内的任何 Azure 服务公开访问此服务器

可选 如果你需要从其他位置连接数据库,那么在下面填写相应的 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
2
wget https://raw.githubusercontent.com/walinejs/waline/main/assets/waline.sql
mysql -h 数据库名称.mysql.database.azure.com -u 管理员账户 -p waline<waline.sql

解释一下, 数据库名称.mysql.database.azure.com 是数据库的 hostname ,管理员用户名是你设置的。 waline 是导入后的数据库库名,可以随便写,建议写 waline

如果不清楚上面说的这些,就去 所有资源 - 刚刚创建的数据库 - 连接 这里查看。

之后会出现类似下面的界面让你输入密码,注意你输入密码的时候,控制台是不显示密码的,直接键盘输入然后回车即可。

1
2
azureusername [ ~ ]$ mysql -h waline.mysql.database.azure.com -u waline -p waline<waline.sql 
Enter password:

【可选】删除 Azure Cloud shell 中的 waline.sql 文件

1
rm waline.sql

服务端

注册好 Azure 账户后,在 Azure Portal创建一个 Web 应用

Docker 这里,按下图配置:

1

之后点击 创建 就好了。

设置环境变量

等 Web 应用创建完成,按照下面的步骤一个个填写下面表格里带 ✅ 的环境变量,全部填写完后记得点击保存

在项目中配置如下环境变量,其中有 ✅ 的是必须填写的。

环境变量名称必填填写的值备注
MYSQL_HOST上面说过的 hostnameMySQL 服务的地址
MYSQL_PORT3306MySQL 服务的端口
MYSQL_DBwalineMySQL 数据库库名
MYSQL_USER数据库的管理员用户名(waline)MySQL 数据库的用户名
MYSQL_PASSWORD创建数据库的时候设定的MySQL 数据库的密码
MYSQL_PREFIXwl_MySQL 数据表的表前缀
MYSQL_CHARSETutf8mb4MySQL 数据表的字符集
MYSQL_SSLtrue是否使用 SSL MYSQL 连接数据库

填写后效果如下

更多环境变量配置查看官方文档

博客端配置

Hexo 有几个主题已经直接嵌入了 waline 评论系统。

1
2
3
4
5
6
7
8
9
10
11
<script src="//cdn.jsdelivr.net/npm/@waline/client"></script>
<div id="waline"></div>
<script>
Waline({
el: '#waline',
serverURL: 'https://xxxxxxxxxxxxx',
dark: 'body.dark',
meta: ['nick', 'mail'],
requiredMeta: ['nick'],
});
</script>

免费的 Azure 数据库和 Web 应用搭建 Waline 评论系统
https://pawswrite.xyz/posts/f1b701c3.html
作者
Rainbow
发布于
2022年10月12日
许可协议