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

相关推荐
看天走路吃雪糕24 分钟前
墨者:SQL注入漏洞测试(布尔盲注)
数据库·sql·sqlmap·墨者学院·布尔盲注
*愿风载尘*24 分钟前
ksql连接数据库免输入密码交互
数据库·后端
追风少年浪子彦26 分钟前
mybatis-plus实体类主键生成策略
java·数据库·spring·mybatis·mybatis-plus
溟洵30 分钟前
Qt 窗口 工具栏QToolBar、状态栏StatusBar
开发语言·前端·数据库·c++·后端·qt
problc1 小时前
大模型API和秘钥获取地址
数据库·redis·缓存
Antonio9151 小时前
【Redis】Linux 配置Redis
linux·数据库·redis
qq_463944862 小时前
如何把Excel文件导入Navicat?
数据库·excel
不太厉害的程序员2 小时前
Excel 将数据导入到SQLServer数据库
数据库·sqlserver·excel
大白玉米3 小时前
短视第三套多功能主题3.0二开模板苹果CMS插件重构版
重构·php
betazhou4 小时前
MySQL ROUTER安装部署
android·数据库·mysql·adb·mgr·mysql router