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

相关推荐
程序员岳焱43 分钟前
Java 与 MySQL 性能优化:Java 实现百万数据分批次插入的最佳实践
后端·mysql·性能优化
计算机毕设定制辅导-无忧学长1 小时前
西门子 PLC 与 Modbus 集成:S7-1500 RTU/TCP 配置指南(一)
服务器·数据库·tcp/ip
程序员柳2 小时前
基于微信小程序的校园二手交易平台、微信小程序校园二手商城源代码+数据库+使用说明,layui+微信小程序+Spring Boot
数据库·微信小程序·layui
梦在深巷、2 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
IT乌鸦坐飞机2 小时前
ansible部署数据库服务随机启动并创建用户和设置用户有完全权限
数据库·ansible·centos7
IT_10242 小时前
Spring Boot项目开发实战销售管理系统——数据库设计!
java·开发语言·数据库·spring boot·后端·oracle
Johny_Zhao3 小时前
Ubuntu系统安装部署Pandawiki智能知识库
linux·mysql·网络安全·信息安全·云计算·shell·yum源·系统运维·itsm·pandawiki
祁思妙想3 小时前
八股学习(三)---MySQL
数据库·学习·mysql
惊骇世俗王某人4 小时前
1.MySQL之如何定位慢查询
数据库·mysql
秦歌6664 小时前
向量数据库-Milvus快速入门
数据库·milvus