解决nginx+php-fpm无法上传文件问题

   解决办法

  location ~ .php$ {

  root /var/www/html/public;

  client_max_body_size 50M;

  client_body_temp_path /tmp;

  fastcgi_pass 127.0.0.1:9000;

  fastcgi_index index.php;

  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

  include fastcgi_params;

  }

  附:不要找了,网上说的很多我都试过!一直提示Firebug 达到了 Post 请求大小限制

  修改PHP.ini中post_max_size upload_max_filesize max_execution_time max_input_time

  打开php.ini文件,修改完毕后重启服务器。测试下上传文件。。。。(嘻嘻,是不是传上了很大的文件?)

  1、文件上传时存放文件的临时目录。必须是 PHP 进程所有者用户可写的目录。如果未指定则 PHP 使用系统默认值php.ini文件中upload_tmp_dir用来说明PHP上传的文件放置的临时目录。

  要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限

  2、max_execution_time

  变量max_execution_time设置了在强制终止脚本前PHP等待脚本执行完毕的时间,此时间以秒计算。当脚本进入了一个无限循环状态 时此变量非常有用。然而,当存在一个需要很长时间完成的合法活动时(例如上传大型文件),这项功能也会导致操作失败。在这样的情况下必须考虑将此变量值增 加,以避免PHP在脚本正在执行某些重要过程的时候将脚本关闭。

  修改为:max_execution_time =800

  3、file_uploads = On(原来问开就不用设置了)

  4、upload_max_filesize =2M修改为800M

  5、同表单提交相关的一个变量是post_max_size,它将控制在采用POST方法进行一次表单提交中PHP所能够接收的最大数据量。似乎不大 可能需要将默认的8 MB改得更大。相反,应当适当将其降到更为实际的数值。但如果希望使用PHP文件上传功能,则需要将此值改为比upload_max_filesize还 要大。

  也修改为:post_max_size =900M

  6、max_input_time

  此变量可以以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制。如果应用程序所运行环境处在低速链路上,则需要增加此值以适应接收数据所需的更多时间.

  修改为:max_input_time =900

  7、memory_limit =10M

  为了避免正在运行的脚本大量使用系统可用内存,PHP允许定义内存使用限额。通过memory_limit变量来指定单个脚本程序可以使用的最大内存容量

  变量memory_limit的值(不要超出服务器内寸最大值)

  修改为:memory_limit =128M

时间: 2024-10-03 21:25:02

解决nginx+php-fpm无法上传文件问题的相关文章

简单解决新浪SAE无法上传文件的问题

  这篇文章主要介绍了简单解决新浪SAE无法上传文件的问题,不知道到底是新浪的BUG还是我个人的问题,分享给大家吧. 今天给网站后台增加一个上传文件的功能,结果出现BUG,提示未选择上传文件. 以下是代码部分. ? 1 2 3 4 5 6 7 8 9 10 <form method="post" action="attached.php?action=upload_post" enctype="multipart/form-data">

nginx中php+uploadify上传文件HTTP Error错误(不能超过1MB)

nginx的上传参数问题,需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中无法log到访问的. 修改了php.ini文件如下:参数 设置 说明 file_uploads on 是否允许通过HTTP上传文件的开关.默认为ON即是开 upload_tmp_dir – 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹 upload_max_filesize 8m 望文生意,即允许上传文件大小的最大值.默认为2M post

简单解决新浪SAE无法上传文件的问题_php实例

今天给网站后台增加一个上传文件的功能,结果出现BUG,提示未选择上传文件. 以下是代码部分. <form method="post" action="attached.php?action=upload_post" enctype="multipart/form-data"> <table width="100%" cellspacing="0" cellpadding="0&q

Nginx走HttpProxy连JBoss在上传文件时的一个bug,及其解决

问题描述: Nginx作为前端HttpServer 使用HttpProxy与JBoss进行连接在上传比较大的文件时,JBoss已经返回结果,但是Nginx不立即将结果返回给浏览器,直到Nginx的HttpProxy与JBoss因为超时而断开后才返回结果给浏览器 这样导致的结果就是用户觉得上传文件需要很长时间. 问题原因分析: Nginx HttpProxy转发的请求是Http 1.0的,就是说是不支持Keep-Alive的,那么也就是说只有当JBoss主动断开与HttpProxy的连接,或是超时

网站空间无法使用swfupload上传文件解决办法

使用swfupload上传$_FILES变量一直为空 今天使用了万网的M3型虚拟主机,linux系统,apache服务器.在本地以及其他服务器测试完好的程序上传到万网M3主机之后一直提示无法上传文件,经过调试发现是上传文件需要的 $_FILES变量一直为空了,所以无法上传图片. 解决办法: 经过在M3控制面板不断寻找,发现了php.ini设置页面: 默认的上传文件开关控制是关闭的,选择打开->提交->等待5分钟.上传成功... 顺便提一下,这个M3主机竟然还不支持pathinfo. 其他swf

三个思路解决laravel上传文件报错:413 Request Entity Too Large问题

最近一个项目当中,要求上传图片,并且限制图片大小,虽然在laravel当中已经添加了相关的表单验证来阻止文件过大的上传,然而当提交表单时,还没轮到laravel处理,nginx就先报错了.当你仔细看报错页面时,你会发现有nginx版本信息,经过分析,这报错是因为nginx的默认上传文件大小配置client_max_body_size只有2MB, 基于nginx验证比laravel验证要早,想要友好报错而不是直接显示413 Request Entity Too Large,那么就有三个思路去解决.

Win 2003上传文件不能超过200k解决方法

解决|上传 问题:无法上传较大的文件"Request 对象 错误 'ASP 0104 : 80004005'"或者上传成功后,找不到文件名 更改Win 2003的IIS 6.0对asp的上传文件大小为200k限制,aspx的上传程序没有影响.在IIS6.0中,默认设置是特别严格和安全的,最大只能传送 204,800 个字节,这样可以最大限度地减少因以前太宽松的超时和限制而造成的攻击.IIS 6 出于安全考虑, 默认最大请求是200K(也即最大提交数据限额为200KByte,204800

ASP跨服务器上传文件完美解决

服务器|解决|上传 如果你有两个空间,一个大而慢,另外一个小而快,或者其中一个不支持FSO,那么跨服务器上传文件这个问题就摆在你面前了,下面就是我在解决ylog.net里面的跨服务器上传文件的日记,这个问题看似简单,里面的细节问题却是非常有趣 前提条件,空间都必须支持ASP,上传文件的服务器支持FSO,下面的叙述中,diygame.com为存上传文件的服务器,ylog.net为网站服务器,即显示用户界面的服务器... 实现功能,文件上传,上传后在网页的文本区域自动加上对于图片的UBB码,为了清楚

JSP SmartUpload上传文件乱码解决纪实+UploadBean上传解决方案

js|解决|上传 作者:fbysss声明:本文为fbysss原创,如需引用,请注明作者及引用地址关键字:smartupload,uploadbean,linux,中文乱码一.SmartUpload上传文件乱码解决纪实 恶心指数:五星 完成程度:80%(文件名问题未解决) 问题描述:在windows下开发的web应用,用到了smartupload上传文件,需求很简单,就是一个表单文件formdata.jsp,一个获取表单并上传的文件getdata.jsp,调试的时候,windows和linux系统