2016-07-08 3 views

Antwort

2

Sie haben die configuration.php Datei auf dem Stammordner bearbeiten und die Server-Details hinzufügen. Finden Sie die Cache-Zugriffe auf Variablen $caching, $cache_handler, $memcache_server_host, $memcache_server_port.

sie setzen als

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 

In der Bibliotheken folgt/joomla/cache/storage/memcache.php Datei fand ich diese Zeilen

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

Wie Sie wollten Um zwei verschiedene Memcache-Server hinzuzufügen, können Sie sehen, dass es sich noch in der Entwicklung befindet. Aber es gibt einen Weg --- Durch das Hacken von Kerndateien.

nicht den angewandten Methoden VERSUCHEN UNTER IN UMWELT PRODUKTIONS

Obwohl es gefährlich ist, mit Core-Dateien zu spielen, aber Sie können, indem Sie die Methode, die ich vorschlagen, wird nun auf eigene Gefahr tun. nehmen Sie zuerst Backup.

Erstellen Sie eine Sicherungskopie der Dateien (configuration.php und libraries/joomla/cache/storage/memcache.php und libraries \ vendor \ joomla \ session \ Joomla \ Session \ Storage \ Memcache.php). In der memcache Datei nach diesem Code in der Datei

$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); 
     } 

Fügen Sie diesen Code unter

//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); 
      } 

in der configuration.php Fügen Sie diese Zeilen

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

Jetzt zum Speichern von Sitzungen, die Sie müssen Dateien bearbeiten, die Sitzung Cache speichert

In den Dateibibliotheken \ Vendor \ Joomla \ Sessio Joomla \ Session \ Storage \ n \ Memcache.php Sie diese Zeile finden

$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 
      ) 
     ); 

Ändern Sie diese zu

$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

ich zwei memcache Server. Wie definiere ich einen anderen Host und Port? – James

+0

@James Ich habe eine alternative Lösung gegeben. Hoffe, das funktioniert. –

+0

danke. Scheint so, als müsste ich auf den produktionsfertigen Code von Joomla warten, da ich ihn für die Produktionsumgebung verwenden muss. – James

Verwandte Themen