«

PHP上传文件大小限制,修改php.ini

时间:2026-10-8 08:35     作者:emer     分类: 无


前言

上传个大点的文件,提示"文件过大"或者直接报错?那是PHP上传限制太小了。本文讲怎么改php.ini调大上传限制。

一、默认限制多大

PHP默认上传限制一般是:

传个10M的文件就不行了。

二、要改哪几个参数

1. upload_max_filesize

单个文件最大大小:

upload_max_filesize = 100M

2. post_max_size

整个POST请求最大大小:

post_max_size = 100M

注意: post_max_size要 >= upload_max_filesize。

3. memory_limit

脚本可用内存:

memory_limit = 128M

要比post_max_size大。

4. max_execution_time

脚本最大执行时间(秒):

max_execution_time = 300

传大文件要久一点,设长点。

5. max_input_time

接收数据最大时间(秒):

max_input_time = 300

三、找php.ini

php --ini

或者写个phpinfo:

<?php
phpinfo();
?>

看Loaded Configuration File。

四、修改php.ini

改成100M上传

upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 128M
max_execution_time = 300
max_input_time = 300

改成50M上传

upload_max_filesize = 50M
post_max_size = 50M
memory_limit = 64M

五、改完重启

PHP-FPM

systemctl restart php-fpm

Apache

systemctl restart httpd

六、验证

写个phpinfo,看这几个参数改了没:

<?php
phpinfo();
?>

搜 upload_max_filesize,看是不是改过来了。

七、Nginx也要改

光改PHP不够,Nginx也有限制。

Nginx配置

client_max_body_size 100M;

改完重载

nginx -t
nginx -s reload

八、常见坑

坑1:改了php.ini不生效

改的不是实际加载的那个。

解决: 用phpinfo看实际加载的是哪个。

坑2:只改了upload_max_filesize

post_max_size没改,还是不行。

注意: 两个都要改,post_max_size >= upload_max_filesize。

坑3:Nginx挡了

PHP改了,Nginx的client_max_body_size没改,还是413错误。

解决: Nginx也改。

坑4:内存不够

Allowed memory size of ... bytes exhausted

解决: 加大memory_limit。

坑5:上传超时

大文件传一半就断了。

解决: 加大max_execution_time和max_input_time。

坑6:.htaccess里覆盖了

有些主机在.htaccess里设了php_value。

检查: 看看.htaccess里有没有。

九、快速排查

上传报错

  1. 先看PHP的upload_max_filesize够不够
  2. 再看post_max_size够不够
  3. 再看Nginx的client_max_body_size够不够
  4. 再看memory_limit够不够

十、推荐配置

一般网站(20M上传)

upload_max_filesize = 20M
post_max_size = 20M
memory_limit = 64M

文件站(100M上传)

upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 128M
max_execution_time = 300
max_input_time = 300

Nginx对应

client_max_body_size 100M;

总结

记住:

  1. 改三个参数:upload_max_filesize、post_max_size、memory_limit
  2. post_max_size >= upload_max_filesize
  3. Nginx也要改client_max_body_size
  4. 改完重启php-fpm和reload nginx
  5. 大文件要加大超时时间

最常用:

upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 128M

遇到问题加QQ23979811 协助处理

标签: PHP php.ini 上传限制 文件大小 upload_max_filesize