修改 apache 上传文件大小限制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改 apache 上传文件大小限制相关的知识,希望对你有一定的参考价值。
参考技术A 修改 apache 上传文件大小限制
2013-06-06 14:58:11| 分类: apache |举报|字号 订阅
第一步: Apache环境中的档案上传大小控制
修改位于Apahce目录下的httpd.conf
添加下面内容
LimitRequestBody 10485760
即10M=10 1024 1024,有的文章中提到应改为 600000000
重新启动apache,就可以在设置里看到你要的大小
Windows 环境下的修改方法 ================================================================
第二步:修改在php5下POST文件大小的限制
1.编修php.ini
找到:max_execution_time = 30 ,这个是每个脚本运行的最长时间,单位秒,修改为:
max_execution_time = 150
找到:max_input_time = 60,这是每个脚本可以消耗的时间,单位也是秒,修改为:
max_input_time = 300
找到:memory_limit = 128M,这个是脚本运行最大消耗的内存,根据你的需求更改数值,这里修改为:
memory_limit = 256M
找到:post_max_size = 8M,表单提交最大数据为 8M,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的。限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等…这里修改为:
post_max_size = 20M
找到:upload_max_filesize = 2M ,上载文件的最大许可大小 ,修改为:
upload_max_filesize = 10M
Linux 环境下的修改方法 ================================================================
修改etc/php.ini
找到 File Uploadsh区域修改以下几个参数: file_uploads = on ;是否允许通过HTTP上传文件的开关。
默认为ON即是开 upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹(moodle可以不改)
upload_max_filesize = 8m ;允许上传文件大小的最大值.
找到 Data Handling区域,修改 post_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。
默认为8M
设上述四个参数后,上传小于8M的文件一般不成问题。但如果上传大于8M的文件,只还得设置以下参数:
在Resource Limits 区域: max_execution_time = 600 ;
每个PHP页面运行的最大时间值(秒),默认30秒 max_input_time = 600 ;
每个PHP页面接收数据所需的最大时间,默认60秒 memory_limit = 8m ;
每个PHP页面所吃掉的最大内存,默认8M
nginx-LNMP框架下修改上传文件大小限制
php架构比较常用的LNMP框架下,此处就不详细介绍LNMP框架了,简单的介绍一个上传文件大小的限制问题。
在nginx配置和php.ini配置中一般会限制上传文件的大小,修改上传文件的大小,就需要修改这两个地方的大小限制。
- 1、修改nginx上传文件大小的配置
(1)修改全局上传文件大小限制
修改nginx.conf中的配置,client_max_body_size为对应上传文件限制的大小,还需要注意的一个配置参数是client_body_buffer_size,这是为客户端开辟的内存缓冲区大小,如果上传文件的大小大于client_body_buffer_size的大小,则会写到对应的本地磁盘空间中,写文件的路径由client_body_temp_path决定。
-
client_max_body_size 4m;
-
client_body_buffer_size 513k;
- client_body_temp_path /home/test/webserver/cache/client_body
(2)修改部分接口上传文件大小限制
如果只是需要修改部分接口上传文件大小的限制,则只需要在对应接口的location中添加对应的参数。
location = /model/controller/uploadfile { root /home/test/odp_test/webroot; index index.php; fastcgi_pass $php_upstream; fastcgi_index index.php; include fastcgi.conf; client_max_body_size 20m; client_body_buffer_size 20m; rewrite ^/ui(/[^\\?]*)?((\\?.*)?)$ /ui/index.php$1$2 break; }
- 修改php.ini配置
首先确认file_uploads = on ;[是否允许通过HTTP上传文件的开关,默认为ON即是开]
upload_max_filesize = 64m ;即允许上传文件大小的最大值。默认为2M
post_max_size = 64m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M.
一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。 但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。进一步配置以下的参数
max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 128m ;每个PHP页面所吃掉的最大内存,默认8M
把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了
max_execution_time = 600
max_input_time = 600
memory_limit = 128m
file_uploads = on
upload_max_filesize = 64m
post_max_size = 64m
max_file_uploads = 20(一次最多上传的文件数,用于多文件同时上传时)
以上是关于修改 apache 上传文件大小限制的主要内容,如果未能解决你的问题,请参考以下文章