从零开始部署waline服务器
前言
waline 是一款简洁、安全、支持多种部署方式的评论系统。网上关于如何使用Vercel+LeanCloud
进行部署的资料很多很详细,但这类免费平台的稳定性很差。如果自己有服务器,在自己服务器上部署无疑是更好的选择。遗憾的是,很少有文章会详细地记录如何使用独立服务器部署waline,大多数只记录了其中某些关键的步骤,容易让新手感到困惑。
因此在看了官方文档和一些独立部署的文章之后,这里总结了如何从零开始,一步一步地在一台服务器上部署waline。
服务器:腾讯云轻量应用服务器(CentOS 8系统)
数据库:MySQL
安装node环境
运行curl命令,下载并运行NodeSource安装脚本。setup_16.x
里的16是版本号,可根据自己需要修改。该脚本运行后会将NodeSource签名密钥添加到您的系统,创建yum储存库文件,安装所有必需的软件包,并刷新yum缓存。
1 |
|
接着运行以下命令安装Node.js和npm。
1 |
|
安装完成之后,可以运行以下命令判断是否安装成功。
1 |
|
配置mysql环境
安装mysql
首先通过以下命令确保CentOS系统
处于最新的状态。
1 |
|
然后在服务器的任意目录下,使用yum下载MySQL 8.0数据库版本。
1 |
|
下载完成后,通过ls
指令可以看到mysql80-community-release-el7-3.noarch.rpm
已成功下载到服务器上。此时可以执行以下指令安装数据库。
1 |
|
安装完成之后,可以直接使用yum安装MySQL Server
。在遇到系统提示时输入y
并按Enter
确认安装即可。
1 |
|
至此,mysql的安装工作已全部完成。
初始化mysql设置
安装好mysql之后,需要执行以下指令启动mysql,并查看mysql的状态。
1 |
|
然后运行以下指令进入mysql。mysql的root用户初始密码默认为空,所以第一次进入时,在输入密码处直接按回车即可。
1 |
|
进入mysql之后,先设置一下root的密码。
1 |
|
完成设置之后通过以下指令退出mysql。
1 |
|
创建waline使用的数据库
按照官网文档的指引,需要在服务器的任意目录下,创建一个名为waline.sql
的文件,然后将官网用于创建数据库表结构的文件复制粘贴到waline.sql
中。
1 |
|
完成编辑之后,输入pwd
查看并复制waline.sql
所在的目录。
1 |
|
接着用前面设置的密码进入mysql,并创建一个名为waline
的数据库。
1 |
|
然后进入新创建的waline数据库,通过source指令创建表结构。
1 |
|
最后切换到mysql数据库,将waline数据库的所有权限全部开放给root用户。
1 |
|
操作完成之后先退出mysql,然后输入以下指令重启mysql服务。
1 |
|
此时可以选择删除前面创建waline.sql
文件。
1 |
|
部署waline
创建waline项目
首先,在服务器的任意位置创建一个目录waline-service
。
1 |
|
紧接着在该目录下初始化项目。此步骤会创建package.json
文件,该文件用于记录项目所依赖的module,并配置项目的相关属性。
1 |
|
初始化完成之后,直接安装waline的服务器依赖包。
1 |
|
配置环境变量
下载完成后,还需要进行环境变量的配置。直接修改全局环境变量配置文件并不是推荐的做法,使用dotenv
在不污染全局环境变量配置文件
的前提下创建环境变量无疑是更好的做法。
1 |
|
然后创建环境变量.env
文件,并根据官方文档的配置说明写入环境变量配置项。
1 |
|
编辑完成之后,新建main.js
文件,指定环境变量配置的覆盖逻辑。
1 |
|
运行项目
配置完成之后,可以使用node进程管理工具pm2
来运行项目。
1 |
|
接着创建ecosystem.config.js
文件,指定pm2的执行参数。
1 |
|
然后修改package.json里的scripts
字段配置启动项,让pm2使用ecosystem.config.js
文件的执行参数运行项目。
1 |
|
最后,执行以下指令运行项目。
1 |
|
除此之外,还可以使用pm2设置waline项目开机自启动,具体命令如下。
1 |
|
使用waline
注册管理员并测试
waline默认使用8360端口,因此需要确保云服务器的8360端口处于开放的状态。以腾讯云的轻量应用服务器为例,需要手动添加一个开放8360端口的安全组
。
然后可以在浏览器输入http://服务器公网IP:8360/
进入waline的测试界面。此时点击login
则会出现登录界面,点击注册或者使用关联账号登录之后,waline会默认将第一个用户注册为后台管理员。
注册完成之后,可以输入http://服务器公网IP:8360/ui
进入后台管理系统,并在里面管理评论数据。
在hexo中接入waline
hexo并没有默认接入waline,但开发者可以在自主开发的主题中接入。
对于支持waline的hexo主题来说,接入waline最重要的参数是serverURL
,也就是前边用于测试评论效果的http://服务器公网IP:8360/
。
以本博客使用的hexo-fluid-theme为例,只需要在_config.fluid.yml
中开启评论功能之后,在填入上述链接即可。