2015-05-27 3 views
0

В backoffice Prestashop нет возможности сбросить кеш (Дополнительные параметры - Производительность), можно только отключить кеш.Как очистить кеш APC в Prestashop

Различные типы кэша и как очистить их

  • Smarty компилировать кэш: Удалить вложенные папки cache/smarty/compile
  • Smarty кэш шаблона: Удалить вложенные папки cache/smarty/cache
  • кэша с помощью Filesystem: Удаление подпапок под cache/cachefs

Но как я могу очистить кеш, если я использую кеш APC?

Дополнительный вопрос: возможно ли установить глобальный ttl? По умолчанию все кэшируется навсегда.

+2

Я не знаю, какую версию prestashop вы используете, но на моем 1.6.0.9 в разделе «Дополнительные параметры» -> «Производительность» есть кнопка «Очистить кеш» на верхней зеленой панели инструментов (это будет очищать ваш smarty/xml/js/css cache). Для системы APC/Xcache prestashop не может многое сделать, поскольку они зависят от их относительных .ini-файлов и должны быть настроены вручную, например. http://www.if-not-true-then-false.com/2012/php-apc-configuration-and-usage-tips-and-tricks/. – kawashita86

+1

Да, к несчастью, Prestashop не контролирует общий/db-кеш, так как настройки APC (и любая другая система кэширования) привязаны к серверу, а не установка preashash. Чтобы изменить эти настройки, вам необходимо изменить файл .ini, например. apc.ini. Есть несколько советов, которые расскажут вам, как настроить TTL/dimesios/chunck и так далее. Я не могу вам помочь, так как я не эксперт в системе APC. – kawashita86

ответ

2

Для промывки пользователя APC кеш, вам необходимо установить интерфейс администрирования для APC (apc.php). Этот файл связан с загрузкой для APC. Просто скопируйте его в папку, доступную из Интернета, отредактируйте ее, чтобы установить пароль.
После этого вы можете подключить и очистить кеш при необходимости. Можно очистить системный кеш и кеш пользователя отдельно.

2

Вы могли бы написать простую функцию PHP: добавить все каталоги кэша массива и проверить его:

foreach ($cacheDirs as $dir) 
      if (file_exists($dir)) 
        $this->emptydir($dir); 

Другой путь, использовать бесплатный модуль для его очистки: http://www.prestatoolbox.com/free-prestashop-modules/122-clear-the-cache-of-prestashop.html

+0

Мой вопрос касается кэша APC, а не кеша файловой системы. –

+0

@elPresta хороший ответ, но вы должны немного расширить его, чтобы сделать его пригодным для использования (укажите значения cacheDirs). Множество таких людей, как я, приземляются на этой странице, ища общее решение, которое вы предоставили. Модули не будут работать, поскольку иногда вам необходимо очистить кеш, чтобы даже получить доступ к сайту (например, после смены окружения) – bg17aw

+0

@ bg17aw Посмотрите на мой вопрос. Я уже перечисляю кеш-диски, которые нужно очистить. –