如何在阿里云ECS为博客部署Waline评论系统
1.什么是waline评论系统
首先简单解释一下什么是waline评论系统,它是一款简洁、安全轻量级的独立评论系统。可以适配各类博客系统,进行单独评论添加,它的官网如下[waline]( Waline),里面有快速上手教程,教大家如何利用免费的Vercel部署的详细教程,如果你的博客系统也是利用vercel免费服务器部署的,那推荐直接采用官网快速上手的教程。如果你的博客系统和我一样部署在阿里云ECS服务器上,那么我强烈建议独立部署一个waline在已有的ECS服务器上面,不仅可以更好利用现有资源,同时更加安全可靠稳定,大大提高评论响应速度,毕竟免费Vercal不仅性能较差,同时因为国内GFW的关系,部署的评论系统访问并不稳定 ,并且阿里云部署的博客和vercal独立评论系统还有跨域访问的安全隐患。如果你是HEXO搭建的静态博客,那么可以完全按照我的步骤利用阿里云ECS服务器搭建独立waline博客评论系统,让我们直接开始吧。
2.部署Waline评论系统步骤
那么如何在阿里云ECS部署Waline,总体步骤如下:1.配置数据库,2.部署waline,3.修改访问地址。只要三步即可部署完成,每一步都会详细配置图文解说,如果你的静态博客就是用HEXO搭建的,哪怕新手小白也可部署成功,如果你的博客系统不是HEXO,那么第三步修改访问地址的方法,需要单独网上查找攻略配置,其他步骤配置是完全通用的,这个教程绝对是全网最详细的针对阿里云ECS服务器部署Waline教程。
2.1.配置数据库
这里建议采用docker配置一个新的数据库,即使你环境已经配置了mysql也不会冲突影响,但是如果你不想配置新的docker容器的mysql,可以直接跳到目录中的2.1.3初始化数据库。
2.1.1配置docker
配置数据库前,我们可以提前在阿里云ECS上面开启一下,我们可能用的到的端口4306和8360,阿里云ECS安全组默认是关闭的,需要手动添加一下,开启端口教程 官网教程,然后我们再在阿里云ECS服务器(Linux系统)上简单配置一下docker环境,如果你服务器上已经配置docker或者不确定是否配置docker,可以通过命令行查看,当前docker是否配置信息。
1 | sudo docker -v |
如果你已经安装过则会显示类似如下信息,则可以跳过此步骤
执行命令后的显示信息:
1 | [root@root ~]# sudo docker -v |
如果没有安装docker,按照如下操作即可
运行如下,下载docker-ce的yum源。
1 | sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
安装Docker。
1 | sudo yum -y install docker-ce |
然后也执行一下sudo docker -v查看是否安装成功。
执行如下命令,启动使能docker,这样你的docker容器就能跟随系统开机自启动。
1 | sudo systemctl start docker |
查看docker是否启动成功,显示active (running) 说明正常激活运行中
1 | sudo systemctl status docker |
执行命令后的显示信息:
[root@root ~]# sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2024-02-12 14:09:24 CST; 24h ago
Docs: https://docs.docker.com
Main PID: 21153 (dockerd)
Memory: 1.5G
如果你的ECS系统不是CentOS 7系统,而是其他版本可以参考阿里云官方文档安装指南Linux安装Docker并使用
2.1.2配置docker-Mysql
在服务器上执行如下命令行
1 | docker pull mysql:5.7 |
这时候就体现docker的好处了,即使你原来环境配置了mysql数据库,通过docker启动新的mysql可以不影响原来数据库,同时可以指定Mysql版本保证配置环境的相同,避免各种不兼容问题。
我们通过如下命令行开始创建运行mysql数据库容器,一次性复制该命令行,不要分段执行,全复制上以后回车即可。
1 | docker run -p 4036:4306 --name mysql \ |
具体参数说明如下:
-p 4306:4306:将主机的4306端口映射到docker容器的4306端口,为了避免和mysql常用端口3306冲突,我建议使用4406,也可以按照你需求,采用其他未占用端口启动即可。
–name mysql:设置docker容器的名称,这里设置的容器名称是mysql,你也可以修改为其它,这个容器名称需要记得,进入容器用的到容器名称
–restart=always:设置自启;
-e TZ=Asia/Shanghai:更改时区
-e MYSQL_ROOT_PASSWORD=123456:这里123456为你要设置的root用户密码,请记住这个密码,到时候登录mysql会有用,如果没有修改,那密码就是现在配置的123456,mysql密码可以修改更新,所以当下使用配置123456也不会影响。
-d mysql:5.7 : 运行的mysql版本信息
–character-set-server=utf8mb4 :设置Mysql字符集
–collation-server=utf8mb4_unicode_ci:设置Mysql校对集
-v /mydocker/mysql/conf:/etc/mysql/conf.d \ -v /mydocker/mysql/logs:/var/log/mysql \ -v /mydocker/mysql/data:/var/lib/mysql \:
挂载相应的目录,格式为-v 主机目录:容器内目录
如果没有提示错误,那就配置成功,我们可以通过命令查看当前mysql容器信息
1 | docker ps -a |
正常配置成功,显示应该类似这样,name就是我们配置的容器名称
执行命令后的显示信息:
1 | [root@root vhosts]# docker ps -a |
我们可以通过容器名称(mysql)或者容器ID(608effc0382b)配置如下命令进入Mysql容器,效果是一样的。
1 | sudo docker exec -it mysql /bin/bash |
1 | sudo docker exec -it 608effc0382b /bin/bash |
我们暂时不需要进入mysql容器,我们现在先需要查看一下docker-mysql的实际环回地址,执行如下命令,我们可以看到172.17.0.2,这个地址到时候登录配置我们会用的到,记住这个地址。
执行命令后的显示信息:
[root@root config]# docker exec -it mysql cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 608effc0382b
2.1.3初始化数据库表项
我们通过Navicat数据库管理工具连接服务器的mysql,执行waline官网下载好的sql数据库的任务就完成了
这里单独说明一下数据库版本要在5.5.3 以上才支持utf8mb4字符编码,如果你不是采用教程docker启动的mysql版本,执行sql语句会有问题。
2.1.3.1下载运行的sql语句
直接连接点进去下载或者下面的sql复制保存为.sql类型的文件都行
waline项目github的sql地址 walien官方sql
1 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; |
2.1.3.2连接数据库
如果你没有按照和连接过mysql数据库,没关系这里带你安装下载连接数据库。
首先下载Navicat可视化数据库管理工具,破解版安装配置教程参考如下链接,[Navicat16破解](Navicat Premium 16 永久破解激活 - 酷酷的洛克 - 博客园 (cnblogs.com))
下载安装完毕以后,左上角选择[文件]->[新建连接]->[mysql]
连接界面选择SSH,先连接阿里云ECS,然后选择常规在连接数据库,具体操作详情,查看如下
配置完SSH不要关闭界面,选择常规 ,继续配置mysql连接信息
然后点击确定,双击就可以看到数据库下面的表项
新建一个数据库,数据库名就叫waline,选择utf8m64,排序规则选择utf8m64_general_ci,
新建数据库完成然后点击运行sql,把原来下载保存好的.sql文件导入运行一下
表项生成会稍微有点慢,大概俩三分钟才能刷新看到,可以稍微等等,然后右键点击waline数据库,选择刷新就能看到表项了
最难的部分数据库我们就已经搞定了,剩下俩步,一个比一个简单。
2.2 部署waline
在阿里云ECS上面配置如下命令
1 | git clone https://github.com/walinejs/waline.git |
docker build -t lizheming/waline -f packages/server/Dockerfile .这个docker配置需要下载不少文件和资源,大概几十兆吧,等个几分钟构建完成以后,然后继续配置docker-waline,如果配置是按照教程来的,直接完整复制该命令,然后回车运行即可,如果配置有调整,请按照配置解释说明进行修改调整。
1 | docker run -d --name waline -p 8360:8360 \ |
配置解释
docker run -d –name waline -p 8360:8360 \ ———本次docker配置的端口信息,容器名称waline
-v /mydocker/waline/data:/app/data
-e TZ=”Asia/Shanghai”
-e MYSQL_HOST=”172.17.0.2” \ ———这个是docker-mysql的环回地址,如果没有配docker-mysql就是127.0.0.1
-e MYSQL_DB=”waline” \ ———这个就是我们新建的mysql数据库waline名称
-e MYSQL_USER=”root” \ ———-这个是我们定义的mysql数据用户
-e MYSQL_PASSWORD=”123456” \ ———-这个是我们定义的mysql数据用户密码
–restart always
lizheming/waline
这个配置完成,查看一下,能看到俩个docker信息,一个mysql一个waline,这就说明配置的没有问题,都已经生效了。
执行命令后的显示信息:
[root@root ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0269bddd5191 lizheming/waline “docker-entrypoint.s…” 21 hours ago Up 21 hours 0.0.0.0:8360->8360/tcp waline
608effc0382b mysql:5.7 “docker-entrypoint.s…” 29 hours ago Up 22 hours 3306/tcp, 33060/tcp, 0.0.0.0:4306->4306/tcp mysql
部署waline的最后一步了,通过浏览器访问http://ECS公网IP地址:8360/ui/register
,便能看到注册界面,注册的第一个用户会成为后台管理员,注册的时候,记住自己的账号和密码,下次登录别忘了。
2.3 修改访问地址
现在是修改博客配置文件就可以,我用的博客是hexo采用的butterfly主题,我的配置文件就是_config.butterfly.yml文件下面配置如下配置即可
1 | waline: |
然后重新hexo clean&&hexo g&&hexo s你就可以看到新配置的评论系统了,直接评论一下就能显示出来,并且数据库里面能看到新增的评论信息。
效果大概这样
如果想给我的博客留言,可以到关于页面 关于,下面给我评论留言,如果配置有啥问题也可以在下面留言给我