一键搭建 WordPress + MySQL + phpMyAdmin 环境(支持 PHP 版本选择 & 自定义配置)

文章目录

    • [✅ 功能亮点](#✅ 功能亮点)
    • [🧱 项目结构](#🧱 项目结构)
    • [📦 完整 `docker-compose.yml`](#📦 完整 docker-compose.yml)
    • [🐘 Dockerfile(选择 PHP 版本)](#🐘 Dockerfile(选择 PHP 版本))
    • [⚙️ 自定义 php.ini](#⚙️ 自定义 php.ini)
    • [🚀 启动项目](#🚀 启动项目)
    • [📌 常见问题 & 提示](#📌 常见问题 & 提示)
    • [✅ 总结](#✅ 总结)

想快速搭建一个 WordPress 环境?这篇文章将带你一步步实现:使用 Docker Compose 一键部署 WordPress、MySQL 和 phpMyAdmin,同时支持指定 PHP 版本和自定义 php.ini 配置。


✅ 功能亮点

  • 🚀 一键启动 WordPress + MySQL + phpMyAdmin
  • 🧩 可选 PHP 版本(通过自定义 Dockerfile)
  • ⚙️ 自定义 php.ini 配置
  • 💾 数据持久化保存到本地目录
  • 🔐 所有配置开箱即用

🧱 项目结构

首先,我们建议使用如下目录结构:

复制代码
project-root/
├── docker-compose.yml       # 核心 Docker 配置
├── php.ini                  # PHP 自定义设置
├── wordpress/               # WordPress Dockerfile 存放处
│   └── Dockerfile
└── data/                    # 数据卷
    ├── wordpress/           # WordPress 文件(自动生成)
    └── mysql/               # MySQL 数据(自动生成)

📦 完整 docker-compose.yml

这是本项目的核心配置,定义了三个服务:wordpressdb(MySQL)和 phpmyadmin

yaml 复制代码
version: '3.3'

services:
  wordpress:
    build:
      context: ./wordpress
      dockerfile: Dockerfile
    container_name: wordpress
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    volumes:
      - ./data/wordpress:/var/www/html
      - ./php.ini:/usr/local/etc/php/php.ini
    depends_on:
      - db

  db:
    image: mysql:5.7
    container_name: wordpress_db
    restart: always
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
      MYSQL_ROOT_PASSWORD: rootpassword
    volumes:
      - ./data/mysql:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    restart: always
    ports:
      - "8081:80"
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: rootpassword
    depends_on:
      - db

🐘 Dockerfile(选择 PHP 版本)

你可以使用 WordPress 官方镜像的 PHP 变体,例如 PHP 8.1、8.2 或 7.4:

wordpress/Dockerfile

Dockerfile 复制代码
# 使用 PHP 8.1 的 WordPress 镜像
FROM wordpress:php8.1-apache

# 安装 mysqli 扩展(可按需添加更多扩展)
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli

⚙️ 自定义 php.ini

如果你需要调整上传大小、内存限制等,可以创建一个 php.ini 文件:

php.ini

ini 复制代码
upload_max_filesize = 1024M
post_max_size = 1024M
memory_limit = 256M
max_execution_time = 300

该文件会在容器中挂载到 /usr/local/etc/php/php.ini,自动生效。


🚀 启动项目

确保你已经安装了 Docker 和 Docker Compose,然后在项目根目录运行:

bash 复制代码
docker-compose up -d

启动成功后:


📌 常见问题 & 提示

  • 如何更换 PHP 版本?

    修改 Dockerfile 中的 FROM 行,例如换成 wordpress:php7.4-apache

  • WordPress 文件修改后不生效?

    确保 ./data/wordpress 目录存在并具有正确权限(尤其是在 Linux 下)。

  • php.ini 没生效?

    检查是否正确挂载,并重启容器 docker-compose restart wordpress


✅ 总结

通过上述配置,你可以快速搭建一个可自定义的 WordPress 环境,无需繁琐手动配置数据库或 PHP 设置。

如果你觉得这篇文章对你有帮助,欢迎收藏、分享或留言交流!

提示:更多内容可以访问Clang's Blog:https://www.clang.asia

相关推荐
计算机毕设VX:Fegn08955 小时前
计算机毕业设计|基于springboot + vue医院设备管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
Mr__Miss5 小时前
保持redis和数据库一致性(双写一致性)
数据库·redis·spring
Knight_AL6 小时前
Spring 事务传播行为 + 事务失效原因 + 传播行为为什么不用其他模式
数据库·sql·spring
倔强的石头_6 小时前
时序数据时代的“存储与分析困局”解析及金仓解决方案
数据库
计算机毕设VX:Fegn08956 小时前
计算机毕业设计|基于springboot + vue小型房屋租赁系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
倔强的石头_7 小时前
场景化落地指南——金仓时序数据库在关键行业的应用实践
数据库
SelectDB7 小时前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
运维·数据库·apache
刀法如飞7 小时前
开箱即用的 DDD(领域驱动设计)工程脚手架,基于 Spring Boot 4.0.1 和 Java 21
java·spring boot·mysql·spring·设计模式·intellij-idea
zbguolei7 小时前
MySQL根据身份证号码计算出生日期和年龄
数据库·mysql
马克学长8 小时前
SSM校园图书借阅服务系统jd2z8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·图书管理系统·ssm 框架·ssm 校园图书借阅系统