Я сходил с ума от этого.
Я получил следующее сообщение:
Allowed memory size of 262144 bytes exhausted (tried to allocate 24576 bytes)
СПИСОК ДЕЛ
Проверьте phpinfo (), получите правильный маршрут php.ini и отредактируйте его. Измените memory_limit на
memory_limit = 128M
Убедитесь, что значение memory_limit изменяет con phpinfo () с результатом:
memory_limit 128MB 128MB
Проверьте .htaccess и добавьте (не нужно)
php_value memory_limit 128M
А также изменить его с помощью php так (до строки ошибки):
ini_set('memory_limit','128M');
Он говорит везде, что память установлена на 128M, но все еще получает эту ошибку?
Ошибка в библиотеке Swift (библиотека для отправки сообщений электронной почты), в abstractSmtpTransport.php, поэтому мой код int не работает.
Есть идеи???
Изменить: Да, предыдущее было выполнено с перезапуском apache.
EDIT 2: @patrick, добавил, что ничего не повторилось
Попытка с меньшим значением, 28M в каждом файле, перезапущенный apache, та же ошибка (phpinfo показала новое значение)
попытался с -1, перезапуском и той же ошибкой.
EDIT 3: разве не странно, что память больше, чем выделенная память? (несмотря на то, что допустимый размер памяти ниже допустимой памяти)
Я вижу, что моя проблема немного отличается от вашей, но я отправлю этот ответ, если это поможет кому-то другому. Я использовал MB
как стенографию вместо M
когда определял свой memory_limit, и php молча игнорировал его. Я изменил его на целое (в байтах) и проблема была решена.
Мой php.ini изменился следующим образом: memory_limit = 512MB
to memory_limit = 536870912
. Это устранило мою проблему. Надеюсь, это поможет кому-то другому! Здесь вы можете прочитать стенографию php.
Удачи!
редактировать
Как указывает Яодун, вы можете так же легко использовать правильную стенографию «М» вместо использования значений байтов. Я изменил свои значения на байты для целей отладки, а затем не стал менять их обратно.
Значением 262 144 байта является ключом к диагнозу. Вы увидите, что этот волшебный номер появляется во всех вопросах PHP. Зачем? Поскольку это значение, значение PHP будет ограничено, если вы попытаетесь обновить предел значением, которое он не может использовать. Пустая строка создаст этот предел памяти, так же как и неправильная единичная запись типа «128 МБ» вместо правильного «128 М».
262 144 байта составляет ровно 256 килобайт. Почему PHP работает дома с этим значением, когда он запутывается, выходит за рамки меня.
разве не странно, что память больше, чем выделенная память?
Отображаемая сумма – это всего лишь самая недавняя попытка размещения, которая превзошла пределы памяти. См. Раздел Разрешенный размер памяти в PHP при распределении меньше .
Посмотрите, может ли этот ответ помочь вам. В частности, тот факт, что CLI ini может отличаться от того, когда скрипт работает через браузер.
Допустимый размер памяти X байтов
если вы используете модели в своем приложении и используете get_object_vars ($ model) и нажимаете это на свой массив, добавьте эту функцию в модель:
public function get_objects(){ return (get_object_vars($this)); }
и добавьте это в свой массив:
array_push($array,$model->get_objects());
Я пытался установить ограничения WordPress на загрузку мультимедиа. Я следил за советом из какого-то блога, я не собираюсь упоминать, чтобы повысить лимит с 64 МБ до 2 ГБ.
Я сделал следующее:
Создал файл (php.ini) в WP ADMIN со следующими целыми числами:
upload_max_filesize = 2000MB post_max_size = 2100MV memory_limit = 2300MB
Я сразу получил эту ошибку при попытке войти в мою панель инструментов WordPress, чтобы проверить, сработало ли это:
Msgstr "Разрешенный размер памяти 262144 байт исчерпан (пытался выделить 24576 байт)"
Вышеприведенная информация в этой цепочке очень помогла мне. (Стек обычно BTW)
Я изменил файл PHP.ini на следующее:
upload_max_filesize = 2000M post_max_size = 2100M memory_limit = 536870912M
Основное различие заключалось только в использовании M, а не в MB, и установлении этого предела памяти.
Как только я сохранил измененный файл PHP.ini, я сохранил его, снова зашел в систему и снова появился экран входа в систему.
Я вошел и проверил загрузку мультимедиа, ands bang:
Изображение, показывающее папку носителя twordpress «Добавить новое», с ограничениями, указанными как «МАКСИМАЛЬНЫЙ РАЗМЕР ЗАГРУЗКИ: 2 ГБ»
Я еще не перезапустил Apache … но все выглядит хорошо.
Всем спасибо.