После обновления Magento > Неустранимая ошибка: не хватает памяти

#magento #upgrade #php

#magento #Обновление #php

Вопрос:

После обновления magento с 1.5.1 до 1.6.1 по ssh я получаю следующую ошибку:

 Fatal error: Out of memory (allocated 41418752) (tried to allocate 24768513 bytes) in /home/username/public_html/downloader/lib/Mage/Archive/Abstract.php on line 45
  

Я отредактировал свой php.ini, чтобы:

 max_execution_time = 18000
max_input_time = 6000
memory_limit = 256M
  

У кого-нибудь есть идея, как решить эту проблему?
После попыток и поиска в течение целого дня это становится довольно неприятным.

Любая помощь была бы очень признательна!

Спасибо

Комментарии:

1. И вы получаете ту же ошибку, что и до изменений? Если это так, попробуйте создать свой memory_limit в .htaccess файле Magento вместо php.ini . В стандартном Magento .htaccess значение перезапишет значение, которое вы установили в php.ini .

2. Когда я меняю memorylimit в файле .htaccess, я по-прежнему получаю ту же ошибку. Достаточно странно, что файл .htaccess также сбрасывается после выполнения обновления??? Итак, когда я увеличиваю файл .htaccess до 512m, он сбрасывается обратно к старым значениям после выполнения обновления.

3. Я не знал, что вы пытаетесь обновить PEAR способом. Никогда не делал этого сам. Хм, глядя на ./mage сценарий оболочки, я бы сказал, что должно произойти изменение memory_limit в php.ini том, для MAGE_PHP_BIN чего вы установили. Или настройка -d memory_limit="512M" в exec строке сценария оболочки.

Ответ №1:

Вы редактируете неправильный файл php.ini.

 (tried to allocate 24768513 bytes)
  

24768513 байт — это примерно 24188 KB , то есть около 23 MB . Ваши изменения не видны.

Временно добавьте вызов в

 phpinfo();
exit;
  

в начало любого PHP-файла является вашей основной точкой входа. Это index.php для веб-контекста, mage.php для контекста Magento Connect.

Это сообщит вам, какие php.ini файлы использует PHP, а также каковы значения времени выполнения для всех флагов ini. Отредактируйте вместо этого этот файл.

Если вы не можете отредактировать этот файл, используйте функцию ini_set для установки значения во время выполнения.

Комментарии:

1. Хорошо, это выходит далеко за рамки моих знаний :-(. В index.php и mage.php отсутствует строка php.ini. Но спасибо, что нашли время ответить на мой вопрос ;-). Возможно, обновить magento не так просто, как я думал?

2. Вам нужно добавить phpinfo(); в файл index.php и тогда вы увидите на любой странице вашего сайта, какой из php.ini был использован. Не пытайтесь искать строку php.ini в mage.php 😉

Ответ №2:

Не могли бы вы, пожалуйста, предоставить информацию о том, что конкретно вы сделали? (Шаг за шагом)

Я думаю, вам нужно изменить php.ini на:

 memory_limit = 512M
  

Поскольку вы видите сообщение о том, что

 (allocated 41418752) (tried to allocate 24768513 bytes)
  

В чем причина обновления по ssh?
Есть ли другие случаи обновления magento?

Комментарии:

1. Честно говоря, я понятия не имею, как обновить иначе:-/ Вот что я делаю: я захожу в систему по ssh -p 4000 username@31.186.169.4 Затем я захожу на общедоступный HTML-диск public_html, меняю права на запись: chmod 700 ./mage Я устанавливаю обновление: ./mage install community Mage_All_Latest