Расширение memcache должно быть загружено для использования этого бэкэнда - PullRequest
19 голосов
/ 20 марта 2012

Я установил memcached. Это из phpinfo ():

enter image description here

Но при использовании так:

private static function getZendCacheMemcachedObject()
{
    $frontendOpts = array(
        'caching' => true,
        'lifetime' => 3600,
        'automatic_serialization' => true
    );

    $backendOpts = array(
        'servers' =>array(
            array(
            'host'   => 'localhost',
            'port'   => 11211,
            'weight' => 1
            )
        ),
        'compression' => false
    );

    return Zend_Cache::factory('Core', 'Memcached', $frontendOpts, $backendOpts);
}

public function foo($id)
{
    $cache = self::getZendCacheMemcachedObject();
    $cacheKey = 'foo_'.$id;
    $xml = $cache->load($cacheKey);

    if (false === $xml) {
        $xml = $this->httpClient->foo();
        $cache->save($xml, $cacheKey);
    }

    return $xml;
}

Я получаю эту ошибку:

The memcache extension must be loaded for using this backend

Есть идеи?

Ответы [ 3 ]

39 голосов
/ 21 марта 2012

PHP имеет две библиотеки Memcached с непонятными именами:

Ваш код нуждается в первом. Просто сделайте простой pecl uninstall memcached, а затем pecl install memcache, измените ваш php.ini, включив соответствующий .so, и он должен работать.

2 голосов
/ 21 августа 2013

для библиотеки PHP, которую вы установили, похоже, что самым простым решением было бы использовать другой бэкэнд - если ваша версия Zend Framework это позволяет:

Zend_Cache_Backend_Libmemcached (http://doczf.mikaelkael.fr/1.11/en/zend.cache.backends.html)

Я предполагаю, что return Zend_Cache :: factory ('Core', 'Memcached', $ frontendOpts, $ backendOpts); превращается в return Zend_Cache :: factory ('Core', 'Libmemcached', $ frontendOpts, $ backendOpts);

1 голос
/ 21 августа 2014

Я решаю эту проблему довольно просто. Эта проблема возникает из-за того, что вы не установили расширение php memcached. Давайте установим его этой командой в Ubuntu

sudo apt-get install php-memcached

Или в других ОС вы можете сами разобраться

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