一键搭建 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

相关推荐
0xDevNull4 小时前
MySQL数据冷热分离详解
后端·mysql
科技小花4 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸4 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
jwn9994 小时前
Laravel6.x核心特性全解析
开发语言·php·laravel
D4c-lovetrain4 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希5 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神5 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员5 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java5 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿6 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb