Php 如何与Joomla一起使用memcached
如何在Joomla使用memcache?我是这个领域的新手,请描述一下您的答案。您需要在服务器上安装memcached,并且可能需要root访问权限。您可以从中获取memcached。它需要libevent,可在此处下载: 最后,您需要获得memcache的PHP-PECL扩展。要安装它,您需要转到安装PHP的服务器并运行以下命令:Php 如何与Joomla一起使用memcached,php,mysql,joomla,memcached,Php,Mysql,Joomla,Memcached,如何在Joomla使用memcache?我是这个领域的新手,请描述一下您的答案。您需要在服务器上安装memcached,并且可能需要root访问权限。您可以从中获取memcached。它需要libevent,可在此处下载: 最后,您需要获得memcache的PHP-PECL扩展。要安装它,您需要转到安装PHP的服务器并运行以下命令: pecl install memcache 同样,要做到这一点,您很可能需要对服务器进行root访问。在安装了libevent、memcached和PECL扩展之
pecl install memcache
同样,要做到这一点,您很可能需要对服务器进行root访问。在安装了libevent、memcached和PECL扩展之后,转到Joomla中的全局配置,并选择Memory Cache
作为缓存设置下的缓存处理程序。保存全局配置后,再次打开它,缓存处理程序输入下面会显示更多输入。将内存缓存服务器设置为localhost
,将端口设置为11211
。这应该与用于从命令行运行memcached
的参数相匹配
编辑:您不仅可以使用XCache以类似于Memcache的方式存储数据,还可以缓存PHP生成的操作码。这样,它就不会每次都从磁盘读取PHP代码并对其进行解析,而是将代码保存在内存中以供下一个请求使用
确保在全局配置中选择
XCache
作为缓存处理程序。阅读此文了解有关安装XCache的信息:为了让Joomla使用memcache进行会话缓存,您需要手动编辑configuration.php并更改此行:
public $session_handler = 'database';
对于这一点:
public $session_handler = 'memcache';
这就是到处缺少的内容,您需要添加一个新选项memcache\u 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\u设置选项,您的会话将永远无法使用memcache。本指南还可能为Joomla 2.5提供一些帮助,因为它指向Joomla管理屏幕以使用memcache配置中的这些设置。php适用于Joomla 3.3中的
memcached
+
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';
要在Debian系统上安装memcached
:
apt-get install memcached php5-memcached
(您也可以在上述public
变量中使用memcache
代替每次出现的memcache
,并安装较旧的php5 memcache
扩展)
升级到php5.5
将为您提供一个内置的缓存,如果您不需要分布式内存缓存(memcached
),它可以与(APCu是操作码缓存已删除的情况下的)一起使用,以在本地缓存用户区
对于单个VPS,它的内存占用较低,是一个更合适的缓存(尤其是使用php5.5
),并且可以在configuration.php
中设置:
public $cache_handler = 'apc';
public $session_handler = 'apc';
最好不要在后端缓存中使用APC。这会导致大量碎片。我只看到它降低了Joomla的性能。你需要memcached吗?出于这个原因,使用memcached的网站通常应该远离Joomla或任何盒装CMS。原因可能是为了实现memcached,您必须更改源php代码(有时可能会大幅更改)。Joomla(或任何其他盒装CMS)是为那些宁愿设计模板而不愿更改源代码的人设计的。此外,你真的不应该改变Joomla的核心php,因为这将是一个相当大的黑客攻击,你将有问题在未来更新,这将使你的网站非常容易黑客。只有当您有集群时才使用memchached。@Andre Joomla的核心有一个缓存层,实现memcached、XCache和平面文件缓存等。Joomla框架有一个缓存类,您可以在其中发送一个键值对,然后它根据在配置中选择的驱动程序处理缓存。绝对没有必要让Joomla添加memcached;它已经内置了。太棒了,非常感谢你