在腾讯云轻量服务器上部署 Halo(博客系统)与 MySQL 的步骤如下:
1. 准备工作
- 购买轻量服务器
选择适合的配置(建议 2核4G 或更高,Halo + MySQL 对内存有一定需求)。 - 系统选择
推荐 Ubuntu 20.04/22.04 或 CentOS 7/8(这里以 Ubuntu 22.04 为例)。 - 安全组配置
开放必要端口:80(HTTP)、443(HTTPS)、3306(MySQL,建议仅本地访问)。
2. 安装 MySQL
2.1 安装 MySQL 8.0
sudo apt update
sudo apt install mysql-server -y
2.2 安全配置
sudo mysql_secure_installation
按提示设置 root 密码并禁用远程登录(选择 n)。
2.3 创建 Halo 数据库
sudo mysql -u root -p
执行以下 SQL:
CREATE DATABASE halodb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'halo'@'localhost' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON halodb.* TO 'halo'@'localhost';
FLUSH PRIVILEGES;
EXIT;
3. 安装 Halo
3.1 安装 Java(Halo 依赖)
sudo apt install openjdk-17-jdk -y
验证安装:
java -version
3.2 创建运行用户
sudo useradd -m -s /bin/bash halo
sudo passwd halo # 设置密码
3.3 下载 Halo
sudo su - halo
mkdir ~/app && cd ~/app
wget https://dl.halo.run/release/halo-2.10.0.jar -O halo.jar
3.4 配置 Halo
创建配置文件 ~/app/application.yaml:
server:
port: 8090
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/halodb?useUnicode=true&characterEncoding=utf8&useSSL=false
username: halo
password: 你的密码
halo:
admin-path: admin
cache: memory
3.5 启动测试
java -jar halo.jar
访问 http://服务器IP:8090 完成初始化,确认无误后按 Ctrl+C 停止。
4. 配置 Systemd 服务
4.1 创建服务文件
sudo nano /etc/systemd/system/halo.service
内容如下:
[Unit]
Description=Halo Service
After=network.target mysql.service
[Service]
User=halo
WorkingDirectory=/home/halo/app
ExecStart=/usr/bin/java -jar halo.jar
Restart=always
[Install]
WantedBy=multi-user.target
4.2 启动并开机自启
sudo systemctl daemon-reload
sudo systemctl start halo
sudo systemctl enable halo
5. 配置 Nginx 反向X_X(可选)
5.1 安装 Nginx
sudo apt install nginx -y
5.2 配置站点
sudo nano /etc/nginx/conf.d/halo.conf
内容示例:
server {
listen 80;
server_name 你的域名或IP;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
5.3 重启 Nginx
sudo nginx -t
sudo systemctl restart nginx
6. 访问与后续配置
- 访问
http://服务器IP或域名完成 Halo 初始化。 - HTTPS 配置:使用 Certbot 申请免费 SSL 证书(参考 Let’s Encrypt 文档)。
常见问题
- MySQL 连接失败
检查 MySQL 用户权限及application.yaml中的密码。 - 端口冲突
确保8090或80端口未被占用。 - 内存不足
可通过sudo systemctl edit halo调整 JVM 参数(如-Xms256m -Xmx512m)。
通过以上步骤,你可以在腾讯云轻量服务器上稳定运行 Halo + MySQL。如需更高性能,可考虑将 MySQL 迁移至云数据库 TencentDB。
云服务器