2016-07-08 81 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