Помощь Страница импорта в админке ищет APC-cache, несмотря на то, что "Использовать кеширование" отключено.

Byteman

Мой дом здесь!
Регистрация
18 Мар 2008
Сообщения
484
Реакции
242
Здравствуйте!

Ситуация такая.

Магазин на Prestashop 1.7.2.4.

Раньше на сайте был включен php-fpm 7.0 и установлен и активирован APCu.
В какой-то день в админке магазина я отключил вообще опцию "Использовать кеширование",
так как после экспериментов с использованием memcached, а затем APCu,
пользы не увидел, но происходили какие-то непонятные глюки периодически.

Через какое-то время я перевёл сайт на php-fpm 7.1 без APC.
Сегодня я кликнул в меню админки на "Импорт" и загрузилась страница ошибки следующего содержания:

Код:
[PrestaShopException]

APC cache has been enabled, but the APC or APCu extension is not available
at line 43 in file classes/cache/CacheApc.php

38.      * CacheApcCore constructor.
39.      */
40.     public function __construct()
41.     {
42.         if (!extension_loaded('apc') && !extension_loaded('apcu')) {
43.             throw new PrestaShopException('APC cache has been enabled, but the APC or APCu extension is not available');
44.         }
45.         $this->apcu = extension_loaded('apcu');
46.     }
47.
48.     /**

    CacheApcCore->__construct - [line 131 - classes/cache/Cache.php]
    CacheCore::getInstance - [line 343 - classes/db/Db.php]
    DbCore->enableCache - [line 4358 - controllers/admin/AdminImportController.php]
    AdminImportControllerCore->postProcess - [line 194 - classes/controller/Controller.php]
    ControllerCore->run - [line 379 - classes/Dispatcher.php]
    DispatcherCore->dispatch - [line 95 - admin/index.php]

Получается classes/cache/CacheApc.php производит проверку установлено ли и активировано ли php-расширение APC или APCu, несмотря на то, что опция "Использовать кеширование" отключена:

upload_2018-12-28_14-52-42.png

Простая очистка кэша на страничке "Производительность" админки магазина проблему не решает.

Почему так происходит и как это поправить?
 
Последнее редактирование:
Посмотри упоминание APC в /app/config/parameters.php. Если есть, замени на
Код:
'ps_caching' => 'CacheMemcache',
    'ps_cache_enable' => false,
 
Посмотри упоминание APC в /app/config/parameters.php. Если есть, замени на
Код:
'ps_caching' => 'CacheMemcache',
    'ps_cache_enable' => false,

Спасибо. Это баг престы такой?

Там сейчас есть следующее:
Код:
    'ps_caching' => 'CacheApc',
    'ps_cache_enable' => false,

Вопросы появились:

1. 'ps_caching' => 'CacheMemcache' или 'ps_caching' => 'CacheMemcached' - c d на конце?
У меня активирован memcached. Упоминаний о memcache без d на конце phpinfo() не выдаёт.

2. Обязательно ли переводить кэшинг на CacheMemcache или CacheMemcached?

Хотелось бы смысл понять.
Нельзя ли просто эту строку откомментировать или поставить что-то типа: 'ps_caching' => '' ?
 
Спасибо. Это баг престы такой?

Там сейчас есть следующее:
Код:
    'ps_caching' => 'CacheApc',
    'ps_cache_enable' => false,

Вопросы появились:

1. 'ps_caching' => 'CacheMemcache' или 'ps_caching' => 'CacheMemcached' - c d на конце?
У меня активирован memcached. Упоминаний о memcache без d на конце phpinfo() не выдаёт.

2. Обязательно ли переводить кэшинг на CacheMemcache или CacheMemcached?

Хотелось бы смысл понять.
Нельзя ли просто эту строку откомментировать или поставить что-то типа: 'ps_caching' => '' ?

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

1. Не важно. Просто эти классы не бросают исключения если расширения не установлены (вроде).
2. Лучше пока не использовать ни то ни другое. Отключить (напишите зачем он вам).
Строка 'ps_caching' должна быть заполнена и валидна вашим классам кеширования (/classes/cache/)
 
Как бы кеш пытается создаться всегда, если это у него получается (задано в настройках).

1. Не важно. Просто эти классы не бросают исключения если расширения не установлены (вроде).
2. Лучше пока не использовать ни то ни другое. Отключить (напишите зачем он вам).
Строка 'ps_caching' должна быть заполнена и валидна вашим классам кеширования (/classes/cache/)

Спасибо, всё работает в обоих случаях ( 'ps_caching' => 'CacheMemcache', или 'ps_caching' => 'CacheMemcached', ) ,
но только после удаления кэша по фтп ( /app/cache/prod ), иначе вначале ошибку выдаёт.

И да, кэширование у меня отключено.
После некоторого опыта сначала с MemCached, а затем с APCu, не увидел никакой пользы, кроме непонятных глюков.
 
  • Нравится
Реакции: alpi
Назад
Сверху