nginx php-fpm的php.ini设置最大上传大小不生效

问题

虽然这种问题网上已经有很多人提出过,但我还是弄不明白。服务器为ubuntu,安装了nginx。
使用phpinfo()发现使用的配置文件是/etc/php/7.0/fpm/php.ini。
设置了如下属性:

upload_max_filesize = 256M
post_max_size = 256M

重启了nginx和php7.0-fpm进程,但是最大上传大小没有改变。
我使用的是wordpress,甚至我还安装了插件来提高最大上传大小,不过仍然没有用。
我也尝试在.htaccess文件增加了如下配置,也一样没有效果:

php_value post_max_size 256M
php_value uploads_max_filesize 256M

最佳答案

nginx默认的上传大小限制为1MB。要更改这个值的话需要设置client_max_body_size变量。可以在nginx.conf http区块设置:

http {
    #...
        client_max_body_size 100m;
        client_body_timeout 120s; # Default is 60, May need to be increased for very large uploads
    #...
}

如果你想上传一个非常大的文件,并且上传时间超过了60秒,这时候也需要提高client_body_timeout变量的值。
更新nginx配置文件后,不要忘记重启nginx。
需要重启nginx和php来重载配置。可以使用如下命令完成:

sudo service nginx restart
sudo service php7.0-fpm restart

注意:如果nginx上没有配置多个站点,可以直接在server区块加上:

server {
    client_max_body_size 8M;
}
标签:PHPNginx 发布于:2019-11-13 23:22:04