Manage cookies that are used for advertising, such as ad personalization, remarketing, and ad effectiveness analysis.
2.14.3.9. Configure Memcache(d) in OpenCart
Memcache(d) configuration process differs in different OpenCart versions.
OpenCart 3.0
- At the end of each of the two configuration files add this code:
// CACHE define('CACHE_HOSTNAME', '/home/example/.system/memcache/socket'); define('CACHE_PORT', '0'); define('CACHE_PREFIX', 'oc_');In line with
CACHE_HOSTNAMEparameter, instead ofexamplespecify hosting account name where site is hosted. - In
system/configdirectory, editdefault.phpfile:- Find the following code block:
// Cache $_['cache_engine'] = 'file'; // apc, file, mem or memcached $_['cache_expire'] = 3600; - In line with
cache_engineparameter, replacefilewithmemcachedso that code block looks as follows:// Cache $_['cache_engine'] = 'memcached'; // apc, file, mem or memcached $_['cache_expire'] = 3600;
- Check the site operation.
OpenCart 2.2-2.3
- At the end of each of the two configuration files add this code:
// CACHE define('CACHE_HOSTNAME', 'unix:///home/example/.system/memcache/socket'); define('CACHE_PORT', '0'); define('CACHE_PREFIX', 'oc_');In line with
CACHE_HOSTNAMEparameter, instead ofexamplespecify hosting account name where site is hosted. - In
system/configdirectory, editdefault.phpfile:- Find the following code block:
// Cache $_['cache_type'] = 'file'; // apc, file or mem $_['cache_expire'] = 3600; - In line with
cache_typeparameter, replacefilewithmemso that code block looks as follows:// Cache $_['cache_type'] = 'mem'; // apc, file or mem $_['cache_expire'] = 3600;
- Check the site operation.
OpenCart 2.0-2.1
- At the end of each of the two configuration files add this code:
// CACHE define('CACHE_HOSTNAME', 'unix:///home/example/.system/memcache/socket'); define('CACHE_PORT', '0'); define('CACHE_PREFIX', 'oc_');In line with
CACHE_HOSTNAMEparameter, instead ofexamplespecify hosting account name where site is hosted. -
- Find the following code block:
// Cache $cache = new Cache('file'); $registry->set('cache', $cache); - In the line with
$cachevariable, replacefilewithmemso that code block looks as follows:// Cache $cache = new Cache('mem'); $registry->set('cache', $cache);
- Check the site operation.
OpenCart 1.5
- At the end of each of the two configuration files add this code:
define('CACHE_DRIVER', 'memcached'); define('MEMCACHE_HOSTNAME', 'unix:///home/example/.system/memcache/socket'); define('MEMCACHE_PORT', '0'); define('MEMCACHE_NAMESPACE', 'opencart_test');In line with
MEMCACHE_HOSTNAMEparameter, instead ofexamplespecify hosting account name where site is hosted. - Replace all content of
system/library/cache.phpwith the following:<?php final class Cache { private $expire; private $memcache; private $ismemcache = false; public function __construct($exp = 3600) { $this->expire = $exp; if (CACHE_DRIVER == 'memcached') { $mc = new Memcache; if ($mc->pconnect(MEMCACHE_HOSTNAME, MEMCACHE_PORT)) { $this->memcache = $mc; $this->ismemcache = true; }; }; $files = glob(DIR_CACHE . 'cache.*'); if ($files) { foreach ($files as $file) { $time = substr(strrchr($file, '.'), 1); if ($time < time()) { if (file_exists($file)) { @unlink($file); } } } } } public function get($key) { if ((CACHE_DRIVER == 'memcached') && $this->ismemcache) { return($this->memcache->get(MEMCACHE_NAMESPACE . $key, 0)); } else { $files = glob(DIR_CACHE . 'cache.' . $key . '.*'); if ($files) { foreach ($files as $file) { $cache = ''; $handle = fopen($file, 'r'); if ($handle) { $cache = fread($handle, filesize($file)); fclose($handle); } return unserialize($cache); } } } } public function set($key, $value) { if ((CACHE_DRIVER == 'memcached') && $this->ismemcache) { $this->memcache->set(MEMCACHE_NAMESPACE . $key, $value, 0, $this->expire); } else { $this->delete($key); $file = DIR_CACHE . 'cache.' . $key . '.' . (time() + $this->expire); $handle = fopen($file, 'w'); fwrite($handle, serialize($value)); fclose($handle); }; } public function delete($key) { if ((CACHE_DRIVER == 'memcached') && $this->ismemcache) { $this->memcache->delete(MEMCACHE_NAMESPACE . $key); } else { $files = glob(DIR_CACHE . 'cache.' . $key . '.*'); if ($files) { foreach ($files as $file) { if (file_exists($file)) { @unlink($file); clearstatcache(); } } } } } } ?> - Check the site operation.