WordPress安装Memcached缓存加速2017版
最简单方法,服务器安装宝塔面板,安装相应php组件。下文是手动设置,不建议使用。
系统环境:centos7;php7.0 xampp
借鉴:张戈博客https://zhangge.net/5097.html
借鉴:我爱水煮鱼http://blog.wpjam.com/m/wordpress-memcached/
本次是安装Memcached
1、安装wp插件memcached-is-your-friend
2、#Centos直接使用yum安装即可,其他系统自行搜索安装命令,比如ubuntu
yum -y install memcached
#启动memcached
service memcached start
#开机启动
chkconfig memcached on
3、#从github下载PHP7专用的memcached组件分支
wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip
#解压备用
unzip php7.zip cd php-memcached-php7
4、
/opt/lampp/bin/phpize ./configure--with-php-config=/opt/lampp/bin//php-config
make&&make install
5、
编辑php.ini文件,不知道位置的话需要查找(find / -name "php.ini"),在最后插入如下参数
extension=memcached.so
6。查看服务状态
php -m | grep memcached
7、查看网站效果
你可以去网站前台刷新几次,产生缓存,然后从官方下载探针:
http://pecl.php.net/get/memcache-3.0.8.tgz
解压(tar -zxvf memcache-3.0.8.tgz)后,里面有一个memcache.php文件,编辑并找到如下代码:
PHP define('ADMIN_USERNAME','memcache'); // Admin Username define('ADMIN_PASSWORD','password'); // Admin Password define('DATE_FORMAT','Y/m/d H:i:s'); define('GRAPH_SIZE',200); define('MAX_ITEM_DUMP',50); $MEMCACHE_SERVERS[] = 'mymemcache-server1:11211'; // add more as an array $MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
修改如下:
PHP define('ADMIN_USERNAME','memcache'); // Admin Username 登录名称,自行修改 define('ADMIN_PASSWORD','password'); // Admin Password 登录密码,自行修改 define('DATE_FORMAT','Y/m/d H:i:s'); define('GRAPH_SIZE',200); define('MAX_ITEM_DUMP',50); //下面是定义memcached服务器,一般我们是单机部署,所以注释掉一行,并将服务器地址根据实际修改,比如本文是127.0.0.1 $MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // add more as an array //$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
上传到网站私密目录(临时测试可以放到根目录),然后通过前台访问memcache.php这个文件,输入上面的用户名和密码即可看到memcached状态:
8、在wp后台【工具】选项的memcache可以查看文字版缓存信息,我觉得还是第7步的方法显示地形象一些,带圆饼图。
9、如果发现页面可以打开,但是里面没有Hits数据,说明WordPress并没有成功连接到memcached,这时候我们可以在wp-config.php最后面加入如下参数:
global $memcached_servers; $memcached_servers = array( array( '127.0.0.1', // Memcached server IP address 11211 // Memcached server port ) );
10、
实际上memcached可以缓存动态查询数据,他也可以缓存html内容!因此,memcached也能实现和其他方案一样的html纯净态缓存!
实现原理和我之前分享的php代码缓存html方案类似,不过后者更好的是将缓存内容放在了内存当中,速度比放硬盘快的绝对不是一点点。
如何将前台页面html都缓存到memcached中呢?这里,我们需要用到 batcache 这款插件。
A、WordPress后台搜索安装 batcache
B、将插件文件夹里的 advanced-cache.php 复制到wp-content即可
C、然启用缓存
在wp-config.php中启用缓存:
define('WP_CACHE', true);
不过,插件默认只会对游客缓存,显然也是怕影响到前台登录态。缓存和动态判断一直是矛与盾、鱼和熊掌,看个人抉择吧。
11、
参数调整
var $max_age = 3600; // Expire batcache items aged this many seconds (zero to disable batcache) var $remote = 0; // Zero disables sending buffers to remote datacenters (req/sec is never sent) var $times = 2; // Only batcache a page after it is accessed this many times... (two or more) var $seconds = 0; // ...in this many seconds (zero to ignore this and use batcache immediately)
max_age代表缓存过期时间(以秒为单位),times表示访问多少次才创建缓存(2是最小值),seconds表示在多少秒之后才创建缓存(0表示立即)。
我目前也只是要用到memcache的动态缓存,所以对于batcache也只是初步了解状态,感兴趣的朋友可以自行搜索学习更多相关设置。