
在现代网站部署中,Docker 已成为提升开发效率和运维便捷性的利器。结合 aaPanel 这一强大的图形化管理面板,Linux 服务器上的 WordPress 部署变得更加简便且高效。通过 Docker 容器化部署,不仅能实现环境的高度隔离,提升站点的稳定性和扩展性,还能在实现自动化备份、灵活扩展的同时,享受简单易用的操作体验。本教程将带您从零开始,手把手教您如何在 Linux 环境下,利用 aaPanel 和 Docker 快速部署 WordPress 博客,助力您的网站快速上线并稳定运行。
一、项目背景与架构概览
在Linux服务器上部署 WordPress 最传统的方式是 LAMP/LEMP 直接安装,但这种方式不利于维护与迁移。利用 Docker 容器化部署可以实现:
- 环境隔离(PHP/数据库/缓存独立容器)
- 快速伸缩
- 便于备份与迁移
- 可结合 aaPanel 图形化控制面板管理容器
最终架构如下图:
+---------------- aaPanel Docker 可视化管理 ----------------+
| |
| Docker Compose |
| +----------------+ +----------------+ +-----------+ |
| | wordpress_app | | mysql_db | | redis | |
| | (PHP-FPM+Nginx)| | (MySQL 8.0) | | (cache) | |
| +----------------+ +----------------+ +-----------+ |
| | | | |
| 80/443 3306/ 6379 | |
| |
+----------------------------------------------------------+
二、必备条件与硬件规格建议
2.1 推荐香港服务器www.a5idc.com规格(单站点博客)
| 项 | 配置建议 | 说明 |
|---|---|---|
| CPU | 2 Core (Intel Xeon 或 ARM64) | 满足日常访问与容器运行 |
| 内存 | 4 GB RAM | MySQL 与 Redis 容器共存 |
| 存储 | 50 GB SSD | 日志/备份/媒体文件存储 |
| 网络 | 100 Mbps 带宽 | 适合中等流量博客 |
| 操作系统 | Ubuntu 22.04 / CentOS 8 | 长期支持版本 |
| Docker 版本 | Docker 24.x | 最新稳定版 |
| Docker Compose | v2.x | 兼容性较好 |
若是高并发或图片/多媒体较多站点,推荐 8 GB 内存 + 200GB SSD。
三、Linux 环境准备
3.1 安装必要软件
以 Ubuntu 22.04 为例:
bash
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装基本工具
sudo apt install -y curl wget git unzip
# 安装 Docker 官方仓库
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动 Docker
sudo systemctl enable docker
sudo systemctl start docker
# 查看版本
docker version
输出示例:
Client:
Version: 24.0.5
API version: 1.42
...
Server:
Engine:
Version: 24.0.5
API version: 1.42 (minimum version 1.12)
四、安装与配置 aaPanel
4.1 安装命令(Ubuntu/CentOS 通用)
bash
# CentOS
yum install -y wget && wget -O install.sh http://www.aapanel.com/script/install_6.0_en.sh && bash install.sh
# Ubuntu
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh
执行完后,终端会输出一个 访问 URL 与默认账号/密码。
例如:
http://<SERVER_IP>:8888
Username: admin
Password: 123456
五、通过 aaPanel 启用 Docker 管理
5.1 进入 aaPanel 面板
浏览器打开:
http://<SERVER_IP>:8888
- 登录
- 安装 Docker 管理插件
- 启动 Docker 服务(如果未自动启动)
六、使用 Docker Compose 部署 WordPress
6.1 创建项目目录
bash
mkdir -p /www/docker/wordpress_blog
cd /www/docker/wordpress_blog
6.2 编写 Docker Compose 文件
文件名:docker-compose.yml
yaml
version: "3.9"
services:
db:
image: mysql:8.0
container_name: wp_mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root1234
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: wp_passwd
volumes:
- db_data:/var/lib/mysql
networks:
- wp_net
redis:
image: redis:7
container_name: wp_redis
restart: always
networks:
- wp_net
wordpress:
image: wordpress:latest
container_name: wp_app
restart: always
depends_on:
- db
- redis
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wp_passwd
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
networks:
- wp_net
volumes:
db_data:
wp_data:
networks:
wp_net:
参数说明
| 参数 | 含义 |
|---|---|
| MYSQL_ROOT_PASSWORD | Root 数据库密码 |
| MYSQL_DATABASE | WordPress 默认数据库 |
| redis | 缓存容器 |
| depends_on | 服务启动依赖 |
七、启动与访问
7.1 使用 aaPanel 或命令行启动
命令行启动:
bash
docker compose up -d
查看容器状态:
bash
docker ps
示例输出:
| CONTAINER | IMAGE | STATUS |
|---|---|---|
| wp_mysql | mysql:8.0 | Up |
| wp_redis | redis:7 | Up |
| wp_app | wordpress | Up |
八、性能与可用性调优
8.1 Nginx 缓存(Optional)
可通过修改 WordPress 容器加入 Nginx 缓存:
nginx
location / {
try_files $uri $uri/ /index.php?$args;
proxy_cache my_cache;
proxy_cache_valid 200 60m;
}
8.2 Redis 缓存插件
在 WordPress 后台安装 Redis 缓存插件(如:Redis Object Cache),并填写 Redis 地址:
127.0.0.1:6379
九、域名与 HTTPS 设置
9.1 申请证书(通过 aaPanel 自带一键 Let's Encrypt)
步骤:
- 进入 aaPanel → 网站 → 添加站点
- 填写主域名、根目录设为
/www/docker/wordpress_blog - 在网站设置中点击 SSL → 一键申请 Let's Encrypt
- 启用强制 HTTPS
十、备份与监控
10.1 数据库备份示例脚本(每日)
bash
#!/bin/bash
docker exec wp_mysql sh -c 'exec mysqldump --all-databases -uroot -p"root1234"' > /www/backup/db_backup_$(date +%F).sql
10.2 媒体文件备份
bash
tar -czvf /www/backup/wp_media_$(date +%F).tar.gz /www/docker/wordpress_blog/wp_data
设置 Cron:
0 2 * * * /path/to/backup_script.sh
十一、性能测试数据(示例)
基于单台 2C4G 服务器,使用 ab (Apache Bench) 模拟 100 并发,1000 请求:
| 测试项 | 数值 |
|---|---|
| Requests per second | 58.9 [#/sec] |
| Time per request (mean) | 1694 ms |
| Transfer rate | 139.8 KB/sec |
说明 :未优化 Redis 缓存时压力较大,推荐开启 Redis 缓存与 Opcode 缓存(如 PHP-FPM 配置 opcache)。
十二、常见问题与解决
12.1 WordPress 提示 "Error establishing a database connection"
检查:
bash
docker logs wp_mysql
docker logs wp_app
确认数据库环境变量、网络连通性:
bash
docker exec -it wp_app ping db
12.2 Redis 缓存无法连接
确认:
bash
docker logs wp_redis
确认插件配置为:
redis:6379
十三、总结
通过 Docker + aaPanel 的方式部署 WordPress 博客,有以下优势:
✔ 容器隔离保障环境一致
✔ aaPanel 提供图形化管理
✔ 易于横向扩展与自动化备份
✔ 易于配置 HTTPS 与域名管理
最终你会得到一个可稳定上线、支持容器化的 WordPress 博客平台!