我已经在Windows开发工作站上解决了这个问题三天了。我已经研究了很多,并在Apache的httpd.conf和PHP的php.ini中改变了很多设置,并且没有取得任何明显的进展。问题是我能够上传高达100KB的图像文件,但是在100KB到300KB之间,我开始超时。我希望能够上传最大1MB的图片。
在它超时前的某个时刻我在PHP代码上放了一个断点,所有$ _POST变量都是空的。
总结:
这是代码:
<?php
if( $_SERVER["REQUEST_METHOD"] == "POST" )
{
if( $_FILES["fileToUpload"]["error"] == UPLOAD_ERR_OK )
{
echo "Yes";
}
}
?>
<!DOCTYPE html>
<html>
<body>
<form action="TestFileUpload.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload">
<br />
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
这是相关的httpd.conf
LimitRequestBody 20000000
这是相关的php.ini
max_execution_time = 1800
max_input_time = -1
post_max_size = 100M
upload_max_filesize = 100M
memory_limit = 1024M
这是Apache的access.log
127.0.0.1 - - [14/Jan/2016:11:01:39 -0200] "GET /TestFileUpload.php HTTP/1.1" 200 280
127.0.0.1 - - [14/Jan/2016:11:02:10 -0200] "POST /TestFileUpload.php HTTP/1.1" 408 221
这是Apache的error.log(我清除它并重新启动服务器以获得干净的输出)
[Thu Jan 14 10:57:00.709518 2016] [ssl:warn] [pid 4972:tid 448] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[Thu Jan 14 10:57:00.738518 2016] [mpm_winnt:notice] [pid 4972:tid 448] AH00455: Apache/2.4.6 (Win32) OpenSSL/1.0.1e PHP/5.5.5 configured -- resuming normal operations
[Thu Jan 14 10:57:00.739518 2016] [mpm_winnt:notice] [pid 4972:tid 448] AH00456: Apache Lounge VC11 Server built: Jul 15 2013 20:13:45
[Thu Jan 14 10:57:00.739518 2016] [core:notice] [pid 4972:tid 448] AH00094: Command line: 'C:\\Program Files\\Apache Software Foundation\\Apache24\\bin\\httpd.exe -d C:/Program Files/Apache Software Foundation/Apache24'
[Thu Jan 14 10:57:00.753518 2016] [mpm_winnt:notice] [pid 4972:tid 448] AH00418: Parent: Created child process 1952
[Thu Jan 14 10:57:02.548518 2016] [ssl:warn] [pid 1952:tid 396] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[Thu Jan 14 10:57:02.575518 2016] [mpm_winnt:notice] [pid 1952:tid 396] AH00354: Child: Starting 64 worker threads.
我没有在Apache中使用mod_security。
任何想法我还能尝试什么,任何配置?
答案 0 :(得分:0)
您是否查看了httpd配置文件的fcgid部分中的超时设置?
<IfModule mod_fcgid.c>
[settings]
</IfModule>
可能是FcgidBusyTimeout设置。默认值为100;并增加这可能会帮助你。尝试:
<IfModule mod_fcgid.c>
FcgidBusyTimeout 9999
</IfModule>