frankenphp下修改wordpress上传限制必须编辑主php.ini文件,因不支持.htaccess和@ini_set();需设置upload_max_filesize、post_max_size和memory_limit并重启frankenphp进程。

FrankenPHP 下 WordPress 媒体库上传限制必须改 PHP 运行时配置,不能靠 functions.php 或 .htaccess 生效 —— 因为 FrankenPHP 不用 Apache 模块,也不读 .htaccess,@ini_set() 在大多数 FrankenPHP 部署中也被禁用。
确认当前限制值从哪里来
FrankenPHP 是基于 SAPI 的 PHP 运行时(类似 CLI/FPM),它只加载主 php.ini 和可能的 .user.ini,不支持 php_value 指令。你看到的“最大上传文件大小:2M”一定来自 PHP 自身配置,而非 WordPress 逻辑。
验证方式:
- 在 WordPress 后台 → 工具 → 站点健康 → 服务器标签页,查看
upload_max_filesize和post_max_size实际值 - 或新建
info.php放入网站根目录:<?php phpinfo(); ?>,访问后搜索 “Loaded Configuration File” 确认生效的php.ini路径
修改 php.ini 中的关键参数
FrankenPHP 默认使用系统级或容器内指定的 php.ini。你需要直接编辑该文件(不是 WordPress 根目录下随便建的)。常见位置包括:
-
/etc/php/*/frankenphp/php.ini(Debian/Ubuntu 系统) -
/usr/local/etc/php/php.ini(macOS Homebrew 或 Alpine 容器) - Docker 环境中需挂载并修改镜像内的
php.ini,或通过PHP_INI_SCAN_DIR加载自定义配置
必须设置的三项(示例设为 128MB):
upload_max_filesize = 128M post_max_size = 128M memory_limit = 256M
注意:post_max_size 必须 ≥ upload_max_filesize;memory_limit 建议 ≥ 2× post_max_size,否则大文件解析阶段可能因内存不足中断。
将 LaTeX(.tex)学术论文转换为 Word(.docx),支持可编辑的 OMML 公式、原生 Word 表格、嵌入图形、IEEE 双栏排版及参考文献
FrankenPHP 特有的重启与验证要点
FrankenPHP 不依赖 Apache/Nginx reload,但配置变更后必须重启 FrankenPHP 进程本身:
- 如果以 systemd 服务运行:
sudo systemctl restart frankenphp - 如果用 Docker:
docker restart <container_name></container_name>(确保php.ini已正确挂载) - 如果用
frankenphp serve命令本地开发,需终止进程并重执行
验证是否生效:
- 刷新
info.php页面,确认三个参数值已更新 - WordPress 媒体库上传页面显示的“最大上传文件大小”应同步变化
- 上传一个略大于原限制(如 3MB)的文件,观察是否仍报
The uploaded file exceeds the upload_max_filesize limit.
为什么 .user.ini 可能不生效
FrankenPHP 对 .user.ini 的支持取决于编译时是否启用了 --enable-user-ini,且仅在请求路径下逐级查找(类似 FPM 的 scan_dir 行为)。很多 FrankenPHP 构建版本默认关闭该特性。
如果你尝试在 WordPress 根目录放 .user.ini 却没效果,不要反复试错 —— 直接改主 php.ini 更可靠。临时加一句 var_dump(ini_get('upload_max_filesize')); 到主题 functions.php 开头,能快速确认当前实际值。
真正卡住的地方往往不是参数写错,而是改了错误的 php.ini 文件、没重启 FrankenPHP 进程、或容器里根本没把新配置挂载进去 —— 这些比参数值本身更常导致“明明改了却不生效”。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










