奋斗
努力

腾讯云轻量服务器部署halo+mysql?

云计算

在腾讯云轻量服务器上部署 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 文档)。

常见问题

  1. MySQL 连接失败
    检查 MySQL 用户权限及 application.yaml 中的密码。
  2. 端口冲突
    确保 8090 或 80 端口未被占用。
  3. 内存不足
    可通过 sudo systemctl edit halo 调整 JVM 参数(如 -Xms256m -Xmx512m)。

通过以上步骤,你可以在腾讯云轻量服务器上稳定运行 Halo + MySQL。如需更高性能,可考虑将 MySQL 迁移至云数据库 TencentDB。

未经允许不得转载:云服务器 » 腾讯云轻量服务器部署halo+mysql?