返回列表

阿里云官方授权代理 阿里云服务器PHP上传限制修改

阿里云国际 / 2026-04-26 14:52:01

为什么你的文件总上传失败?

阿里云官方授权代理 当你辛辛苦苦写了一篇万字长文,上传时突然弹出"文件太大",是不是想把电脑砸了?别急,这事儿其实不难解决,阿里云服务器PHP上传限制就像个严格的门卫,只让小文件通过,大文件就得按规矩来,咱们现在就教你怎么让门卫放行。

默认情况下,PHP的上传限制通常只有2M,Nginx的上传限制可能也卡在1M左右。想象一下,你上传一张200K的图片没问题,但稍微大点的高清图或者视频就卡住。这简直比女朋友嫌你送的礼物不够大还难受!别慌,下面一步步来。

第一步:搞定PHP的上传限制

找到正确的php.ini文件

修改配置之前,先得知道PHP用的是哪个配置文件。这一步很关键,因为很多新手改错了文件,结果白忙活。打开终端,输入:

php -i | grep "Loaded Configuration File"

这行命令会显示当前PHP使用的配置文件路径。比如:

/etc/php/7.4/fpm/php.ini

或者

/etc/php.ini

不同系统可能路径不同。如果你用的是阿里云ECS,Ubuntu一般在/etc/php/7.4/fpm/php.ini,CentOS可能在/etc/php.ini。如果找不到,也可以用find命令找:

find / -name php.ini

这就像在图书馆找书,先问清楚在哪一排,再动手翻。

修改关键参数

用vim或者nano打开php.ini文件,找到这两个参数:

upload_max_filesize = 2M
post_max_size = 8M

别被默认值吓到,咱们得改大点。比如改成:

upload_max_filesize = 100M
post_max_size = 100M

注意:post_max_size必须大于等于upload_max_filesize。为啥?因为上传文件时,整个POST请求的数据(包括文件和表单数据)不能超过post_max_size。比如你上传1个100M的文件,那post_max_size至少得100M。如果同时上传多个文件,总和不能超过这个值。所以通常建议post_max_size比upload_max_filesize大10%-20%,比如100M和110M。但为了简单,直接设成一样也行,反正别让post更小。

改完记得保存。vim的话按ESC输入:wq,nano按Ctrl+O保存,Ctrl+X退出。

第二步:Nginx的"门卫"也需要放行

调整client_max_body_size

光改PHP还不够,Nginx作为前端服务器,也有自己的上传限制。默认可能只有1M,这比蜗牛还慢!

打开Nginx配置文件,通常位于/etc/nginx/nginx.conf,或者在/etc/nginx/conf.d/default.conf。用vim打开:

vim /etc/nginx/nginx.conf

在http块里(通常在文件开头部分),找到或者添加:

client_max_body_size 100m;

注意单位是m,代表megabytes。如果是在server块里,也可以单独设置,但一般在http块全局设置更方便。

比如:

http {
    ...
    client_max_body_size 100m;
    ...
}

保存后,记得检查语法是否正确:

nginx -t

如果出现"syntax is ok",说明没问题。

第三步:重启服务,别偷懒

修改配置文件后,必须重启服务才能生效。这步经常被忽略,导致你改了又改还是没用。

重启PHP-FPM(如果是用FPM模式):

systemctl restart php7.4-fpm

或者

service php7.4-fpm restart

重启Nginx:

systemctl restart nginx

或者

service nginx restart

如果你不确定服务名,可以用systemctl list-units | grep nginx查看。或者用service nginx restart。

重启后,再上传试试,应该没问题了!

第四步:常见问题急救包

修改了但没生效?

别急,可能有这些情况:

  • 改错了配置文件:比如你改的是CLI的php.ini,但实际用的是FPM的。用phpinfo()页面查看加载的配置文件路径,确认是否改对了。
  • 没重启服务:重启服务是必须的,别偷懒。
  • Nginx配置没生效:可能修改了错误的配置文件。比如在/etc/nginx/conf.d/下的某个server配置文件里也需要设置client_max_body_size。

如果还是不行,可以临时在PHP文件里用ini_set()设置,比如:

ini_set('upload_max_filesize', '100M');
ini_set('post_max_size', '100M');

但这只是临时方案,生产环境建议改配置文件。

安全小贴士:别给自己挖坑

上传限制调太大也有风险!比如设置成10GB,万一有人上传病毒文件或者大量垃圾文件,可能占用服务器空间甚至带宽。建议:

  • 根据实际需求设置,比如图片站20M足够,视频站可以设100M或200M。
  • 定期清理上传目录,防止堆积。
  • 结合文件类型检查,限制只能上传图片或特定格式。
  • 别忘了服务器的磁盘空间,避免被大文件占满。

阿里云官方授权代理 记住,安全第一,别为了省事把所有限制都放开。毕竟咱们要的是稳定,不是给自己找麻烦。

终极小技巧:一键测试上传

改完配置后,怎么知道是否成功?最简单的方法:用一个100M的测试文件上传试试。如果没有,可以生成一个测试文件:

dd if=/dev/zero of=testfile.bin bs=1M count=100

这会生成一个100M的文件,然后尝试上传。如果成功,说明设置生效;如果失败,再回头检查步骤。

或者用curl命令上传:

curl -F "[email protected]" http://你的网站地址/upload.php

如果返回成功,就搞定了!

结语:别再被上传限制绊倒

阿里云服务器PHP上传限制修改其实很简单,只要找到正确的配置文件,改对参数,重启服务。虽然过程有点琐碎,但只要按步骤来,绝对能搞定。下次上传大文件时,记得感谢自己今天的努力——毕竟,谁也不想因为上传失败而抓狂吧?

现在,快去试试吧!如果还有问题,评论区见,咱们一起解决!

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系