memcached не работает на codeigniter 2.1.0 - PullRequest
0 голосов
/ 23 января 2012

Я уже некоторое время пытаюсь заставить его работать, но не могу. Я работаю на Windows 7 64bit, у меня есть Memcached Server, работающий как Service, у меня есть расширение php_memcached.dll в PHP 5.3.8, и когда я вызываю его в приложении в Codeigniter, я делаю это правильно (я думаю, ).

$this->load->driver('cache', array('adapter' => 'memcached', 'backup' => 'file'));
var_dump($this->cache->memcached->is_supported());
die();

но выдает ложь, поэтому я не знаю, что делаю неправильно. Когда я называю это так:

$this->load->driver('cache', array('adapter' => 'memcached', 'backup' => 'file'));
$data = $this->cache->memcached->get('data_' . $idData);

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

Fatal error: Call to a member function get() on a non-object in E:\workspace\example\system\libraries\Cache\drivers\Cache_memcached.php on line 50

Спасибо за помощь: -)

Ответы [ 2 ]

1 голос
/ 15 августа 2012

Я знаю, что это старый, но я только что столкнулся с той же проблемой.

В Windows вы должны использовать «Memcache», а не «Memcached».Чтобы сделать это, следуйте инструкциям на этой странице: http://www.leonardaustin.com/technical/how-to-install-memcached-on-xampp-on-windows-7

Затем, чтобы заставить его работать в CI, вам нужно внести два небольших изменения в \ system \ library \ Cache \ drivers \ Cache_memcached.php:

В функции is_supported () заменить:

if ( !extension_loaded('memcached'))

на:

if ( !extension_loaded('memcached') && !extension_loaded('memcache'))

А в функции _setup_memcached () заменить:

$this->memcached = new Memcached();

С:

if(class_exists("Memcached"))
  $this->_memcached = new Memcached();
else
  $this->_memcached = new Memcache();
1 голос
/ 24 января 2012

Драйвер CI ищет модуль Apache, но в WIN мы в основном используем Memcache PHP-класса.

Попробуйте изменить строку 165 в /system/libraries/Cache/drivers/Cache_memcached.php

$this->_memcached = new Memcached();

Для меня это работает после перехода с Memcached на Memcache .

$this->_memcached = new Memcache();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...