当前位置

Drupal单服务器设置Memcache缓存

James Qi 在 2014年12月2日 - 15:45 提交
内容摘要:很久前用MediaWiki的使用就听说过Memcache来加速网站,后来用Drupal看一些优化措施中也说到Memcache,但一直没有时间精力去尝试。 前些天把PHP代码缓存的APC模块安装后......

  很久前用MediaWiki的使用就听说过Memcache来加速网站,后来用Drupal看一些优化措施中也说到Memcache,但一直没有时间精力去尝试。

  前些天把PHP代码缓存的APC模块安装后,看统计数据,PHP程序代码的命中率几乎达到100%,服务器负下降还是比较明显的。就干脆一鼓作气,我和同事配合把Memcache也安装测试。

  APC的安装至需要与服务器的PHP环境、模块设置有关,与Drupal程序没有特别的关系,但Memcache除了服务器环境安装以外,还需要对Drupal系统加装模块来利用Memcache,下面就记录一下服务器安装Memcache后,需要对Drupal做的修改:

Drupal 7:

  安装memcache模块;为涉及到的Drupal 7网站安装memcache模块

  修改settings.php:

$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
// The 'cache_form' bin must be assigned no non-volatile storage.
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['memcache_key_prefix'] = 'something_unique';

Drupal 6:

  安装memcache模块;为涉及到的Drupal 6网站安装memcache模块

  修改settings.php:

$conf['cache_inc'] ='sites/all/modules/memcache/memcache.inc';
$conf['memcache_key_prefix'] = 'something_unique';

多站点:

  如果是多个站点在同一台服务器上,需要为每个站点设置各自的memcache_key_prefix,例如读取数据库设置的库名称来作为key:

D7:

$conf['memcache_key_prefix'] = $databases['default']['default']['database'];// 'something_unique';

D6:

$conf['memcache_key_prefix'] = strrev(strtok(strrev($db_url),'/'));// 'something_unique';

  多站点可以逐个修改settings.php文件,也可以在每个settings.php文件结尾加上一句调用sites/common.php,然后以后每次修改common.php就可以了:

require_once(dirname(dirname(__FILE__)).'/common.php');

  如果memcache内存设置不够大,会在管理界面中看到剩余内存在10%左右或者更少,这时可以修改memcached内存大小:vim /etc/sysconfig/memcached,改完后service memcached restart。

 

附参考网址:

 

自由标签: