linux+nginx+mysql+php系统修改文件上传大小限制

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

linux+nginx+mysql+php系统修改文件上传大小限制

    对于LNMP框架的一些网站,上传文件大小会受到多个方面的限制,一个是nginx本身的限制,限制了客户端上传文件的大小,会报错“413 Request Entity Too Large”;一个是php.ini文件中默认了多个地方的设置。

1.  在php.ini中,做如下修改:
① file_uploads = On
默认允许HTTP文件上传,此选项必须设置为On。
② upload_tmp_dir =
默认为空
③ upload_max_filesize = 2M
默认upload_max_filesize = 2M,即文件上传的大小为2M,如果你想上传超过8M的文件,比如20M,你必须设定upload_max_filesize = 20M。

④max_file_uploads = 20

个参数是php5.2.12及更新的版本中增加的一个参数,该参数是设置每次最大上传文件数量(Maximum number of files that can be uploaded via a single request),超出该数量的文件将被丢弃。所以设置max_file_uploads的值为你可能用到的最大文件数就可以成功解决这个问题了。

文件上传限制最大默认设为20,所以一次上传最大就是20个文档,所以超出20个就会出错了。

post_max_size = 8M

修改php.ini配置文件中的post_max_size选项,其代表允许POST的数据最大字节长度,默认为8M。如果POST数据超出限制,那么$_POST和$_FILES将会为空。要上传大文件,你必须设定该选项值大于 upload_max_filesize指令的值,一般设定upload_max_filesize和post_max_size值相等。另外如果启用了内存限制,那么该值应当小于memory_limit选项的值。
 max_execution_time
每个PHP页面运行的最大时间值(秒),默认是30秒,改为max_execution_time = 0,0表示没有限制。在上传大文件时,如果网速很慢,当超过一定的时间,会报脚本执行超过30秒的错误,这是因为在php.ini配置文件中 max_execution_time配置参数的限制原因,其表示每个脚本最大允许执行时间(秒),0 表示没有限制。你可以适当调整max_execution_time的值,不推荐设定为0。

⑦max_input_time = 1000     

每个PHP页面接收数据所需的最大时间,默认60秒,这也是每个脚本可以消耗的时间,单位是秒。

⑧memory_limit = 128M

每个PHP页面所吃掉的最大内存,默认8M,也就是脚本运行最大消耗的内存,根据你的需求更改数值。

2. 重新加载PHP配置文件

lnmp的PHP是fast-cgi模式,是单独的服务,所以要单独重启php。
/usr/local/php/sbin/php-fpm reload

3.在 nginx.conf中,做如下修改:         

client_max_body_size 35m;   

表示允许客户端请求的最大单文件字节数。在nginx.conf文件中找到client_max_body_size,如果没有就新增这条,后面的120m就是指定最大支持120M大小的文件。位置可以添加于http模块或者标示是php页面的location模块都可以。

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ .php$ {
            root           /home/www/htdocs;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /home/www/htdocs$fastcgi_script_name;
            
include     fastcgi_params;
 
            client_max_body_size 35m;        #客户端上传文件大小设为35M
            client_body_temp_path /home/www/nginx_temp;        #设置临时目录
        }

4. 重新加载Nginx配置文件

/usr/local/nginx/sbin/nginx -s reload



参考:

           http://www.111cn.net/sys/linux/61094.htm

           http://blog.sina.com.cn/s/blog_54d63a8b01017q9x.html

      本文转自MQ_douer 51CTO博客,原文链接:http://blog.51cto.com/douer/1917737,如需转载请自行联系原作者






相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
关系型数据库 MySQL Linux
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
17 0
|
6天前
|
存储 关系型数据库 MySQL
Linux | MySQL基础
Linux | MySQL基础
|
7天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
20 0
|
8天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
14天前
|
NoSQL Linux PHP
php添加redis扩展 linux和windos图文详解 l
php添加redis扩展 linux和windos图文详解 l
3 0
|
25天前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
22 0
|
1月前
|
关系型数据库 MySQL Linux
【Linux】在Linux上安装MySQL数据库的步骤
【Linux】在Linux上安装MySQL数据库的步骤
124 0
|
1月前
|
关系型数据库 MySQL Linux
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
181 0
|
8月前
|
应用服务中间件 Linux nginx
Linux查看nginx安装位置
查看nginx安装位置
2308 0
|
8月前
|
安全 Ubuntu 算法
基于Linux的Nginx安装
基于Linux的Nginx安装
125 0