在PHP下上传文件时有时会报413 Request Entity Too Large
错误,即上传的文件太大,要解决这个问题,需要同时修改nginx和php的配置。
nginx配置
nginx默认上传的文件最大是1M,太小了。
修改conf文件,加一行
client_max_body_size 10m; # 改为你需要的大小
这一行可以放location
块中,也可以放在http
块中,还可以放在server
块中。
三者设置的区别在于,作用域不同:
- 设置到
http
内,控制全局nginx所有请求报文(附件)大小; - 设置到
server
内,控制该server的所有请求报文(附件)大小; - 设置到
location
内,只控制满足该路由规则的请求报文(附件)大小。
一般来说,放在server
块中比较合适。
PHP配置
需要修改php.ini中的两项配置
post_max_size = 10M
upload_max_filesize = 10M
跟nginx中的文件大小保持一致即可。
修改完后重启nginx和php-fpm服务。
其它
如果所使用的框架对上传的文件也做了限制,需要一并修改。
比如FastAdmin框架,需要修改application/extra/upload.php
中的maxsize
配置。