【教程】WordPress 上传主题时报错:上传的文件大小超过 php.ini 限制?一文教你用 Docker 完美解决!
在使用 Docker 部署的 WordPress 时,很多小伙伴上传主题或插件时,会遇到一个常见的报错:
⚠️ 上传的文件大小超过 php.ini 文件中定义的 upload_max_filesize 值
这其实不是 WordPress 的问题,而是 PHP 配置文件(php.ini)默认上传限制太小 导致的。
默认情况下,Docker 官方 WordPress 镜像中的上传限制只有 2MB,所以稍微大一点的主题就会上传失败。
别急,这篇文章就教你 如何在 Docker 环境中一劳永逸地解决这个问题!
🧩 一、错误原因分析
WordPress 上传文件(包括主题、插件、图片等)时,受 PHP 配置项限制:
1 | upload_max_filesize = 2M |
当上传文件超过 upload_max_filesize 或 post_max_size 时,就会被 PHP 拦截,提示“超过 php.ini 限制”。
🛠 二、解决方案:在 Docker 中挂载自定义 php.ini
我们可以通过 挂载自定义 PHP 配置文件 的方式修改上传大小限制,这种方法:
- ✅ 不会被容器重启覆盖
- ✅ 适用于任何版本的 WordPress 镜像
- ✅ 不需要修改容器内部文件
步骤 1:创建自定义 php.ini
在你的项目根目录下新建一个文件:
1 | php.ini |
并写入以下内容:
1 | upload_max_filesize = 64M |
你可以根据需求调整上传大小,比如要上传大主题包,可以改成 128M。
步骤 2:修改 docker-compose.yml
找到你项目中的 docker-compose.yml 文件,在 wordpress 服务中挂载这个文件:
1 | services: |
这行非常关键:
1 | - ./php.ini:/usr/local/etc/php/conf.d/uploads.ini |
它会把你本地的 php.ini 文件挂载到容器中的 PHP 配置目录中,确保设置自动生效。
步骤 3:重新启动容器
保存修改后,在终端执行以下命令:
1 | docker compose down |
这会重新创建容器并加载新的 PHP 配置。
步骤 4:验证设置是否生效
进入 WordPress 容器查看 PHP 配置:
1 | docker exec -it wordpress bash |
如果输出结果为:
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 配置文件 |
| 共享主机 | 在 .htaccess 或 wp-config.php 添加 ini_set |
| 临时方案 | 进入容器或后台直接修改 |
✍️ 结语
通过挂载自定义 php.ini 文件,我们可以完美解决 WordPress 在 Docker 中的上传限制问题。
配置一次即可永久生效,再也不用担心上传主题或插件失败!
👉 参考命令:
1 | echo "upload_max_filesize = 64M" > php.ini |
简单三步,WordPress 上传限制从 2M 变成 64M!