Оптимальное значение memory_limit
зависит от того, что вы делаете с загруженными файлами. Вы читаете файлы в память, используя file_get_contents или библиотеку GD? В этом случае увеличьте memory_limit, по крайней мере, до той же, что и upload_max_filesize, предпочтительно больше.
Если вы используете GD, имейте в виду, что GD хранит все изображения в памяти без сжатия. Это означает, что он занимает память в диапазоне width * height * bit-depth
, например, 1024*768*32 = 25 165 824 bits = 3 MB
для снимка экрана или целых 55 МБ для 14-мегапиксельного изображения.
Некоторым операциям может потребоваться создать копию изображения, поэтому рассмотрите возможность установки memory_limit в два раза больше, чем нужно, чтобы сохранить изображение в памяти. Также убедитесь, что не загружаете все изображения в память сразу, если это не нужно. Вы можете освободить память, используемую GD, вызвав imagedestroy на дескрипторе, когда закончите работу с изображением.