欢迎来到Java学习网!
设为首页 | 加入收藏
当前位置: 首页 > 编程开发 > PHP教程 >
设置nginx的client_max_body_size解决PHP上传大文件


通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题:
用nginx来做webserver的时,上传大文件时需要特别注意client_max_body_size这个参数,否则上传大文件会报Server IO Error错误,会中断在nginx的请求中,在php中是无法记录到访问的。


Java学习网整理:一般上传大文件流程:

首先修改php.ini文件:

file_uploads = on
是否允许通过HTTP上传文件的开关。默认为ON即是开

upload_tmp_dir
文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹

upload_max_filesize = 8m
允许上传文件大小的最大值。默认为2M

post_max_size = 8m
指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为2M


备注说明:

一般来说,设置好上述四个参数后,在网络正常的情况下,上传<=8M的文件是不成问题的
但如果要上传>8M的大文件的话,只设置上述四项还不一定能行的通。

除非你的网络真有100M/S的上传高速,否则你还得继续设置下面的参数。

max_execution_time = 1800 每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 1800 每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 512m 每个PHP页面所吃掉的最大内存,默认8M

但是还是不行,因为的webserver用的是nginx, google了一下,发现在nginx的conf中添加了一个参数:

默认是1M,需要增大的话,在nginx.conf中增加一句
client_max_body_size 80m;
80m表示最大上传80M,需要多大设置多大,另外上面对应的upload_max_filesize、post_max_size也根据需要设置相应的大小

重启nginx即可解决PHP大文件上传问题
    相关教程
    推荐内容