WordPress 是全球最流行的内容管理系统,官方市场份额常年第一(全球网站 40%+ 跑 WordPress)。虽然静态博客(Hugo/Jekyll)现在很火,但 WordPress 的"开箱即用 + 插件生态 + 后台可视化编辑"对新人和企业站仍是首选。这篇文章讲清楚 WordPress 官方镜像容器化部署、数据持久化、Nginx 反代、备份策略。
阅读对象:想用 WordPress 快速搭博客/企业站、又不想 LAMP 手工搭环境的同学
覆盖范围:WordPress 容器化部署、数据卷持久化、Nginx 反代、HTTPS、备份
一、为什么是 WordPress(容器化)
传统 LAMP 部署 WordPress:
- 装 Apache/Nginx + PHP + MySQL
- 配置 PHP-FPM / 虚拟主机
- 改 wp-config.php 数据库连接
- 装主题、插件、调权限
每台新机器都要重新走一遍。容器化的好处:
- 一致性:开发、测试、生产用同一镜像
- 可移植:服务器迁移只需打包数据卷
- 升级简单:
docker pull wordpress:latest一行就升级 - 隔离:和宿主机其他服务不冲突
When to use:需要"内容运营"团队(不熟技术)自己发文章、装插件,WordPress 是首选。如果只是写技术博客,Hugo / Jekyll 等静态博客更省心。
二、容器化部署
2.1 最简启动(SQLite 数据)
| |
数据卷
/var/www/html:WordPress 全部文件(核心代码 + 上传的媒体 + 主题插件)。挂出来才能持久化。
访问 http://{{HOST}}:8864 进入 WordPress 安装向导。
2.2 配合 MySQL 部署(推荐生产)
| |
utf8mb4:MySQL 5.7+ / 8.0 必须用 utf8mb4 字符集,emoji 和中文才不乱码。 depends_on:等 MySQL 起来再启 WordPress(但只保证容器启动顺序,不等 MySQL 完全就绪——WordPress 启动时会重试连接)。
2.3 初始账号
WordPress 安装向导里设置:
- 站点标题
- 管理员用户名 / 密码(不要用
admin) - 管理员邮箱
生产环境必改:
- 用户名不要用
admin(机器人会暴力破解)- 密码 16+ 位,大小写+数字+符号
- 邮箱用企业域名(找回密码用)
三、Nginx 反代 + HTTPS
| |
try_files关键:WordPress 用"文章名"做 URL(如/2019/03/hello-world/),Nginx 必须 fallback 到index.php,否则 404。client_max_body_size:WordPress 上传主题/插件可能 50MB+,默认 1M 会 413。
四、WordPress 后台必备设置
4.1 永久链接
Settings → Permalinks → Post name(/%postname%/)。别用默认的 ?p=123,SEO 友好需要路径式 URL。
4.2 媒体上传大小
- Nginx:
client_max_body_size 100m(如上) - PHP:容器内
php.ini或wp-config.php加:1 2@ini_set('upload_max_size', '100M'); @ini_set('post_max_size', '100M');
4.3 安全加固
- 改默认管理员用户名(不要
admin) - 强密码 + 二次验证(Google Authenticator 插件)
- 限制登录失败次数(Limit Login Attempts Reloaded 插件)
- 关闭文件编辑(
wp-config.php加define('DISALLOW_FILE_EDIT', true);) - 隐藏 WordPress 版本号(很多 security 插件有这个功能)
4.4 推荐插件
| 类别 | 插件 | 用途 |
|---|---|---|
| SEO | Yoast SEO / Rank Math | 元信息、sitemap、社交分享 |
| 缓存 | WP Super Cache / W3 Total Cache | 静态化提速 |
| 安全 | Wordfence / Sucuri | WAF、登录保护、扫描 |
| 备份 | UpdraftPlus / BackWPup | 自动备份到 OSS/S3 |
| 主题 | Astra / GeneratePress | 轻量、快、自定义强 |
| 编辑器 | Classic Editor / Gutenberg | 编辑器选择 |
五、备份策略
5.1 备份什么
- 数据库(
mysqldump):所有文章、用户、配置 - 数据卷(
wp_data):主题、插件、上传的媒体 wp-config.php:数据库连接等关键配置
5.2 备份脚本
| |
生产环境:备份同步到 OSS / S3 / 异地机房,本地磁盘挂了不能恢复等于没备份。
六、踩坑清单
- 上传 413——
client_max_body_size没调,或 PHPupload_max_filesize太小 - 固定链接 404——Nginx
try_files没配,或者.htaccess没生效 - 中文乱码——MySQL 没用 utf8mb4 字符集,老库是 latin1
- 主题/插件升级失败——
wp_data没挂出来,容器升级后回到默认状态 - wp-admin 卡顿——没接 CDN/缓存,每次请求都打 WordPress
- 被刷登录——没装限流插件,admin 用户名太简单被暴力破解
七、2024+ 视角补充
本文写于 2019-03,2024-2026 这几年 WordPress 生态有显著变化:
WordPress 6.x 核心更新:
- 6.0-6.6(2022-2024)逐步把经典编辑器过渡到全站编辑(Full Site Editing, FSE)+ 块主题(Block Theme),传统 PHP 主题(如 Twenty 系列)模式正在被"块"取代
- 6.5+ 引入站点字体加载 API(Site Fonts API),前端字体管理不再靠主题 hack
- 6.6(2024-07)性能大幅提升:首屏 LCP 优化、字体切换不闪屏、插件加载顺序调优
PHP 版本要求:WordPress 6.5+ 最低要求 PHP 7.4,强烈推荐 8.2+(性能提升 30%+)。wordpress:6-php8.3-apache 是 2024+ 生产推荐 tag。
容器化最佳实践更新:
- 官方镜像
wordpress2024 年起改用 PHP 8.x + Apache 默认 tag,wordpress:latest实际跑的是 6.6.x + PHP 8.3。旧的wordpress:5-apache还可拉但不收安全补丁 - 多阶段构建:2024 年生产推荐用
FROM wordpress:6-php8.3-apache+ 自定义wp-content主题/插件做多阶段,把不可变基础设施原则贯彻 - 持久化命名约定:从 2019 年的
wp_data卷,到 2024 年推荐wp-content、wp-uploads拆成独立卷——主题/插件更新不影响上传文件
Headless WordPress / WPGraphQL: 2023+ 越来越多团队把 WordPress 当 CMS-only 用(只走 WPGraphQL / REST API 输出 JSON),前端用 Next.js / Nuxt 渲染。好处:复用 WordPress 的后台编辑体验,前端享受现代 SPA/SSG 性能。WPGraphQL 插件 1.16+ 稳定。
反代 / HTTPS 实践变化:
- 2023 年起 certbot 推荐用 snap 或 docker 化部署(不再
apt install) - Caddy 替代 Nginx 越来越流行:自动 HTTPS(Let’s Encrypt 自动续期)、
Caddyfile配置比 nginx.conf 简洁 50% - WordPress 6.5+ 自带 application passwords 替代传统 API token,更安全
现代化插件栈(2024 推荐):
| 类别 | 旧推荐 | 2024+ 推荐 |
|---|---|---|
| 缓存 | WP Super Cache | WP Rocket(付费)或 LiteSpeed Cache(免费且强) |
| 安全 | Wordfence | Solid Security(原 iThemes) |
| SEO | Yoast SEO | Rank Math(免费 + 高级功能) |
| 静态化 | W3 Total Cache | Simply Static(生成纯静态站点) |
| 表单 | Contact Form 7 | WPForms / Fluent Forms |
经验法则更新:内容运营团队 + 简单站点 → WordPress 6.6 + PHP 8.3 + MariaDB 11 + LiteSpeed Cache;纯写技术博客 → Hugo / Astro 仍是更省心选择;API 化集成业务 → Headless WordPress + Next.js。
八、参考资料
- WordPress 官方文档:https://wordpress.org/support/
- WordPress 6.6 发布说明:https://wordpress.org/news/2024/07/
- Docker Hub WordPress:https://hub.docker.com/_/wordpress
- WordPress 永久链接:https://wordpress.org/support/article/using-permalinks/
- WPGraphQL:https://www.wpgraphql.com/
- 安全白皮书:https://wordpress.org/about/security/
下一步
- 想做静态博客?→ 看 Hugo / Hexo 等(本站用的就是 Hugo)
- 想做密码管理?→ Vaultwarden 自托管密码 一文
- 想做反代网关?→ Nginx 反向代理实战 一文
