【教程】WordPress 上传主题时报错:上传的文件大小超过 php.ini 限制?一文教你用 Docker 完美解决!

在使用 Docker 部署的 WordPress 时,很多小伙伴上传主题或插件时,会遇到一个常见的报错:

⚠️ 上传的文件大小超过 php.ini 文件中定义的 upload_max_filesize 值

这其实不是 WordPress 的问题,而是 PHP 配置文件(php.ini)默认上传限制太小 导致的。
默认情况下,Docker 官方 WordPress 镜像中的上传限制只有 2MB,所以稍微大一点的主题就会上传失败。

别急,这篇文章就教你 如何在 Docker 环境中一劳永逸地解决这个问题!


🧩 一、错误原因分析

WordPress 上传文件(包括主题、插件、图片等)时,受 PHP 配置项限制:

1
2
upload_max_filesize = 2M
post_max_size = 8M

当上传文件超过 upload_max_filesizepost_max_size 时,就会被 PHP 拦截,提示“超过 php.ini 限制”。


🛠 二、解决方案:在 Docker 中挂载自定义 php.ini

我们可以通过 挂载自定义 PHP 配置文件 的方式修改上传大小限制,这种方法:

  • ✅ 不会被容器重启覆盖
  • ✅ 适用于任何版本的 WordPress 镜像
  • ✅ 不需要修改容器内部文件

步骤 1:创建自定义 php.ini

在你的项目根目录下新建一个文件:

1
php.ini

并写入以下内容:

1
2
3
4
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300

你可以根据需求调整上传大小,比如要上传大主题包,可以改成 128M。


步骤 2:修改 docker-compose.yml

找到你项目中的 docker-compose.yml 文件,在 wordpress 服务中挂载这个文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
services:
wordpress:
image: wordpress:latest
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: example
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wordpress_data:/var/www/html
- ./php.ini:/usr/local/etc/php/conf.d/uploads.ini

这行非常关键:

1
- ./php.ini:/usr/local/etc/php/conf.d/uploads.ini

它会把你本地的 php.ini 文件挂载到容器中的 PHP 配置目录中,确保设置自动生效。


步骤 3:重新启动容器

保存修改后,在终端执行以下命令:

1
2
docker compose down
docker compose up -d

这会重新创建容器并加载新的 PHP 配置。


步骤 4:验证设置是否生效

进入 WordPress 容器查看 PHP 配置:

1
2
docker exec -it wordpress bash
php -i | grep upload_max_filesize

如果输出结果为:

1
upload_max_filesize => 64M => 64M

说明配置已经生效 🎉


🧾 三、在 WordPress 后台检查结果

打开 WordPress 后台 →
导航到【媒体 → 添加新内容】页面,底部会显示:

最大上传文件大小:64 MB

此时,你再上传主题或插件就不会再提示超出限制了。


🔧 四、推荐配置参考

参数 建议值 说明
upload_max_filesize 64M – 128M 控制单个文件上传大小
post_max_size 64M – 128M 控制整个表单(含文件)大小
memory_limit 256M PHP 内存限制
max_execution_time 300 脚本最大执行时间(秒)

如果你的主题比较大(例如带演示数据的高级主题),建议设置到 128M。


💡 五、延伸阅读:其他环境的解决方案

如果你不是用 Docker,而是以下环境,也可以用类似方法解决:

  • 宝塔面板 → 修改 PHP 配置
  • cPanel → 使用 PHP INI Editor
  • Cloudways / Plesk → 在 Settings & Packages 调整上传限制
  • 本地环境 (XAMPP / MAMP) → 直接编辑 php.ini 文件

✅ 总结

环境 推荐解决方法
Docker ✅ 挂载自定义 php.ini(最稳定)
宝塔 / cPanel 修改 PHP 配置文件
共享主机 .htaccesswp-config.php 添加 ini_set
临时方案 进入容器或后台直接修改

✍️ 结语

通过挂载自定义 php.ini 文件,我们可以完美解决 WordPress 在 Docker 中的上传限制问题。
配置一次即可永久生效,再也不用担心上传主题或插件失败!


👉 参考命令:

1
2
3
echo "upload_max_filesize = 64M" > php.ini
echo "post_max_size = 64M" >> php.ini
docker compose up -d

简单三步,WordPress 上传限制从 2M 变成 64M!