2016-07-08 27 views

回答

2

你必须编辑在站点根文件夹中的configuration.php文件,并添加服务器的详细信息。查找缓存可变因素$caching, $cache_handler, $memcache_server_host, $memcache_server_port.

将它们设置如下

public $caching = '2'; 
public $cache_handler = 'memcache'; 
public $memcache_server_host = 'localhost';//Give your memcache server address 
public $memcache_server_port = '11111'; //Memcache server port 

在库/的Joomla /缓存/存储/ memcache.php文件,我发现这个线

 /* 
     * This will be an array of loveliness 
     ***@todo: multiple servers*** 
     * $servers = (isset($params['servers'])) ? $params['servers'] : array(); 
     */ 

当你想要添加两个不同的memcache服务器,您可以看到它仍在开发中。但是有一种方法---通过黑客入侵核心文件。

不要试图下面给出生产环境的方法

虽然这是危险的核心文件的播放,但你可以通过下面的,我现在建议的方法在自己承担风险。先备份备份。取得文件(configuration.php和库/ joomla/cache/storage/memcache.php和libraries \ vendor \ joomla \ session \ Joomla \ Session \ Storage \ Memcache.php)的备份。在该文件中对这个代码的内存缓存文件搜索

$server['host'] = $config->get('memcache_server_host', 'localhost'); 
     $server['port'] = $config->get('memcache_server_port', 11211); 

     // Create the memcache connection 
     self::$_db = new Memcache; 
     self::$_db->addServer($server['host'], $server['port'], $this->_persistent); 

     $memcachetest = @self::$_db->connect($server['host'], $server['port']); 

     if ($memcachetest == false) 
     { 
      throw new RuntimeException('Could not connect to memcache server', 404); 
     } 

添加以下

//Give second server details like this 
$server['host2'] = $config->get('memcache_server_host2', 'localhost'); 
$server['port2'] = $config->get('memcache_server_port2', 11211); 
    // Create the memcache connection 
      self::$_db = new Memcache; 
      self::$_db->addServer($server['host2'], $server['port2'], $this->_persistent); 

      $memcachetest = @self::$_db->connect($server['host2'], $server['port2']); 

      if ($memcachetest == false) 
      { 
       throw new RuntimeException('Could not connect to memcache server', 404); 
      } 

将此代码的configuration.php文件中添加此行

public $memcache_server_host2 = 'localhost';//Give your second memcache server address 
public $memcache_server_port2 = '11111'; //Memcache second server port 

现在用于存储您的会话必须编辑存储会话缓存的文件

在文件库\ vendor \ joomla \ sessio ñ\的Joomla \会议\存储\ Memcache.php你会发现这些线

$this->_servers = array(
      array(
       'host' => isset($options['memcache_server_host']) ? $options['memcache_server_host'] : 'localhost', 
       'port' => isset($options['memcache_server_port']) ? $options['memcache_server_port'] : 11211 
      ) 
     ); 

更改为

$this->_servers = array(
      array(
       'host' => isset($options['memcache_server_host']) ? $options['memcache_server_host'] : 'localhost', 
       'port' => isset($options['memcache_server_port']) ? $options['memcache_server_port'] : 11211 
      ), 
array(
       'host2' => isset($options['memcache_server_host2']) ? $options['memcache_server_host2'] : 'localhost', 
       'port2' => isset($options['memcache_server_port2']) ? $options['memcache_server_port2'] : 11211 
      ) 
     ); 
+0

我有两个内存缓存服务器。我如何定义另一个主机和端口? – James

+0

@詹姆斯我给了一些替代解决方案。希望这可以工作。 –

+0

谢谢。似乎我需要等待来自Joomla的生产就绪代码,因为我需要将它用于生产环境。 – James