WordPress 入门
学习我们将用于将 WordPress 与 Docker 配合使用的步骤。
WordPress
WordPress 是一个基于 PHP 和 MySQL 的开源内容管理系统,于 2003 年首次发布。它驱动着全球 40% 的网站,受到众多网络主机的支持,安装简便,并提供成千上万的免费主题和插件。
如果你是一名网页开发者,职业生涯中很可能曾接触过 WordPress。即使是现代的静态站点,也可以将 WordPress 作为无头 CMS 使用,通过它来编辑内容,再输入到站点生成器中。
即使你并不直接使用 WordPress,本章展示的概念也说明了如何在 Docker 容器中运行应用程序。这对于开发至关重要,但这一技术在大多数 Docker 教程中却很少被提及。
WordPress 环境要求
要开发一个基于 WordPress 的网站,你需要安装以下组件:
- 一个 Web 服务器,通常是 Apache。
- PHP 运行时及其扩展,并相应配置 Web 服务器。
- MySQL 或 MariaDB,并为 WordPress 创建一个新的数据库。
- WordPress 本身,以及所需的主题和插件。
像 XAMPP 这样的工具是目前最流行的 PHP 开发环境,可以减轻部分工作量。但借助 Docker,你可以在几分钟内完成 WordPress 的运行和代码开发。
Docker 配置方案
你将拉取两个 Docker 镜像:
wordpressmysql:5
使用 wordpress 的最新镜像是一个不错的选择。它提供了稳定版本的 Debian Linux、Apache、PHP 和 WordPress。虽然存在更轻量的 alpine 镜像,但它们与生产环境不一致,可能无法正常工作。这些容器将加入名为 wpnet 的 Docker 网络。
Docker 数据卷
将创建两个 Docker 数据卷:
wpdata:用于存储 MySQL 数据库,挂载到 MySQL 容器中的/var/lib/mysql目录。wpfiles:用于存放 WordPress 应用文件,挂载到 WordPress 容器中 Apache 服务器的根目录/var/www/html。
📌 一些开发者认为挂载
wpfiles卷是一种反模式,因为这使得 WordPress 容器不再无状态。这一点确实成立,但 WordPress 本身并不是无状态应用。使用 Docker 的目的是为了在开发阶段模拟真实的服务器环境。你在生产环境中几乎不会采用相同的配置。
挂载 wpfiles 卷具有多个优势:
- Docker 启动速度更快。无需每次启动容器时都重新复制核心 WordPress 文件。
- 可以自动更新 WordPress 应用。这在实际部署中是常见操作,因此在开发中复现这一流程非常有用。
📌 如果你不挂载
wpfiles卷,可以定期运行docker pull wordpress来获取最新的应用镜像。
通常情况下,无需检查或修改存储在任一数据卷中的文件。
开发目录绑定挂载
在项目目录中创建一个 wp-content 子目录,该目录包含所有插件、主题和上传的资源文件,并将其挂载到 WordPress 容器中的 /var/www/html/wp-content 路径。
WordPress 开发者应始终只在 wp-content 目录中创建和修改文件。
📌 虽然你可以编辑核心 WordPress 文件,但一旦应用更新,这些更改就会丢失。
作为额外好处,这使得将 wp-content 文件提交到 Git 或其他版本仓库更加方便。它是你本地主机上唯一需要关注的 WordPress 文件夹。