时间起因是因为之前BLOG没有备份数据都丢失了,今天在和朋友聊天的时候讨论到到底使用Hexo还是用Halo?最后还是想熟悉下这两种博客的架设和部署方式,每次部署都有各种不同的问题,旨在提升自己的学习认知。以此有机会得到更多大佬们的指导~
因为我是在 CentOS 7 服务器上使用 Docker 部署 Hexo 博客,并结合 LNMP(Linux、Nginx、MySQL、PHP)技术栈。由于 Hexo 是一个静态站点生成器,生成 HTML 文件后仅需 Web 服务器(如 Nginx)提供服务,因此 LNMP 中的 MySQL 和 PHP 是可选的,适用于需要额外功能(如评论系统或数据库集成)的场景。本指南详细、专业且循序渐进,涵盖了从环境准备、Docker 安装、Hexo 配置、Docker 容器化、Nginx 配置到可选的 MySQL/PHP 集成的全过程,专为 CentOS 7 定制。其他系统环境有所区别差异还是略有不同,请知悉~
详细指南:在 CentOS 7 上基于 Docker 的 LNMP 部署 Hexo
1. 前置条件
开始之前,请确保具备以下条件:
- 一台 CentOS 7 服务器(物理机或云服务器,如 AWS、GCP 或阿里云),要求:
- Root 或 sudo 权限。
- 至少 2.4 GB 内存(确保 Docker 运行顺畅)。
- 至少 20 GB 磁盘空间(用于 Docker 镜像和 Hexo 内容)。
- 一个 域名(可选,用于通过 URL 访问博客,例如
example.com
)。 - 对 Linux 命令、Git 和 Docker 概念有基本了解。
2. 准备 CentOS 7 环境
更新系统并安装必要工具,确保兼容性和安全性。
2.1 更新系统包
sudo yum -y update
sudo yum -y upgrade
2.2 安装基础工具
安装 yum-utils
、git
等实用工具:
sudo yum -y install yum-utils git vim
2.3 禁用 SELinux(可选)
SELinux 可能干扰 Docker。临时禁用:
sudo setenforce 0
永久禁用,编辑 /etc/selinux/config
:
sudo vim /etc/selinux/config
将 SELINUX=disabled
设置,保存后重启:
sudo reboot
2.4 开放防火墙端口
为 Nginx 开放 HTTP(80 端口)和 HTTPS(443 端口):
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
若使用云平台,确保在安全组中开放这些端口。
3. 安装 Docker 和 Docker Compose
Docker 将用于容器化 Hexo 和 Nginx,而 Docker Compose 用于协调多个容器。
** **#### 3.1 安装 Docker
**
- 添加 Docker 源:
sudo yum-config-manager --add https://download.docker.com/linux/centos/docker-ce.repo
- 安装 Docker:
sudo yum -y install docker-ce docker-ce-cli containerd.io
- 启动并启用 Docker:
sudo systemctl start docker
sudo systemctl enable docker
- 验证 Docker :
docker --version
** **#### 3.2 安装 Docker Compose
**
- 下载最新 Docker Compose 二进制文件(请查看 官方 GitHub 发布页面 获取最新版本,例如
2.20.2
):
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-