Итог :
Нужно ли мне беспокоиться о настройке post_max_filesize
>> memory_limit
?
Подробности :
Этот ответ предполагает, что загруженные файлы не должны соответствовать в пределах php memory_limit. php docs предполагают, что весь пост должен умещаться в пределах лимита памяти php.
Документы меня удивляют, и я надеюсь, что кто-нибудь сможет их уточнить. Например, возьмем следующие конфигурации php:
; config A
memory_limit = 50M
upload_max_filesize = 100M
post_max_filesize = 1000M
max_file_uploads = 10
и
; config B
memory_limit = 50M
upload_max_filesize = 10M
post_max_filesize = 1000M
max_file_uploads = 100
С этими конфигурациями я ожидаю, что смогу:
Я также ожидаю, что:
Экспериментируя с менее округлыми, но равнозначно связанными числами, я обнаружил, что эти ожидания верны.
Этот опыт заставил меня сказать, что «обычно memory_limit должен быть больше, чем upload_max_filesize
»; вместо этого php docs говорят:
вообще говоря, memory_limit должен быть больше, чем
post_max_size
.
Почему и что происходит, если это не так?
Когда мой php-код выполняется, я не вижу свидетельств того, что все отправленные файлы находятся в памяти. Мне кажется, что все, что у меня есть, это массив $ _FILES путей к файлам, находящимся исключительно на диске. Сохраняет ли php весь пост в памяти в какой-то момент до того, как я смогу исследовать окружающую среду? Нужно ли мне беспокоиться об установке post_max_filesize
>> memory_limit
?
В сторону:
Нарушение правил руководства не приводит к серьезной поломке сервера (w / php5. 3 apache2. 2 дебиан 6).