A-A+

Nginx-PHP上传文件大小设置

2014年08月25日 PHP技术文章 暂无评论 阅读 72 views 次

nginx是一个高性能的反向代理服务器,据说是俄罗斯的一个站点进行开发的,最近在研究 web 服务器时正好进行了研究,其实对于 nginx 并不是很感兴趣,而且基本上没有用到过,可今天看到网上却用的人不少,那么肯定会有它自己的诸多优点了。

粗略的看了一下,nginx的优点有如下,nginx 有点 unix 的问题,它就是主要在 unix 平台下进行编译运行的,当然也有 windows 移植版,只不过在国内的 win 平台下很少使用到过,而它最大的优点则是高性能的反向代理服务器,在站点高连接并发的情况下,甚至它的优势要高于 apache,它能够支持 50,000 个并发连接数的响应,可以很好的为站点进行底层服务,现在是不少虚拟主机常选的软件之一了。

上面大概说了一下 Nginx 了,那么它与 PHP 的结合会怎样呢,在Nginx-php 中的底层运行中,也是很稳定的,遇到的问题是 Nginx 与PHP 结合,默认的对上传的文件大小进行了限制。

Nginx的上传参数问题,需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中无法log到访问的,我们使用ngnix做web server的时候,nginx对上传文件的大小有限制,当超过大小的时候会报413错误。这个时候我们要修改nginx参数。

sudo vim /etc/nginx/nginx.conf 在http段里面添加:

例如:

location ~ \.php($|/) {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_split_path_info ^(.+\.php)(.*)$;
include fastcgi_params;
client_max_body_size 100m;
#client_body_temp_path /home/wwwinx_temp;
}

client_max_body_size 100m; 添加完成之后,保存退出。
nginx -s reload 即可。

修改了php.ini文件如下:

参数 设置 说明

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

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

3、upload_max_filesize 10m ,即允许上传文件大小的最大值。默认为2M

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

说明:一般地,设置好上述四个参数后,在网络正常的情况下,上传<=10M的文件是不成问题,但如果要上传>10M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得继续设置下面的参数。

5、max_execution_time 600 每个PHP页面运行的最大时间值(秒),默认30秒

6、max_input_time 600 每个PHP页面接收数据所需的最大时间,默认60秒

7、memory_limit 8m 每个PHP页面所吃掉的最大内存,默认8M

上面的字体部分是我在自己的服务器所更改的内容。

标签:

给我留言