服务器独立部署 Waline
Waline 从 Valine 衍生而来,是一款简洁、安全的评论系统。Waline 功能丰富,作为博客评论系统是一个非常不错的选择。Waline 有多种部署方式可选,在拥有服务器的情况下,当然更希望将 Waline 部署到自己的服务器上。本文主要分享在服务器上使用本地数据库部署 Waline 的经验。
以下为 Waline 支持的所有部署方式,在个人服务器上可以选择在 Docker 容器中安装,也可以选择直接安装。Waline 数据库的支持十分多样,本地数据库有 MongoDB、MySQL/MariaDB、TiDB、PostgreSQL 四种选择。本文主要介绍的是以 MySQL/MariaDB 为后端数据库的部署流程,其他数据库的部署方式也完全类似。
| 客户端脚本 | 服务端部署 | 数据存储 |
|---|---|---|
| @waline/client | Vercel | LeanCloud |
| MiniValine | Deta | CloudBase |
| sodesu | CloudBase | MongoDB |
| 百度云 CFC | MySQL | |
| 阿里云 FC | SQLite | |
| Railway | PostgreSQL | |
| Render | GitHub | |
| Zeabur | Deta Base | |
| Netlify | TiDB | |
| Docker | ||
| 独立部署 |
准备数据库
打开 MySQL 命令提示符为 Waline 新建一个用户用于数据库访问(也可以使用现有用户),以及一个数据库为 Waline 提供后端数据存储支持,并为用户授予该数据库的所有访问权限。
| |
注:如果 Database 名称包含 “.”、“-” 等特殊字符时,需要用
`号括起来.
一些版本的 PHP 与 MySQL 的身份认证插件 caching_sha2_password 不兼容,从 MySQL 8.0.4 开始 MySQL 默认身份验证插件从 mysql_native_password 改为 caching_sha2_password. 目前 Waline 并不默认支持这样的验证方式,如果提供给 Waline 的账户使用的是 caching_sha2_password 身份认证插件则将无法正确启动 Waline,可以使用修改用户密码的方式将身份认证插件更改为 mysql_native_password
| |
注:出于安全性考量,建议为 Waline 单独建立使用
mysql_native_password认证的账户,而非更改现有账户的认证方式。
使用提供给 Waline 的 账户启动 MySQL 提示符,导入 waline.sql 以完成 Waline 存储数据的三张表的构建。
| |
下载安装 Waline
npm. 一些 Linux 发行版的官方 Repository 中也许只包含较早版本的 Node.js,可以根据 通过包管理器安装 Node.js的操作说明安装合适Node.js。直接使用 npm 安装 Waline
| |
注:不使用
--prefix <Waline 安装路径>指定安装路径时,默认安装的到当前工作路径。
配置启动 Waline
目前几乎所有的 Linux 发行版都使用 systemd,这里也使用 systemd 来创建和管理 Waline 服务。首先创建 systemd 单元,在 /etc/systemd/system/multi-user.target.wants/waline.service 路径下创建 waline.service 文件,编辑文件填入相关配置,此处以 MySQL 举例:
| |
systemd支持Environment=<环境变量1>=<值1> "<环境变量2>=<值2> <值3>"的语法添加环境变量。systemd也支持使用EnvironmentFile=<文件路径>的方式指定文件路径,然后在相应文件中进行环境变量的配置。在“<文件路径>”前添加前缀“-”可以忽略文件不存在的读取错误。 其他数据库的环境变量配置请参见官方文档。
完成单元文件配置后,使用 sudo systemctl daemon-reload 重新载入 systemd 单元便可以启动 Waline 了。
| |
使用 sudo systemctl status waline 可以查看当前 Waline 的运行状态,Active 即表示成功运行。
| |
如果运行出现问题,可以使用
sudo journalctl -u waline查看 Waline 完整运行日志进行问题排查。
Waline 成功运行后,就可以通过浏览器访问 http://<服务器IP或域名>:8360/ui/register 进行用户注册。第一个注册的用户将会自动成为管理员。
进行网页访问时请确保端口 8360 已开启,否则无法进行访问;如果你的服务器部署在中国大陆境内且未完成备案,那么你可能无法通过域名进行访问。 如果你不想使用端口进行访问,可以参考官方文档中的 Nginx 反向代理 配置文件进行配置。
支付宝
贝宝
微信