Нижняя линия:
Мне нужно беспокоиться о настройке post_max_filesize
→ memory_limit
?
Подробнее:
Этот ответ предполагает, что загруженные файлы не должны вписываться в phps memory_limit. php docs показывают, что весь пост должен соответствовать пределу памяти phps.
Я нахожу, что документы удивительны, и я надеюсь, что кто-то сможет это сделать. Например, возьмите следующие конфигурации 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
В этих конфигурациях Id ожидает, что сможет:
- загружать файлы 10x100mb на сервер A,
- и 100x10mb файлы на сервер B.
- Работа с любыми один из 10 файлов, загруженных на сервер A, является проблемой (100Ms файла в сумке 50M...).
- Работа с любыми 1 из 100 файлов, загруженных на сервер B, в порядке (10 и 50).
Этот опыт заставил бы меня сказать, что "как правило, 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 debian 6).