Как использовать 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.