各位父老乡亲,先别急着喊我“一个小目标”,今天我老王不讲房价,也不聊球队,就聊一件让我也犯怵的破事儿——往自家网站里传张高清自拍,结果 WordPress 弹出一行冷冰冰的提示:文件过大,请减肥后再来!我当场就想把电脑抱去健身房跑个十公里。
想当年,我拿着十个亿去拍块地,眼都不眨;如今一张8K写真,区区30 MB,居然被“媒体上传大小限制”给卡脖子了?这感觉就像拿着黑卡去买煎饼,老板只收钢镚儿,憋屈!
于是我撸起袖子,盘腿坐在服务器机柜旁边,跟它唠嗑:兄弟,给条活路行不行?下面就是我“首富式”谈判总结,大家抄作业不谢。
第一步:先看清敌人是谁
把鼠标往屏幕右上角一甩,点“工具→站点健康→信息→服务器”,看一眼 post_max_size、upload_max_filesize 两个数字。如果俩加起来还没我早餐的茶叶蛋贵(比如2 MB),那就别怪服务器翻脸无情。
第二步:给服务器递华子——说人话就是改配置
宝塔用户:登录面板→软件商店→找到你那杯“PHP咖啡”→配置修改→upload_max_filesize 改成 64M,post_max_size 也改成 64M。保存,重启 PHP,服务器就跟我签了战略合作协议。
cPanel 用户:文件管理器→public_html 里放个“php.ini”,写三行:
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
保存后刷新,要是还不行,就把文件重命名为“.user.ini”,再不行就祭出“.htaccess”大招:
php_value upload_max_filesize 64M
php_value post_max_size 64M
云服务器硬核玩家:SSH 连上去,vim /etc/php/7.4/fpm/php.ini,改完:wq,systemctl restart php7.4-fpm,服务器立刻眉开眼笑。
第三步:WordPress 内部打点
在主题 functions.php 末尾丢两行:
@ini_set( 'upload_max_size' , '64M' );
@ini_set( 'post_max_size', '64M' );
这相当于给 WordPress 也塞了个红包,告诉它别在门口拦我。
第四步:土豪专用——直接上云
要是嫌上面麻烦,直接掏钱买“WP Offload Media”或“阿里云OSS”,把图片扔云存储,想传多大就多大,反正流量费还抵不上我一根高尔夫球杆。
第五步:终极奥义——分割压缩
真碰到硬茬,就把30 MB的图拖进 TinyPNG,一键减到3 MB,画质还能打;或者把 PSD 切成九宫格,分九次上传,拼图拼回去,仪式感满满。
至此,媒体上传大小限制被我老王治得服服帖帖。下回再有人说“文件太大”,我就甩他一句:兄弟,限制的不是大小,是你想象力!
————————————————————
教程时间:手把手再拆解“WordPress媒体上传大小限制”
名词解释
“媒体上传大小限制”= 服务器端 PHP 参数 + WordPress 自身限制 + 可能存在的代理/CDN 限制。三者谁最小,谁就是瓶颈。
排查流程图
① 后台→工具→站点健康→信息→服务器,记录 upload_max_filesize、post_max_size、memory_limit。
② 对比 WordPress 提示的“最大上传大小”,若两者一致,则瓶颈在 PHP;若 WordPress 更小,则再查主题/插件。
修改 PHP 的五种方法
a. 宝塔/小皮/AMH 等面板:图形化修改 → 重启 PHP。
b. cPanel:php.ini、.user.ini、.htaccess 三选一。
c. Plesk:域名→PHP 设置→直接输入值。
d. 虚拟主机无法改配置:联系客服提工单,或迁移。
e. Docker/K8s:重建镜像时把 php.ini COPY 进去,或在 docker-compose.yml 里加 environment: PHP_UPLOAD_MAX_FILESIZE=64M。
WordPress 层面兜底代码
在 wp-config.php 加:
define( 'WP_MEMORY_LIMIT', '256M' );
在主题 functions.php 加:
add_filter( 'upload_size_limit', function(){ return 64 * 1024 * 1024; } );
大文件终极方案
• 启用分块上传插件“Tuxedo Big File Uploads”。
• 使用云存储插件,把上传动作转到 OSS/S3,绕过主机限制。
• 前端压缩:ShortPixel、TinyPNG API 自动压缩后再上传。
验证是否成功
重新上传一张大于原先限制的图片,看到进度条一路狂奔到100%,恭喜你,已通关!