如何在Joomla中使用memcache?我是这个领域的新手,所以请描述你的答案.
您需要在服务器上安装memcached,并且可能需要root访问才能执行此操作.您可以从http://www.danga.com/memcached/获取memcached .它需要libevent,可以在这里下载:http://www.monkey.org/~provos/libevent/
最后,您需要获取memcache的PHP PECL扩展.要安装它,您需要转到安装PHP的服务器并运行以下命令:
pecl install memcache
同样,您很可能需要对服务器进行root访问才能执行此操作.安装libevent,memcached和PECL扩展后,转到Joomla中的全局配置并选择Memory Cache
缓存设置下的缓存处理程序.保存全局配置后,再次打开它,并且缓存处理程序输入下方应显示更多输入.将Memory Chache Server设置为localhost
,将端口设置为11211
.这应该与您用于从命令行运行的参数相匹配memcached
.
编辑:你也可以使用XCache以类似于Memcache的方式存储数据,但它也将缓存PHP生成的操作码.这样,它不是每次从磁盘读取PHP代码并解析它,而是将代码保存在内存中以供下一个请求使用.
务必XCache
在全局配置中选择缓存处理程序.有关安装XCache的信息,请阅读此内容:http://xcache.lighttpd.net/wiki/InstallFromSource
为了使Joomla使用memcache进行会话缓存,您需要手动编辑configuration.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";}}}';
这是一个序列化的multy-dimentianal数组.我用这段代码生成上面的字符串:
$a = array( "persistent" => "0", "compression" => "0", "servers" => array( "0" => array( "host" => "127.0.0.1", "port" => "11211") ) ); echo(serialize($a));
如果不添加memcache_settings选项,则会话将永远不会与memcache一起使用.