Increase file upload size limit in PHP-Nginx

on April 12th, 2016 by Hades | No Comments »

If Nginx aborts your connection when uploading large files, you will see something like below in Nginx’s error logs:

[error] 25556#0: *52 client intended to send too large body:

This means, you need to increase PHP file-upload size limit. Following steps given below will help you troubleshoot this!

Changes in php.ini

To change max file upload size to 100MB

Edit…

vim /etc/php5/fpm/php.ini

Set…

upload_max_filesize = 100M
post_max_size = 100M

Notes:

1. Technically, post_max_size should always be larger than upload_max_filesize but for large numbers like 100M you can safely make them equal.
2. There is another variable max_input_time which can limit upload size but I have never seen it creating any issue. If your application supports uploads of file-size in GBs, you may need to adjust it accordingly. I am using PHP-FPM behind Nginx from very long time and I think in such kind of setup, its Nginx to which a client uploads file and then Nginx copies it to PHP. As Nginx to PHP copying will be local operation max_input_time may never create issue. I also believe Nginx may not copy the file but merely hand-over the location of file or descriptor records to PHP!

Change in Nginx config

Add following line to http{..} block in nginx config:

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

Reload PHP-FPM & Nginx

service php5-fpm reload
service nginx reload