最常用的方法是通过设置nginx的client_max_body_size解决nginx+php上传大文件
主要是设置上传文件大小和php脚本运行时长即可
用nginx来做webserver的时上传大文件时需要特别注意client_max_body_size这个参数否则会中断在nginx的请求中在php中是无法记录到访问的
首先修改phpini文件
参数 设置 说明
file_uploads on 是否允许通过HTTP上传文件的开关默认为ON即是开
upload_tmp_dir – 文件上传至服务器上存储临时文件的地方如果没指定就会用系统默认的临时文件夹
upload_max_filesize m 望文生意即允许上传文件大小的最大值默认为M
post_max_size m 指通过表单POST给PHP的所能接收的最大值包括表单里的所有值默认为M
说明
一般来说设置好上述四个参数后在网络正常的情况下上传<=M的文件是不成问题的
但如果要上传>M的大文件的话只设置上述四项还不一定能行的通除非你的网络真有M/S的上传高速否则你还得继续设置下面的参数
max_execution_time 每个PHP页面运行的最大时间值(秒)默认秒
max_input_time 每个PHP页面接收数据所需的最大时间默认秒
memory_limit m 每个PHP页面所吃掉的最大内存默认M
但是还是不行因为的webserver用的是nginx google了一下发现在nginx的conf中添加了一个参数
默认是M需要增大的话
在nginxconf中增加一句
client_max_body_size m;
重启即可
m表示最大上传M需要多大设置多大
文本总结
默认情况下nginx允许客户端请求的最大的单个文件字节数为M就是说如果上传的文件超过M就上传不了可以人为修改这个参数例如把下面代码放在http段这样就可以上传M以下的文件
client_max_body_size m;
另外限制上传文件大小配置在phpini也有配置默认是
post_max_size = M
upload_max_filesize = M