PHP устанавливает ограничение на объем памяти, который разрешено использовать PHP-скриптам, чтобы скрипт, занимающий много памяти, не вывел систему из строя.
При достижении лимита PHP завершит работу и выдаст следующую ошибку:
1 | PHP Fatal error: Allowed memory size of xxxx bytes exhausted (tried to allocate yyyy) in script.php |
Вы можете увеличить лимит памяти, если этого требуют ваши PHP-скрипты, чтобы избежать ошибки. Некоторые методы увеличения лимита памяти в PHP - это настройка файла php.ini или .htaccess и использование функции ini_set().
Увеличение лимита памяти PHP через файл (php.ini)
Этот метод будет применяться ко всем PHP-скриптам, запущенным в системе. Это хороший метод, если вы не размещаете несколько систем на одном хосте.
Откройте файл конфигурации PHP с помощью выбранного вами текстового редактора.
1 | sudo nano /etc/php/7.2/apache2/php.ini |
Найдите в конфигурационном файле директиву memory_limit.
1 2 3 | ; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit memory_limit = 128MB |
Установите значение лимита памяти с соответствующими единицами измерения.
1 | memory_limit = 512MB |
Перезапустите веб-сервер, чтобы изменения вступили в силу.
Увеличение лимита памяти PHP с помощью .htaccess
Чтобы настройка действовала только для определенной папки (или проекта), вы можете использовать файл .htaccess. Для этого найдите (или создайте) файл .htaccess в папке PHP scripts и добавьте в него следующую строку;
1 | php_value memory_limit 512MB |
Увеличение лимита памяти PHP с помощью функции ini_set()
Это, вероятно, лучший метод, так как настройка применяется только к конкретному скрипту и не позволит другим плохо написанным скриптам потреблять и тратить память системы.
Для этого добавьте следующую строку в ваш PHP-скрипт;
1 | ini_set('memory_limit', '512MB'); |