Фатальная ошибка разрешенный размер памяти 268435456 байт исчерпан

Обновлено: 03.07.2024

Я пытаюсь добавить HWIOAuthBundle в свой проект, выполнив приведенную ниже команду.

Когда я пытаюсь запустить composer require, я получаю ошибку out of memory.

Я попытался установить memory_limit на 2G в моем файле php.ini, но это не сработало. Я нашел свой php.ini, запустив php -i | grep php.ini

22 ответа

У меня есть сценарий, который вызывает у меня головную боль на определенном сервере. Я продолжаю получать эту ошибку: Фатальная ошибка : допустимый размер памяти 67108864 байт исчерпан Даже несмотря на то, что я отредактировал php.ini до этого: max_execution_time = 300 ; Maximum execution time of.

Фатальная ошибка: допустимый размер памяти 67108864 байт исчерпан (пытался выделить 13965430 байта) PHPInfo показывает, что у меня есть memory_limit 128M, поэтому я не понимаю, почему ошибка говорит, что у меня есть только 64M. Возможно ли, чтобы phpinfo сообщал неверно? Или для PHP использовать.

Чтобы получить текущее значение memory_limit, выполните:

Попробуйте увеличить лимит в файле php.ini (например, /etc/php5/cli/php.ini для систем, подобных Debian):

Или вы можете увеличить лимит с помощью аргумента командной строки:

Чтобы загрузить php.ini файлов, попробуйте:

Еще одно быстрое решение:

В моем случае я пытался потребовать этот пакет, и я получал PHP Fatal error: Allowed memory size of .

Я нашел, что это легко запустить, как это, и вам не нужно обновлять файл PHP INI.

пример: COMPOSER_MEMORY_LIMIT=-1 composer require huddledigital/zendesk-laravel

Надеюсь, это кому-то поможет.

Еще одно решение из руководства :

Composer также соблюдает ограничение памяти, определенное переменной среды COMPOSER_MEMORY_LIMIT :

Или в моем случае

Edit: composer.bat и добавьте memory_limit=-1 в последнюю строку, как показано ниже.

Просто установите memory_limit , указав полный маршрут вашего файла composer.phar, и обновите его, в моем случае с помощью команды:

Когда я загружаю фотографию Размер файла: 375kb Ширина: 2000 Пикс. Высота: опору 3000px Я получаю ошибку ERROR Фатальная ошибка: допустимый размер памяти 67108864 байта исчерпан (пытался выделить 2157 байт). Почему это происходит, когда 67108864 = 64 МБ? Я использую общий сервер. Мой .htaccess.

Возможный Дубликат : Допустимый объем памяти 33554432 байт исчерпан (пытался выделить 43148176 байт) в php Привет, я пытаюсь запустить программу, но все время получаю эту ошибку; Фатальная ошибка: допустимый размер памяти 33554432 байт исчерпан (пытался выделить 12 байт) плз, помоги мне

Для этой ошибки в macOS Catalina и macOS Big Sur используйте эту строку:

php -d memory_limit=-1 /usr/local/bin/composer update --no-plugins

Я использовал эту строку для обновления Symfony 5. Эта команда также работала с laravel 7.

На всякий случай, если вы получите ошибку композитора с:

Не удалось открыть входной файл: composer

Для пропуска ограничения памяти и ошибки версии используйте следующий код:

Иногда проблема заключается в ограничении памяти композитора. В моем случае я попытался увеличить лимит памяти php, но все равно получил ошибку. Вы можете использовать COMPOSER_MEMORY_LIMIT=-1 , чтобы обойти это. Используйте его в качестве префикса:

В будущем вам придется повторить это снова.

Надеюсь, это поможет.

а как насчет windows?

я использую windows 10, и эта команда сработала для меня,

Вы можете использовать определенную версию php при запуске Composer

Если, как и я, по какой-то причине вы используете PHP 32 бита , даже если ваш компьютер 64 бита, это всегда будет ограничивать объем памяти, выделяемой Composer. Я решил свою проблему таким образом:

  • Установите 64-битную версию php где-нибудь на вашем компьютере (скажем, в C:/php64)
  • В composer (используя cygwin в моем случае) запустите:

COMPOSER_MEMORY_LIMIT=-1 C:/php64/php.exe ../composer.phar update

в windows на xampp я просто изменился:

затем перезагрузите Apache на xampp

Если дополнительные файлы .ini проанализированы: memory_limit должен быть изменен в

Как пишет Хосе Сейе, установите память на

Просто хочу поделиться своей ситуацией по этому вопросу.

  1. Попробовал установить ограничение памяти php.ini на -1. (все еще не работает).

По-видимому, у моих composer.json и composer.lock есть некоторые проблемы. Запустил $ composer validate, и результат был: "Файл блокировки не обновлен с последними изменениями в composer.json, рекомендуется запустить composer update ."

Поэтому я запустил обновление $ composer, и все зависимости разрешены. Имхо, когда у зависимостей есть некоторые проблемы, возможно, построение дерева не синхронизировано, отсюда и проблема нехватки памяти.

Надеюсь, это кому-нибудь поможет.

Чтобы переопределить это и устранить проблему на локальном компьютере, вы можете внести следующие изменения в конфигурационный файл php.ini .

  1. Чтобы найти файл конфигурации php.ini , вы можете использовать следующую команду: php --ini

После выполнения этой команды вы должны увидеть вывод следующего вида:

Файл, который мы хотим изменить, - это загруженная конфигурация .

Откройте и найдите memory_limit вы можете установить memory_limit = -1 , чтобы дать неограниченный объем памяти процессам PHP, или вы можете установить 512MB, 1G, 2G, 5G.

найдите и установите:

После сохранения файла вы можете проверить изменения PHP, выполнив эту команду, которая выведет текущие настройки памяти в вашем файле php.ini :

php -r " echo ini_get ('memory_limit'). PHP_EOL;"

NOTE: После сохранения новая память будет работать. Тебе больше ничего не нужно делать.

У меня есть несколько клиентских торговых точек (POS), которые периодически отправляют новые данные о продажах в одну централизованную базу данных, которая хранит данные в одной большой базе данных для создания отчетов. Клиент .

У меня есть несколько клиентских торговых точек (POS), которые периодически отправляют новые данные о продажах в одну централизованную базу данных, которая хранит данные в одной большой базе данных для создания отчетов.

Клиентский POS основан на PHPPOS, и я реализовал модуль, который использует стандартную библиотеку XML-RPC для отправки данных о продажах в службу. Серверная система построена на CodeIgniter и использует библиотеки XML-RPC и XML-RPCS для компонента веб-сервиса. Всякий раз, когда я отправляю много данных о продажах (всего 50 строк из таблицы продаж и отдельные строки из sales_items, относящиеся к каждому элементу в рамках продажи), я получаю следующую ошибку:

Что касается шагов, которые я предпринял, я попытался отключить всю обработку на стороне сервера и настроил его так, чтобы он возвращал стандартный ответ независимо от ввода. Однако я считаю, что проблема заключается в фактической отправке данных. Я даже попытался отключить максимальное время выполнения скрипта для PHP, но он все еще выдает ошибки.

Изменение memory_limit от ini_set('memory_limit', '-1'); является не правильное решение. Пожалуйста, не делай этого.

В вашем PHP-коде может быть утечка памяти, и вы говорите серверу просто использовать всю память, которую он хочет. Вы бы вообще не устранили проблему. Если вы будете следить за своим сервером, вы увидите, что теперь он, вероятно, использует большую часть оперативной памяти и даже переключается на диск.

  • 175 @Jeff, ты, наверное, прав в 95% случаев. Однако бывают случаи, когда вам действительно нужно больше памяти. Например, предположим, что ваше приложение загружает огромный объем данных в память для обработки (скажем, спецификация материалов с 15 тыс. Компонентов). Не всегда в коде есть ошибки, иногда вам просто нужно немного больше памяти (например, 256 МБ вместо 128 МБ). Однако я согласен с тем, что установка -1 - это ужасно плохо. Но регулировка предела памяти для разумных ситуаций во время выполнения вполне приемлема imho.
  • 25 @pyrite да, вы правы, что иногда процессу требуется больше памяти, но вам следует увеличить лимит памяти до некоторого логического количества, например 256 МБ, как вы сказали, или 512 МБ, почему бы и нет, НО не -1;)
  • 9 @jeff Полностью согласен, значение -1 может быть полезно только в среде разработки для тестирования.
  • 4 @Pyrite в тех случаях, которые вы указали для оставшихся 5%, читают данные по частям и используют воркер для их обработки вместо использования дополнительной памяти. Это решение также будет масштабироваться, в то время как ваше предложение не сработает, за исключением того, что вы продолжите заполнять все больше и больше памяти на своем сервере с течением времени, если объем данных будет расти.
  • 4 Чаще всего эта проблема в ORM, когда вы пытаетесь получить все данные, которые намного больше лимита памяти php. Например, когда вы пытаетесь создать ежемесячный отчет.

ini_set('memory_limit', '-1'); отменяет ограничение памяти PHP по умолчанию.

Правильный способ - отредактировать php.ini файл. редактировать memory_limit по вашему желанию.

Что касается вашего вопроса, 128M (лимит по умолчанию) был превышен, поэтому с вашим кодом что-то серьезно не так, так как он не должен занимать так много времени.

Если вы знаете, почему это занимает так много времени, и хотите, чтобы он установлен memory_limit = 512M или выше, и все должно быть хорошо.

  • 7 Честно говоря, если вы кешируете серьезные объемы данных, это правильный ответ. 128M недостаточно для некоторых скриптов. 512 Мбайт или 1024 Мбайт часто бывает достаточно, но вам придется решать в каждом конкретном случае.
  • 2 Да, но старайтесь избегать чрезмерного использования памяти, если количество пользователей будет больше
  • 2 memory_limit = -1; установить в php.ini
  • 2 @YumYumYum Это удаляет memory_limit, который вам нужен только в том случае, если вы контролируете использование памяти другим способом. ОС убьет процесс, если в какой-то момент он потребует большой объем памяти.
  • Итак, если вы запускаете скрипт, который использует много памяти, но вам нужно запустить его только один раз, можете ли вы просто увеличить лимит памяти для процесса во время выполнения, а затем снова снизить лимит памяти после разового скрипт запускается?

Выделение памяти для PHP может быть отрегулировано постоянно или временно.

Постоянно

Вы можете навсегда изменить распределение памяти PHP двумя способами.

Если у вас есть доступ к вашему php.ini файл, вы можете изменить значение для memory_limit по вашему желанию.

Если у вас нет доступа к php.ini файл (и ваш веб-хост позволяет это), вы можете переопределить выделение памяти через свой .htaccess файл. Добавить php_value memory_limit 128M (или каково ваше желаемое распределение).

Временный

  • 2 Спасибо, я не подумал проверить, установил ли кто-нибудь значение в .htaccess, которое переопределяет php.ini, и я не мог понять, почему +1

Очень легко получить утечку памяти в сценарии PHP, особенно если вы используете абстракцию, такую ​​как ORM. Попробуйте использовать Xdebug для профилирования вашего скрипта и выясните, куда ушла вся эта память.

  • 1 Пойду попробую Xdebug. Я никогда не использовал его раньше, поэтому мне придется его прочитать. Спасибо за ответ! Надеюсь, я скоро найду ответ на этот вопрос .
  • 34 Помните, что PHP использует подсчет ссылок для управления памятью. Поэтому, если у вас есть циклические ссылки или глобальные переменные, эти объекты не будут переработаны. Обычно это корень утечек памяти в PHP.
  • Xdebug показывает, что за мою утечку памяти ответственна библиотека CI Xmlrpc.php. Случайно, возникнут ли какие-либо проблемы с библиотеками XML-RPC CodeIgniter, о которых мне следует знать? Я попытался отключить всю обработку на стороне сервера, но у него все равно заканчивается память, если я скармливаю ему достаточно данных.
  • 1 Я не знаю / использую CI, поэтому не знаю. Но вам, вероятно, следует попытаться найти объект, который не освобождается после использования - скорее всего, из-за циклической ссылки. Это детективная работа.
  • 1 Это единственный ответ, который советует решить проблему. Другие ответы пробуждают память, чтобы перевязать симптом и игнорировать болезнь.

вверху файла. Теперь все работает нормально. Я не знаю, есть ли в PHP утечка памяти. Это не моя работа, и меня это не волнует. Мне просто нужно выполнить свою работу, и это сработало.

Программа очень проста:

Фатальная ошибка указывает на строку 3, пока я не увеличил предел памяти, что устранило ошибку.

  • 10 ты имеешь в виду ini_set('memory_limit', '8192M'); ?
  • 2 Какая роскошь - успеть пойти и оптимизировать скрипт для чего-то подобного. Или исследуйте, сравнивайте и изучайте инструменты ETL или что-то подобное. В реальном мире мы резко увеличиваем объем памяти, делаем то же самое и идем дальше.

Я продолжал получать эту ошибку, даже с memory_limit установить в php.ini , и значение отображается правильно с phpinfo() .

Изменив это с этого:

Это устранило проблему в PHP 7.

Когда вы видите указанную выше ошибку, особенно если (tried to allocate __ bytes) - низкое значение, которое может быть индикатором бесконечного цикла, например функции, которая вызывает сама себя без выхода:

Измените память, например со 128 на 512, см. Ниже

После включения этих двух строк он начал работать:

Корневой каталог вашего сайта:

  • 1 это сработало для меня. люблю однострочные решения. +1 для простоты

В Drupal 7 вы можете изменить ограничение памяти в файле settings.php, расположенном в папке sites / default. В строке 260 вы увидите следующее:

Даже если ваши настройки php.ini достаточно высоки, вы не сможете использовать более 128 МБ, если это не установлено в вашем файле settings.php Drupal.

  • 1 Нет в Drupal7 такой строки кода в settings.php нет
  • Также нет строки в settings.php для drupal 6

Измените ограничение памяти в php.ini файл и перезапустите Apache. После перезагрузки запустите phpinfo (); функцию из любого файла PHP для memory_limit подтверждение изменения.

Ограничение памяти -1 означает, что ограничение памяти не установлено. Сейчас это максимум.

Для пользователей Drupal это ответ Криса Лейна:

работает но надо ставить сразу после открытия

в файле index.php в корневом каталоге вашего сайта.

Вместо того, чтобы менять memory_limit ценность в вашем php.ini файл, если есть часть вашего кода, которая может использовать много памяти, вы можете удалить memory_limit перед запуском этого раздела, а затем замените его после.

Просто добавьте ini_set('memory_limit', '-1'); строку вверху вашей веб-страницы.

И вы можете установить свою память в соответствии с вашими потребностями вместо -1, чтобы 16M , так далее..

  • 8 Похоже, это говорит то же самое, что и многие существующие ответы. Лучше всего добавлять ответ на популярный вопрос, только если новый материал предлагает что-то новое.

Некоторые хосты cPanel принимают только этот метод.

(Это происходит, когда MySQL запрашивает большие строки. По умолчанию memory_limit установлен на small, что было безопаснее для оборудования.)

Вы можете проверить состояние существующей памяти вашей системы, прежде чем увеличивать php.ini :

  • На какое число (строку и столбец?) Следует смотреть после запуска free -m команда, чтобы принять решение о новом memory_limit?

Для тех, кто ломает голову над тем, чтобы выяснить, почему эта маленькая функция должна вызывать утечку памяти, иногда из-за небольшой ошибки функция начинает рекурсивно вызывать себя навсегда.

Например, прокси-класс, который имеет то же имя, что и функция объекта, который будет его прокси.

Иногда вы можете забыть принести этот маленький фактический член Objec, и потому что прокси-сервер действительно имеет этот doSomething PHP не выдаст вам никаких ошибок, а для большого класса его можно скрыть от глаз на пару минут, чтобы выяснить, почему происходит утечка памяти.

  • И еще совет: можно поставить die('here') в коде и переместите этот оператор, чтобы увидеть, где начинается рекурсия.

У меня была указанная ниже ошибка при работе с набором данных меньшего размера, чем работал ранее.

Неустранимая ошибка: разрешенный размер памяти 134217728 байт исчерпан (попытка выделить 4096 байт) в C: \ workspace \ image_management.php в строке 173

Оказалось, что я смотрел 50-минутное видео понемногу в течение нескольких дней, и это все испортило. Это своего рода исправление, которое эксперты исправляют, даже не задумываясь о нем, но для таких, как я, стоит помнить о нем.

  • У меня сегодня был похожий случай в Google Chrome. Я очень скептически отнесся к этому ответу . однако он показал, что мое исчерпание байтов исчезло после того, как я открыл окно в режиме инкогнито и снова запустил тот же сценарий! Исследования продолжаются.

С помощью yield тоже может быть решением. Увидеть Синтаксис генератора.

Вместо того, чтобы менять PHP.ini файл для большего объема памяти, иногда реализуя yield внутри цикла может решить проблему. Yield делает вместо того, чтобы выгружать все данные сразу, он читает их один за другим, экономя много памяти.

Запускаем скрипт следующим образом (например, cron): php5 /pathToScript/info.php выдает ту же ошибку.

Правильный способ: php5 -cli /pathToScript/info.php

Если вы используете VPS (виртуальный частный сервер) на базе WHM, вы можете обнаружить, что у вас нет прав на редактирование PHP.INI напрямую; система должна это делать. В панели управления хостом WHM перейдите в Конфигурация услугиРедактор конфигурации PHP и изменить memory_limit :

Я считаю это полезным, когда включаю или требую _dbconnection.php_ а также _functions.php в файлах, которые фактически обрабатываются, а не в заголовке. Что входит в себя.

Итак, если ваш заголовок а также нижний колонтитул включен, просто включите все ваши функциональные файлы до включения заголовка.

Уменьшая допустимый размер выделения в начале вашего кода, вы можете предотвратить фатальную ошибку, как описано в других ответах.

Тогда у вас может остаться программа, которая завершается, но все еще трудно отлаживать.

Независимо от того, завершается ваша программа или нет, настройте свой код, вставив BreakLoop() вызовы внутри вашей программы, чтобы получить контроль и выяснить, какой цикл или рекурсия в вашей программе вызывает проблему.

Определение BreakLoop следующее:

В моем случае это была небольшая проблема, связанная с написанием функции. Утечка памяти может быть вызвана присвоением нового значения входной переменной функции, например:

изменение ;memory_limit=512M к ;memory_limit=-1 в

это слишком опасно для сервера. В вашем PHP-коде может быть утечка памяти, и вы говорите серверу просто использовать всю память, которую он хочет. Вы бы вообще не устранили проблему. Если вы будете следить за своим сервером, вы увидите, что теперь он, вероятно, использует большую часть оперативной памяти и даже переключается на диск.

Я потратил два дня на поиск решения этой проблемы, и я понял, что это было причиной вызова с PDO, когда я позвонил

а период переменных был

Таким образом, у этой проблемы может быть несколько основных причин, мой совет: попробуйте метод проб и ошибок или метод деления пополам для поиска основной причины, удалите код и попытайтесь найти, какой код строки не работает.

Обновление: я также столкнулся с этой ошибкой с помощью метода $ pdo-> query (), я использовал $ pdo-> prepare () и работал хорошо, поэтому, пока у меня был

тогда я изменил это на

и волшебным образом исчезла ошибка памяти!

Когда я удалил из кода следующие строки, все заработало!

Эти строки были включены в каждый файл, который я запускал. При запуске файлов один за другим все работало нормально, но при запуске всех файлов вместе возникла проблема с утечкой памяти. Почему-то "include_once" не включает вещи один раз, или я что-то делаю не так .

Как решить проблему? Стоит ли переходить на хостинг с 384МБ ОЗУ?

Вот функция в которой происходит ошибка:


67.8k 8 8 золотых знаков 58 58 серебряных знаков 113 113 бронзовых знаков А может стоит глянуть что за запрос такой и его оптимизировать? сомневаюсь что там нужно столько данных, что 256МБ ОЗУ не хватает. А если у Вас пара сотен человек обратится к скрипту? Ну у тебя похоже while по какой-то причине не заканчивается. И всё это выходит за рамки дозволинной памяти. Денис, While тут может не закончится только если результат выборки запроса бесконечный )) просто данных очень много и все они собираются в массив, который сжирает ОЗУ. Вот я и предложил автору посмотреть, может у него выводится миллион пользователей на страницу. Так можно тогда постранично разбить. Или может запрос SELECT * FROM news; а в таблицу выводит заголовки одни. Поэтому считаю правильно сначала посмотреть на запрос и понять, реально ли он необходим в таком виде, в каком он есть. @Денис Евра, while тут может только по одной причине быть долгим( но не бесконечным! ): если количество затронутых записей слишком большое. @eprivalov1 Покажите структуру таблицы с типом данных полей и какое количество записей у вас фетчится

Как несложно догадаться, веб приложение расходует всю память, доступную на виртуальном сервере. Посмотрев на приведенный вами код, становится ясно, что ошибка происходит при попытке перенести результат запроса к таблице БД в оперативную память на сервере. Очевидно, выборка задевает огромное количество записей( суммарный объем информации в которых = 268435456/1024/1024 = 256МБ !! ). Есть несколько выходов: ограничивать количество затрагиваемых запросом записей из таблицы ( LIMIT, WHERE и т.д ) или же завести сервер с большим запасом ОЗУ. Предпочтительнее первый вариант, т.к в будущем вы обезопасите себя от возникновения подобной проблемы. Да и вообще, нужно следить за подобными вещами..

Здесь вот, к примеру, один только номер строки пугает:

Такие гигантские скрипты следует разбивать на несколько файлов, чтобы хотя бы самому в нем потом не запутаться..

Ошибка о нехватки памяти при выполнении php: Fatal error

Содержание статьи:

Причины ошибки Allowed memory size

Представим ситуацию: мы обновляем SQL базу нашего сайта, импортируем созданный бэкап , но буквально через пару секунд после начала загрузки процесс останавливается и выводится ошибка.
Или другая ситуация: нужно нам авторизоваться на собственном сайте, открываем админ-панель , но вместо формы входам получаем ошибку выполнения.
А вот вообще критичный вариант: пользователь из поисковой выдачи пытается перейти на сайт, но вместо страницы с контентом получает ошибку.

Все три вышеописанных случая могут иметь разные причины, но также во всех трёх случаях причиной может быть нехватка выделенной памяти для выполнения php-кода. Если проблема именно в недостаточном количестве памяти, то ошибка, которая выведется на экран, будет примерно следующего содержания:

где:
1* - допустимый для выделения объём памяти, в байтах;
2* - объём памяти, который необходим для дополнительного выделения, в байтах;
3* - путь до файл, при выполнении которого был исчерпан лимит выделенной памяти;
4* - номер строки в файле 3*, при выполнении которой был исчерпан лимит выделенной памяти.

Вот пример ошибки, выпадающей при попытке импорта базы сайта WordPress с хостинга на Денвер для работы в локальной сети, о возможности которой говорилось в статье Денвер в локальной сети. Локальный сайт на телефоне:

Ошибка: Fatal error: Allowed memory size of * bytes exhausted (tried to allocate * bates) in * on line *.

Из скриншота ошибки можно понять, что при попытке выполнения 290 строки файла import.lib.php объём выделенной памяти в размере ‪134 217 728‬ байт (или ‪128 Мегабайт) закончился, необходимо дополнительное выделение 41 767 538 байт (39,83 Мегабайт) памяти.
Перевод из байт в Мегабайты осуществляется двойным делением величины на 1024 (после первого деления байт на 1024 мы получим килобайты, после второго - Мегабайты). Обычно, в связи с кратностью памяти (элементарные байт и бит соотносятся в пропорции 1:8), объём памяти в php также указывают кратно 8, то есть 128 Мегабайт увеличивают не до 200, допустим, а до 256 Мегабайт.

Увеличение WP_MEMORY_LIMIT в php файлах

В этой главе представим два варианта решения проблемы с нехваткой памяти выполнения кода, оба способа заключаются в редактировании php-файлов сайта, в которых задаётся значение параметра WP_MEMORY_LIMIT.

WP_MEMORY_LIMIT в wp-config.php

Первое решение, которое применяется довольно часто, связано с редактированием файла конфигурации wp-config.php.

    Открываем файл, находящийся по следующему пути:

и, если речь идёт о Денвере, соответственно:

WP_MEMORY_LIMIT в default-constants.php

Как ясно из названия файла, default-constants.php отвечает за элементарные параметры веб-ресурса, что называется, "по умолчанию". Разумеется, что это касается и значения величины WP_MEMORY_LIMIT.

    Открываем следующий файл на хостинге:

или файл на Денвере:

Увеличение memory_limit в прочих конфигурационных файлах

Теперь разберём варианты устранения ошибки Allowed memory size exhausted через редактирование двух других файлов, которые используются не только при настройке CMS WordPress.

memory_limit в php.ini

Файл php.ini позволяет настраивать большое количество переменных, значение объёма выделенной памяти входит в их число. Для начала необходимо выяснить, где именно находится php.ini на нашем сервере, это зависит от операционной системы (разумеется, речь идёт об ОС сервера).

Любым текстовым редактором создаём php-файл со следующим содержим:

Сохраняем файл с произвольным именем, например, phpinfo.php. Готовый файл можно скачать в прикреплённом к статье архиве: phpinfo.
Теперь извлекаем из архива файл и помещаем его в корневую директорию сайта, то есть в каталог /public_html/ или /www/
Далее в адресной строке набираем адрес нашего сайта и через слеш имя файла phpinfo.php, например:

Переходим по адресу и получаем в ответ примерно такую страницу:

Получение информации о версии и конфигурации php, используемом на сайте

В первую очередь смотрим на значение строчки Loaded Configuration File , если путь до php.ini там не прописан, то обращаем внимание на параметр Configuration File (php.ini) Path . Путь может быть указан разный. Вот только несколько возможных примеров:

  • /public_html/wp-admin/php.ini
  • /etc/php/php.ini
  • \WebServers\usr\local\php5\php.ini

Теперь приступаем к увеличению выделенной памяти:

  1. Переходим в каталог, где хранится файл php.ini и открываем сам файл для редактирования. Если такого файла в каталоге нет, создаём его любым текстовым редактором.
  2. Добавляем в файл следующий код (всё, что указано после символа точки с запятой, является комментарием и не обязательно к добавлению):

memory_limit в .htacess

Заключительный в рамках данной статьи способ увеличения выделяемой памяти для выполнения скрипта - использование файла .htacess.
В упомянутой выше статье о настройке работы Денвер в локальной сети мы уже касались данного файла, поэтому здесь не будем уделять ему лишнего внимания. Отметим только то, что нас интересует для текущих действий, а именно то, что файл .htacess хранится в корневой директории сайта . Приступим к его редактированию:

  1. Переходим в корневую директорию сайта и открываем файл .htacess любым удобным текстовым редактором.
  2. Добавляем в файл самой верхней строчкой следующий код:
  3. Сохраняем изменения в файле и проверяем работу сайта.

На этом всё. Мы рассмотрели 4 способа исправления ошибки Fatal error: Allowed memory size of * bytes exhausted.

Читайте также: