奋斗
努力

腾讯云轻量服务器部署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. 端口冲突
    确保 809080 端口未被占用。
  3. 内存不足
    可通过 sudo systemctl edit halo 调整 JVM 参数(如 -Xms256m -Xmx512m)。

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

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