php 上传大文件 500错误 ,本人已被折磨进精神病院

tfc 发布于 2014/06/12 18:05
阅读 3K+
收藏 5

今天配置了一个服务器用 Centos系统,配置完后发现上传大文件(1MB)500错误

我实在无奈了,刨地了 求大神帮忙解决

1 php.ini 已经设置 配置如下

max_execution_time 0 0
max_file_uploads 20 20
max_input_nesting_level 64 64
max_input_time 6000 6000
max_input_vars 1000 1000
memory_limit 128M 128M
open_basedir no value no value
output_buffering 4096 4096
output_handler no value no value
post_max_size 8M 8M

  

2 php-fpm 设置

3 nginx 设置

4我又吧php-cgi设置了 httpd.config

5 php 头部设置

以下是问题补充:

@tfc:php 头位置已经设置 set_time_limit(0); 文件权限 已经是777 (2014/06/12 18:12)
加载中
0
tfc
tfc
问题终于找到了 是nginx 用的权限的问题,把nginx.com 的user改成root就可以了
tfc
tfc
jquery ajax ,需要设置超时时间 $.ajax({ timeout : 1000, //超时时间设置,单位毫秒 设置连接超时的地方真的是太多了。晕菜了
mark35
mark35
回复 @tfc : 上传文件是php-fpm处理的,应该和nginx没啥关系。你看看php临时目录(一般是/tmp)的属主是哪个。可以把nginx的属组加入到php-fpm的属组中 ,usermod -G 命令
tfc
tfc
回复 @mark35 : 那怎么解决啊,用登陆账号就会出现上传文件失败
mark35
mark35
不要用root启动,不安全
1
那些年我们一起
那些年我们一起
<?php  
//HTTP上传文件的开关,默认为ON即是开  
ini_set('file_uploads','ON');
//通过POST、GET以及PUT方式接收数据时间进行限制为90秒 默认值:60  
ini_set('max_input_time','90');
//脚本执行时间就由默认的30秒变为180秒  
ini_set('max_execution_time', '180');
//Post变量由2M修改为8M,此值改为比upload_max_filesize要大  
ini_set('post_max_size', '12M');
//上传文件修改也为8M,和上面这个有点关系,大小不等的关系。
ini_set('upload_max_filesize','10M');  
//正在运行的脚本大量使用系统可用内存,上传图片给多点,最好比post_max_size大1.5倍  
ini_set('memory_limit','20M');
?>



eechen
eechen
如果用的是php-fpm,对比php.ini里的max_execution_time,php-fpm.conf里还要注意request_terminate_timeout这个配置。
0
logbird
logbird

500具体错误是什么,如果是超时的话

set_time_limit(0);

改一下脚本超时时间。

logbird
logbird
@tfc 你查一下你的log 看一下 具体是什么错误
tfc
tfc
已经设置了
0
傲罗
傲罗
貌似是程序错误啊,查看下错误日志
tfc
tfc
不是啊 小文件上传就可以
0
leo108
leo108
看错误日志,php-error里面是啥
0
狂飙的小蜗牛
狂飙的小蜗牛
先确定500是Nginx还是PHP返回的。。。。
tfc
tfc
怎么判断?
0
好为
好为
nginx.conf
client_max_body_size 64M;

php.ini
post_max_size = 64M
upload_max_filesize = 64M

upload.php
set_time_limit(0);




0
金拱门
金拱门
哈哈,楼主逗死了。进精神病院
0
huihuiyule
huihuiyule
学会 看日志啊· ·
0
tfc
tfc

我的程序还发现一个超时的问题。上传文件30秒就错误。结果不是服务的问题。

由jquery ajax 造成的 ,需要设置超时时间

$.ajax({ timeout : 1000, //超时时间设置,单位毫秒 

设置连接超时的地方真的是太多了。晕菜了

返回顶部
顶部