Prestashop 1.6.1.11 (500) Внутренняя ошибка сервера (ассоциации) байты исчерпаны
У меня был вопрос, опубликованный на форумах Prestashop в течение некоторого времени, касающийся проблемы, которую я не уверен, как решить. Я опубликую ссылку ниже на исходный вопрос, буду признателен за любую помощь, которую я могу получить по этому вопросу.
Первоначальный вопрос на форуме Prestashop.
Prestashop 1.6.1.11: Каждый раз, когда я получаю доступ к определенным продуктам и пытаюсь отредактировать их ассоциации, я получаю уведомление об ошибке;
(500 Внутренний Ошибка сервера)
При загрузке вкладок произошла ошибка сервера: не удалось загрузить некоторые вкладки. Пожалуйста, повторите попытку, обновив страницу. Если вы все еще сталкиваетесь с этой проблемой, пожалуйста, проверьте журналы своего сервера или обратитесь за помощью к своему хостинг-провайдеру.
Я выполнил несколько шагов, чтобы попытаться идентифицировать ошибку, как показано ниже в моем фрагменте кода, в результате чего я смог вернуть несколько подробностей об ошибке.
<php
// I enabled dev mode via config/defines.inc.php
if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', true);
}
?>
Повторяя шаги, я попытался исправить ошибку.
Таков был мой результат...
Фатальная ошибка: Разрешенный объем памяти 134217728 байт исчерпан (пытался выделить 8192 байта) в/classes/cache/CacheFs.php в режиме онлайн 69
Я сделал несколько шагов вперед в надежде исправить эту проблему, но все безрезультатно. Я перечислю шаги, которые я предпринял ниже;
- Скорректировал свой php.ini, чтобы разрешить полный лимит памяти, я опубликую полный копия которого приведена ниже.
(memory_limit = 128M)
- Связался с моим хостинг-провайдером, чтобы на моем сервере был установлен модуль кэширования "XCache" в надежде найти решение для кэширования по умолчанию и найти возможное исправление. Однако в настоящее время это невозможно.
-
Проверено на наличие проблем с недавно установленным модулем. (Не найдено)
Я еще немного покопался в Интернете, но большинство решений кажутся чрезмерными, например, перестройка кода, чтобы быть менее интенсивная память. К сожалению, я недостаточно уверен в своей способности надежно решить эту проблему с помощью моих текущих знаний, и я ищу несколько советов о том, как устранить эту ошибку.
С уважением, - В
РЕДАКТИРОВАТЬ
После дальнейшего копания и отключения кэширования мое местоположение ошибки изменилось на; Adapter/Adapter_EntityMapper.php on line 98
.
2 answers
Вы исчерпали 128 м, а также исчерпали 1024 м, что нелепо (на самом деле, 128 м довольно нелепо само по себе).
Это вряд ли будет стандартной утечкой; больше похоже на циклическое распределение. Это почти так, как если бы картограф сущностей нашел ссылку на другую сущность, которая с помощью коммодиуса викуса рециркуляции вернулась к первой сущности. При попытке разрешить граф сущностей-Отношений-атрибутов каждый цикл выделяет больше памяти во вложенном структурировать, пока не будет исчерпана вся доступная память.
Просто в качестве примера, и даже не в PHP:
ProductA: {
Name: "Phone charger",
Details: {
Accessories: {
ProductB: {
Name: "Phone charger cable",
Details: {
Accessories: {
ProductA: {
Name: "Phone charger",
Details: {
...
Можете ли вы проверить, идентична ли структура атрибутов вашего продукта между одним из продуктов, которые работают, и тем, который не работает?
Вы можете попробовать отключить все переопределения, чтобы узнать, есть ли проблема:
- Включите режим отладки/отчеты об ошибках, установив значение конфигурации _PS_MODE_DEV_ равным true в config/defines.inc.php
define('_PS_MODE_DEV_', true);
- Войдите в свою панель администрирования PrestaShop 1.6.
- Нажмите на пункт меню "Дополнительные параметры", расположенный на левой боковой панели, а затем на "Производительность".
- Переключите кнопку Отключить все переопределения в режиме отладки раздел