Для своего веб-сервера я использую IIS8 на Windows Server 2012 с ASP.NET, PHP7 + и FastCGI.
Моя проблема: когда я пытаюсь отправить формуляр (HTML to PHP) со строкой значения, в этом случае более 20 000 символов, сервер возвращает 500 Server Error ИЛИ ЖЕ он вообще не распознает почтовый запрос.
Мой код 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>
Спасибо за любую поддержку.
В терминале типа:
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, я не получаю ошибки.
В моем случае жесткий диск был заполнен. Так что нет места даже для записи временных данных. После удаления некоторых файлов все снова делало POST.