WordPress媒体上传大小限制无法提升,已尝试多种方法仍未解决
解决WordPress上传大小限制显示生效但实际无效的问题
我太懂这种明明后台显示设置成64M,但上传时还是卡在2MB的挫败感了——之前帮好几个客户排查过一模一样的问题,咱们一步步来揪出根源:
第一步:先确认PHP的实际运行配置(别信WordPress后台的显示)
WordPress的“网站信息”有时候会读取全局配置,但你的站点实际用的PHP环境可能是隔离的。咱们自己验证最靠谱:
- 在网站根目录创建一个名为
phpinfo.php的文件,内容是:<?php phpinfo(); ?> - 用浏览器访问你的域名+/phpinfo.php(比如
https://yourdomain.com/phpinfo.php) - 搜索这三个关键参数:
upload_max_filesize:必须是你设置的64Mpost_max_size:这个要比upload_max_filesize大(比如设成70M,因为上传时还要包含表单数据)memory_limit:至少128M,避免上传大文件时内存不足
- 如果这三个参数里有任何一个还是2MB,说明你的配置根本没被服务器加载,直接看下面的针对性解决方法。
第二步:针对不同主机环境的配置修正
情况1:用cPanel/Plesk等主机面板的用户
很多共享主机现在用MultiPHP管理器给每个站点单独配置PHP,你之前手动创建的php.ini或者修改的.htaccess可能被面板的配置覆盖了:
- 登录主机面板,找到
MultiPHP INI Editor(cPanel在“软件”分类下) - 选择你的域名,然后直接设置:
upload_max_filesize:64Mpost_max_size:70Mmemory_limit:128Mmax_execution_time:300(给上传足够的处理时间)
- 保存后,再刷新phpinfo页面确认参数是否生效。
情况2:Nginx服务器(或主机提示用.user.ini)
Nginx不支持.htaccess,这时候自定义PHP配置要用.user.ini文件:
- 在网站根目录创建
.user.ini(注意前面的点),内容:upload_max_filesize = 64M post_max_size = 70M memory_limit = 128M max_execution_time = 300 - 保存后,服务器一般会在5分钟内加载新配置,或者联系主机商强制刷新PHP进程。
情况3:Apache服务器但.htaccess没生效
如果是Apache,确认你的.htaccess在根目录,权限设为644,并且内容正确:
php_value upload_max_filesize 64M php_value post_max_size 70M php_value memory_limit 128M php_value max_execution_time 300
- 如果加了这段代码后网站报错,说明你的主机禁用了通过
.htaccess修改PHP参数,这时候放弃.htaccess,改用主机面板的配置方式。
第三步:排除缓存和前端缓存问题
- 清网站缓存:如果你用了WP Rocket、W3 Total Cache这类插件,先清空所有缓存。
- 清浏览器缓存:按
Ctrl+F5强制刷新媒体上传页面,或者用无痕模式打开WordPress后台再试上传——有时候媒体库的JS会缓存旧的限制值。
第四步:检查functions.php的修改是否有效
如果你之前改了主题的functions.php,注意:
- 不要直接改父主题的
functions.php,主题更新会覆盖你的修改,改用子主题或者自定义功能插件。 - 正确的代码应该是:
@ini_set( 'upload_max_size' , '64M' ); @ini_set( 'post_max_size', '70M'); @ini_set( 'max_execution_time', '300' ); - 如果phpinfo里的
disable_functions包含ini_set,这段代码就没用,直接用主机面板的配置方式。
最后:如果以上都没用,硬刚主机商
有些共享主机为了控制资源,会设置全局硬限制,表面让你改配置,但实际偷偷把最大上传限制锁在2MB。这时候直接给主机商发工单:
我的phpinfo显示
upload_max_filesize是64M,但WordPress媒体上传器还是只能传2MB,请问你们是否设置了全局的上传大小硬限制?能否帮我解除?
别接受“你的方向是对的”这种敷衍回复,明确要他们排查服务器的硬限制。
内容的提问来源于stack exchange,提问作者GigiBee
相关产品推荐
相关产品推荐

