Me encontré con este error al intentar subir contenido de más de 8 MB a mi servidor Nginx con PHP-FPM:
2016/12/19 06:21:09 [error] 32610#0: *286 FastCGI sent in stderr: "PHP message: PHP Warning: POST Content-Length of 10857140 bytes exceeds the limit of 8388608 bytes in Unknown on line 0" while reading response header from upstream, client: 6.6.6.6, server: www.linuxito.com, request: "POST /index.php HTTP/1.1", upstream: "fastcgi://unix:/run/forest/php5-fpm.sock:", host: "www.linuxito.com", referrer:"https://www.linuxito.com/index.php"
Este error ocurre cuando los datos enviados a través del método HTTP POST sobrepasan un límite establecido (por defecto 8 MB en PHP5).
Inicialmente pensé en incrementar el valor en la variable upload_max_filesize
en el archivo php.ini
del servidor FPM (/etc/php5/fpm/php.ini
), ya que estaba intentando subir un archivo:
upload_max_filesize = 20M
Sin embargo existe una variable específica para el caso de los daos que se suben a través del método HTTP POST:
post_max_size = 20M
Es necesario incrementar ambas variables para que la subida no falle.
Luego, reiniciar el servidor FPM:
# service php-fpm restart
Por otro lado, es necesario verificar la configuración del servidor Nginx (/usr/local/nginx/conf/nginx.conf
) para comprobar que el límite para el tamaño de los requerimientos de los clientes no sea menor (sobre todo si se ha efectuado un hardening del servidor Nginx):
client_max_body_size 20M;
# service nginx restart
En servidores Apache con PHP corriendo como módulo la configuración es idéntica, excepto que el archivo php.ini
se encuentra en otra ruta:
/etc/php5/apache2/php.ini
Referencias
Increase file upload size limit in PHP-Nginx