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

在腾讯云轻量应用服务器上部署 Halo(博客系统)+ MySQL 是一个非常常见的需求,适合个人博客或小型网站的搭建。以下是详细的部署步骤,适用于 Linux 系统(如 Ubuntu 或 CentOS)。


🧱 一、环境准备

1. 腾讯云轻量服务器配置建议

  • 操作系统:Ubuntu 20.04 / 22.04 或 CentOS 7/8(推荐 Ubuntu)
  • 至少 2核2G 内存(Halo 对内存有一定要求)
  • 开放端口:
    • 80(HTTP)
    • 443(HTTPS)
    • 22(SSH)
    • 3306(MySQL,默认不开放,仅本地使用)

⚙️ 二、安装 MySQL 数据库

Ubuntu 安装 MySQL:

sudo apt update
sudo apt install mysql-server -y

初始化 MySQL 安全设置:

sudo mysql_secure_installation

设置 root 密码,其他选项一路回车即可。

创建 Halo 使用的数据库和用户(可选):

mysql -u root -p
CREATE DATABASE halo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'halo'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON halo.* TO 'halo'@'localhost';
FLUSH PRIVILEGES;
exit;

🐳 三、部署 Halo(推荐使用 Docker)

1. 安装 Docker 和 Docker Compose

Ubuntu 安装 Docker:

sudo apt install docker.io docker-compose -y

验证是否安装成功:

docker --version && docker-compose --version

2. 创建 docker-compose.yml 文件

创建一个目录用于存放 Halo 相关文件:

mkdir ~/halo && cd ~/halo
nano docker-compose.yml

粘贴以下内容(使用 MySQL):

version: "3"
services:
  halo:
    image: halohub/halo:2.16
    container_name: halo
    restart: on-failure
    depends_on:
      - mysql
    networks:
      - halo-network
    volumes:
      - ./halo:/root/halo
    ports:
      - "8090:8090"
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/halo?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
      - SPRING_DATASOURCE_USERNAME=halo
      - SPRING_DATASOURCE_PASSWORD=your_password

  mysql:
    image: mysql:8
    container_name: halo-mysql
    restart: always
    networks:
      - halo-network
    environment:
      - MYSQL_ROOT_PASSWORD=root_pass
      - MYSQL_DATABASE=halo
      - MYSQL_USER=halo
      - MYSQL_PASSWORD=your_password
    volumes:
      - ./mysql:/var/lib/mysql
    ports:
      - "127.0.0.1:3306:3306"

networks:
  halo-network:
    driver: bridge

修改上面的 your_password 为你的数据库密码。


3. 启动服务

docker-compose up -d

等待镜像拉取并启动容器。


🌐 四、访问 Halo 初始化页面

浏览器打开:

http://你的服务器IP:8090

然后根据提示完成初始化设置(管理员账号等),选择“自定义模式”,填写数据库信息(已经由 Docker 自动配置好了)。


🔐 五、配置反向X_X(可选)

如果你希望使用域名访问 Halo,可以使用 Nginx 反向X_X:

安装 Nginx:

sudo apt install nginx -y

创建站点配置文件:

sudo nano /etc/nginx/sites-available/halo

写入如下内容:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8090;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用站点:

sudo ln -s /etc/nginx/sites-available/halo /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

📝 六、常见问题处理

1. Halo 启动失败

检查日志:

docker logs halo

可能原因:

  • 数据库连接失败(用户名、密码错误)
  • 数据库未正常启动
  • 端口冲突(8090 被占用)

2. 数据库无法连接

确保 SPRING_DATASOURCE_URL 正确指向了 mysql(Docker 中的服务名)


✅ 七、总结

工具 版本 用途
Halo 最新版 博客系统
MySQL 8.x 数据库存储
Docker 推荐 容器化部署
Nginx 可选 反向X_X

如果你有具体的操作系统版本、遇到的问题或想用非 Docker 的方式部署,也可以告诉我,我可以提供更具体的指导。

需要我帮你生成完整的脚本或一键部署方案吗?

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