PHP - 大型POST请求服务器错误

时间:2016-03-31 13:12:00

标签: php post request webserver iis-8

对于我的Web服务器,我在带有ASP.NET,PHP7 +和FastCGI的Windows Server 2012上使用IIS8。

我的问题:当我尝试使用值字符串提交公式(HTML到PHP)时,如果长度超过20.000个字符,服务器将返回500服务器错误 OR 它不会完全承认发布请求。

我的HTML / PHP代码:

<?php if(isset($_POST['submit'])) { echo "Got it!"; } ?> 

<form action="" method="post">
<input type="text" value="String with 20000+ characters" name="value">
<input type="submit" name="submit">
</form>

单击“提交”,将出现服务器错误。在post请求中,这些行被插入PHP错误日志文件中:

[] PHP Warning:  Unknown: Unable to create temporary file, Check permissions in temporary files directory. in Unknown on line 0
[] PHP Warning:  Unknown: POST data can't be buffered; all data discarded in Unknown on line 0

我还编辑了可能与此相关的所有配置选项

的php.ini

post_max_size = 1024M
memory_limit = 512M
upload_max_filesize = 1024M

我服务器上的web.config

<system.web><httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
</system.web>

    <security>
<requestFiltering>
    <requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>

感谢您的支持。

2 个答案:

答案 0 :(得分:1)

在终端类型中:

chmod -R 777 /your/upload/folder

通过执行以下代码,您可以知道php上传文件的文件夹:

$tmp_dir = ini_get('upload_tmp_dir') ? ini_get('upload_tmp_dir') : sys_get_temp_dir();
die($tmp_dir);

在我的情况下,我得到/ var / ...所以当我获得777许可时,我没有错误。

答案 1 :(得分:1)

就我而言,硬盘已满。所以甚至没有空间来写临时数据。删除一些文件后,所有内容都再次进行了POST。