修改 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 上传文件大小限制的主要内容,如果未能解决你的问题,请参考以下文章

php修改上传文件大小限制

nginx-LNMP框架下修改上传文件大小限制

nginx-LNMP框架下修改上传文件大小限制

怎么修改php上传文件文件大小限制

如何设置php上传文件大小限制

怎么修改php上传文件文件大小限制第一次