Почему я не могу получить доступ к своему пользовательскому ключу кэша через CLI, когда он был установлен через веб -запрос?
Вопрос
У меня есть метод, который вызывает следующий код из веб -запроса.
Mage::app()->getCache()->save('bar', 'foo', array(), 60*5);
У меня есть еще один метод, который вызывает
Mage::app()->getCache()->load('foo');
Метод, который загружает кэшированное значение, возвращает правильное значение при вызове через веб -запрос, но всегда возвращает false, когда я запускаю код через CLI.
Причина, по которой я пытаюсь запустить через CLI, заключается в том, что рассматриваемый код является частью задачи Cron. я использую n98-magerun sys:cron:run foobar_cron
запустить код.
Моя первоначальная мысль заключалась в том, что, возможно, бег от CLI инициирует другой вид магазина, но я прошел через код и не нашел ничего подобного.
Попытка получить кэшированное значение при запуске через Интернет через Admin Works.
Я использую стандартный кэш файловой системы Magento, и у меня нет пользовательских настройки кэша в моем local.xml. Запуск EE 1.12.0.2.
Я ожидаю, что когда я установил ключ кэша через веб -запрос, который я мог бы получить одно и то же значение при запуске через CLI и вице -Verca. Почему это работает, как и ожидалось, и что я могу сделать, чтобы это исправить?
Решение
Моя ставка на файловых разрешениях. Убедитесь, что вы var/cache/
Directory имеет чтение/запись как для пользователя Shell, так и для пользователя Apache работает.
Там, где он не может читать из обычного каталога кэша, он молча задержится в каталоге системы системы, заполняя его более чем несколькими записями Zend/Locale Cache.
Другие советы
Если ваш бэкэнд кеша - APC, то CLI и APACH APC совершенно разные и не могут быть разделены между двумя, к сожалению.
Если ваш бэкэнд кэша основан на файловой системе, вам следует посмотреть на разрешения. Если разрешения являются проблемой, вы можете рассмотреть возможность запуска своего Cron в качестве пользователя Apache в качестве обхода вокруг, хотя это не идеально, лучшим вариантом является рассмотрение ACL - взглянуть на setfacl
Команда, если это применимо к вашему дистрибутиву Linux