Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何与Joomla一起使用memcached_Php_Mysql_Joomla_Memcached - Fatal编程技术网

Php 如何与Joomla一起使用memcached

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扩展之

如何在Joomla使用memcache?我是这个领域的新手,请描述一下您的答案。

您需要在服务器上安装memcached,并且可能需要root访问权限。您可以从中获取memcached。它需要libevent,可在此处下载:

最后,您需要获得memcache的PHP-PECL扩展。要安装它,您需要转到安装PHP的服务器并运行以下命令:

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;它已经内置了。太棒了,非常感谢你