Как использовать memcached с Joomla

Как я могу использовать memcache в Joomla? Я новичок в этой области, поэтому, пожалуйста, будьте описательны с вашим ответом.

5 ответов


вам нужно будет установить memcached на вашем сервере и, вероятно, потребуется root-доступ для этого. Вы можете получить memcached отhttp://www.danga.com/memcached/. Для этого требуется libevent, который можно скачать здесь:http://www.monkey.org / ~provos / libevent/

наконец, вам нужно будет получить расширение PHP PECL для memcache. Чтобы установить это, нужно зайти на сервер, где установлен PHP и запустить эту команду:

pecl install memcache

снова, вы, скорее всего, понадобится root доступ к серверу для этого. После установки расширений libevent, memcached и PECL перейдите в глобальную конфигурацию в Joomla и выберите Memory Cache как обработчик кэша в разделе Параметры кэша. После сохранения глобальной конфигурации откройте ее снова, и под входом обработчика кэша должно появиться больше входных данных. Установите сервер памяти Chache в localhost и порт 11211. Это должно соответствовать параметрам, которые вы используете для запуска memcached из командной линия.

EDIT: вы также можете использовать XCache не только для хранения данных так же, как Memcache, но и для кэширования кода операции, созданного PHP. Таким образом, вместо чтения кода PHP с диска и разбора его каждый раз, он будет держать код в памяти для следующего запроса.

выберите XCache как обработчик кэша в глобальной конфигурации. Прочитайте эту информацию по установке XCache в: http://xcache.lighttpd.net/wiki/InstallFromSource


чтобы сделать Joomla использовать memcache для кэширования сеанса, вам нужно вручную отредактировать конфигурацию.PHP и измените эту строку:

public $session_handler = 'database';

для этого:

public $session_handler = 'memcache';

и это то, что отсутствует везде, вам нужно добавить новую опцию memcache_settings:

  public $memcache_settings = 'a:3:{s:10:"persistent";s:1:"0";s:11:"compression";s:1:"0";s:7:"servers";a:1:{i:0;a:2:{s:4:"host";s:9:"127.0.0.1";s:4:"port";s:5:"11211";}}}';

это сериализованный многодиментный массив. Я использую этот код для создания вышеуказанной строки:

 $a = array(
   "persistent" => "0", 
   "compression" => "0", 
   "servers" => array(
     "0" => array(
       "host" => "127.0.0.1", "port" => "11211")
     )
   );

echo(serialize($a));

если вы не добавляете параметр memcache_settings, ваш сеансы никогда не будут работать с memcache.


эти параметры в configuration.php работы на memcached в Joomla 3.3+

public $cache_handler = 'memcached';
public $memcached_server_host = '127.0.0.1';
public $memcached_server_port = '11211';
public $memcached_persist = '1';
public $memcached_compress = '1';
public $cachetime = '15';
public $session_handler = 'memcached';
public $session_memcached_server_host = '127.0.0.1';
public $session_memcached_server_port = '11211';

установить memcached в системе Debian:

apt-get install memcached php5-memcached

(вы также можете использовать memcache вместо каждого появления memcached выше public переменные и установить старые


Это как также может предложить некоторую помощь для Joomla 2.5, поскольку он указывает на экран администратора Joomla для использования memcache http://www.siteground.com/tutorials/supercacher/joomla_memcached.htm


лучше Не использовать APC для бэкэнд-кэша. Это может вызвать большую фрагментацию. Я только видел, как это ухудшало производительность Joomla.