Я получаю эту ошибку, когда пользователи загружают изображения на моем сайте.
error msg is "PHP Fatal error: Out of memory (выделено 80740352) (попытался выделить 12352 байта) в / home ……." Как исправить это с помощью php.ini?
Вот мои текущие настройки php.ini для загрузки
upload_max_filesize = 2000M ; post_max_size = 2000M max_file_uploads = 8
Любые идеи, что еще мне нужно добавить, чтобы решить эту ошибку?
Оптимальное значение 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 на ручке, когда вы закончите работу с изображением.
set_time_limit(0); ini_set('memory_limit', '20000M');
В начало вашего скрипта. Измените 20000M соответственно.
Увеличьте свой лимит памяти от php.ini
memory_limit = ...
Загруженные файлы сохраняются в памяти, поэтому вы также должны увеличить объем памяти при наборе размера некоторого размера ожидаемого файла.
momory_limit = 2000M // better 2200M or above, just in case.