php 图片上传 500 Internal Server Error 错误

写php简单上传图片时,发现200k的图片上传时报Internal Server Error错误,检查了 upload_max_filesize,及其他post_max_size、max_input_time、memory_limit、 max_execution_time配置项均没有问题,后检查错误日 志:mod_fcgid: HTTP request length 138296 (so far) exceeds MaxRequestLen (131072), 发现问题所在。

原 来是fastcgi模式下的设置问题,看上去是因为HTTP刚才的请求长度(138296 )太长,大于现有的131072最大请求长度。看了fcgid 的配置文件后,发现并没有配置过MaxRequestLen的参数。看来这个131072的配置是默认的了。于是在fcgid的配置文件里加入这个配 置,15728640是15M,因为我的php.ini中设置的最大POST长度是15M,所以把它们设置长一样 的:MaxRequestLen 15728640

MaxRequestLen 15728640

AddHandler fcgid-script .fcgi .php

# Where to look for the php.ini file?

FcgidInitialEnv PHPRC        ”e:/wamp/bin/apache/apache2.3.14/bin”

# Set PHP_FCGI_MAX_REQUESTS to greater than or equal to FcgidMaxRequestsPerProcess

# to prevent php-cgi process from exiting before all requests completed

FcgidInitialEnv PHP_FCGI_MAX_REQUESTS      1000

# Maximum requests a process should handle before it is terminated

FcgidMaxRequestsPerProcess                 1000

# Maximum number of PHP processes

FcgidMaxProcesses                          15

# Number of seconds of idle time before a php-cgi process is terminated

FcgidIOTimeout                             120

FcgidIdleTimeout                           120

#Path to php-cgi

FcgidWrapper ”e:/wamp/bin/php/php5.4/php-cgi.exe” .php

# Define the MIME-Type for ”.php” files

AddType application/x-httpd-php .php

里面的“MaxRequestLen”就是fastcgi模式下上传文件也就是http接受的最大文件长度。

问题解决

注:

PHP默认的上传限定是最大2M,想上传超过此设定的文件,需要调整PHP、apache等的一些参数。下面,我们简要介绍一下PHP文件上传涉及到的一些参数:

  • file_uploads

    :是否允许通过HTTP上传文件的开关,默认为ON即是开。

  • upload_tmp_dir

    :upload_tmp_dir用来说明PHP上传的文件放置的临时目录,要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限,如果未指定则PHP使用系统默认值。

  • upload_max_filesize

    :允许上传文件大小的最大值,默认为2M。

  • post_max_size

    :控制在采用POST方法进行一次表单提交中PHP所能够接收的最大数据量。如果希望使用PHP文件上传功能,则需要将此值改为比upload_max_filesize要大。

  • max_input_time

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

  • memory_limit

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

  • max_execution_time

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

对于linux主机,可能在/etc/httpd/conf.d/access.conf/下面里面还有php.conf 文件,这个文件可能会解决一些系统的文件大小限制问题。

时间: 2024-12-17 18:20:08

php 图片上传 500 Internal Server Error 错误的相关文章

安装Destoon系统出现500 Internal Server Error错误的原因

当我们初次安装Destoon B2B网站管理系统出现"500 Internal Server Error"错误,其原因有一下几点: 解决办法一.删除根目录下.htaccess文件,如果无效,请尝试方法二: 解决办法二.对于Liunx/Unix服务器,如果不支持0777属性,可修改 根目录config.inc.php $CFG['file_mod'] = 0777; 为 $CFG['file_mod'] = 0755 ; 然后,FTP修改已经被系统自动修改为0777属性的目录和文件为07

php 出现 500 Internal Server Error错误问题解决

set_time_limit(0); //设置超时时间 chmod 777 filename //设置文件权限 问题根本不在这,读取数据太多,数组是很站内存的. 内存设置大些就ok了 ini_set('memory_limit', '500M'); echo memory_get_usage(); 查看占有内存.

yii2 使用ajax 验证, 报 500 Internal Server Error 错误

报错截图: 错误原因: 转换json格式写的有误 改好了就OK了

在使用pydelicious时出现HTTP Error 500: Internal Server Error的错误的解决方法:

问题:在学习<集体智慧编程>的过程中,第二章中如果你遇到了pydelicious.PyDeliciousException: HTTP Error 500: Internal Server Error这样的错误具体的 解决方法我是在stack overflow上找到的,原文链接分为两个部分 http://stackoverflow.com/questions/29543799/pydelicious-get-popularprogramming- doesnt-return-any-valid

[nginx]nginx的一个奇葩问题 500 Internal Server Error phpstudy2018

[nginx]nginx的一个奇葩问题 500 Internal Server Error 解决方案 nginx 一直报500 Internal Server Error 错误,配置是通过phpstudy2018站点域名管理生成的. 默认是  root   "D:\php\phpstudy\PHPTutorial\WWW\foxphp"; 修改成这样就好了 root   "D:\\php\\phpstudy\\PHPTutorial\\WWW\\foxphp"; 查

redmine迁移之后,文件上传的时候报Internal Server Error错误

redmine版本升级的时候,我们需要做数据库的迁移和附件文档的迁移,当完成所有工作之后,本以为万事大吉,可是在上传附件的时候发现报Internal Server Error错误,无法完成上传工作. 如下图所示: 问题分析:打开redmine之后,查看上传附件files文件夹的读写权限,发现是权限不足导致的. 解决方案:赋予其权限即可,命令为chmod -R a+w /files ,执行即可. 执行后验证权限如下: 重新访问网站测试是否可以上传,效果如下: 完美解决!希望大家遇到问题,分析问题,

python urllib2导出elasticsearch数据时 返回 &quot;urllib2.HTTPError: HTTP Error 500: Internal Server Error&quot;

0.业务场景 将ES中某个index的某个字段的所有数据,导出到文件中 1.ES数据导出方法简述 ES数据导出方法,我主要找到了以下几个方面,欢迎大家补充: ES官方API:snapshot and restore module The snapshot and restore module allows to create snapshots of individual indices or an entire cluster into a remote repository like sha

docker镜像下载出现:received unexpected HTTP status: 500 Internal Server Error

1.镜像下载总是出现报错:received unexpected HTTP status: 500 Internal Server Error 2.尝试多种方法: ①阿里云docke加速器:注册之后,配置好重新下载依然出现这种情况: ②尝试加上版本号: 原先我是直接复制https://hub.docker.com/r/library/上的: 之后改成这样: docker pull tomcat:9.0.30 直接去掉后面只留版本号,这样马上就下载好了 原文地址:https://www.cnblo

HTTP Status 500 ? Internal Server Error

getWriter()和getOutputStream()不能同时调用 HTTP Status 500 ? Internal Server Error Type Exception Report Message getWriter() has already been called for this response Description The server encountered an unexpected condition that prevented it from fulfilli