Настройка Memcache + CakePHP, ошибка «Кэш не настроен правильно» - PullRequest
2 голосов
/ 13 сентября 2010

Я настраиваю кеширование для приложения CakePHP и очень трудно заставить его общаться с Memcache.

Я написал код кеширования при тестировании на движке кеширования на основе файлов, и вся логика вполне обоснована. Когда я наблюдаю отладочный трафик, кэши попадают, пропускают и истекают правильно. Я хотел переключиться на Memcache, потому что кэш на базе Filesytem не дает какого-либо улучшения производительности, но я не могу заставить его работать вообще.

Как только я меняю Caching Engine в Cache :: config на Memcache, я получаю следующую ошибку:

Warning (512): Cache not configured properly. Please check Cache::config(); in APP/config/core.php [CORE/cake/libs/configure.php, line 663]

Это происходит с помощью простого вызова конфигурации, например:

Cache::config('default', array(
    'engine' => 'Memcache'
    ));

Или более сложный, например, предложенный по умолчанию в core.php:

Cache::config('default', array(
        'engine' => 'Memcache', //[required]
        'duration'=> 3600, //[optional]
        'probability'=> 100, //[optional]
        'prefix' => Inflector::slug(APP_DIR) . '_', //[optional]  prefix every cache file with this string
        'servers' => array(
        '127.0.0.1:11211' // localhost, default port 11211
        ), //[optional]
        'compress' => false, // [optional] compress data in Memcache (slower, but uses less memory)
        ));

Cache.check установлен в true, например, Configure::write('Cache.check', true);, а Cache.disable не установлен. Опять же, вся логика кэширования работает отлично, пока я использую 'engine' => 'File'.

Я получаю ту же ошибку, независимо от того, работает memcached или нет. Эта ошибка, по-видимому, охватывает массу различных проблем - расширенный поиск выявил огромное разнообразие потенциальных решений проблем с этим сообщением об ошибке. Я дважды проверил, что мои каталоги tmp существуют (согласно http://ryan.ifupdown.com/2009/08/05/warning-512-cache-not-configured-properly-please-check-cacheconfig-in-appconfigcore-php-corecakelibsconfigure-php-line-663/), Я работаю в Ubuntu, поэтому нет проблем с маршрутизацией (которые были проблемой в прошлом, по https://trac.cakephp.org/ticket/4433 и http://cakephp.1045679.n5.nabble.com/cake-1-2-problem-with-cache-td1302563.html). Я использую относительно старую версию Cake (1.2.5), но я попытался обновить и получил то же сообщение об ошибке (наряду с миллионом других ошибок, связанных с обновлением, на которые у меня нет времени искать) вниз.)

Есть ли способ получить более подробную информацию из Cake о том, что на самом деле идет не так? У меня такое ощущение, что эта ошибка - всего лишь ошибка для всего, что идет не так при инициализации класса кэша, и существует множество потенциальных проблем. Изменение уровня отладки до 3 больше ничего не показывает. Если бы я мог получить больше информации, я мог бы что-то сделать, но я полностью ослеп. Я в основном новичок в Cake, поэтому любые рекомендации по работе с причудливыми ошибками в Cake будут очень благодарны!

Ответы [ 4 ]

3 голосов
/ 15 сентября 2010

Вам необходимо установить Memcache lib for PHP. Вы должны быть в состоянии установить его, используя пакет "php5-memcache".

1 голос
/ 01 марта 2011

В Ubuntu 10.04 мне пришлось установить и memcached, и memcache, чтобы заставить его работать.

0 голосов
/ 19 сентября 2014

Вы должны убедиться, что memcache (не "memcached") установлен 1) и 2) работает. 1) Проверьте, присутствует ли extension=memcache.so в php.ini 2) Следуйте инструкциям для автоматического запуска memcache

0 голосов
/ 13 сентября 2010

Обычно это означает, что сервер memcache на самом деле не работает.Можете ли вы убедиться, что сервер работает локально и на порту 11211 (по умолчанию)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...