時間起因是因為之前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-