Wordpress优化(Memcached)

一、概述

如果仅仅按一般流程安装完Wordpress,而且服务器性能没那么暴力,估计同时支持多人同时访问的压力会比较大,数据库承受不了崩溃之类的……比如试下这个在线性能测试网站(https://www.toolfk.com/tool-online-bench)。最初我尝试了几个缓存插件,但都没明显效果。没办法,只能自己边百度边动手优化了,这里采用Memcached。

二、安装Memcached

简介

Memcached 是一个高性能分布式的内存对象缓存系统, 通常被用于降低数据库加载压力以提高动态 web 应用的响应速度。
官网:http://www.memcached.org

安装服务端

安装

yum -y install memcached

启动

systemctl start memcached

设置开机启动

systemctl enable memcached

安装客户端

安装libmemcached库

yum –y install cyrus-sasl-devel

yum -y install gcc+ gcc-c++

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

tar zxvf libmemcached-1.0.18.tar.gz

cd libmemcached-1.0.18

./configure --with-memcached=/usr/local/memcached --prefix=/usr/local/libmemcached

make && make install

安装php-fpm的memcached扩展

从github获取PHP专用的memcached组件分支:https://github.com/php-memcached-dev/php-memcached/releases

例如:wget https://github.com/php-memcached-dev/php-memcached/archive/v3.1.5.zip

解压:unzip v3.1.5.zip

cd php-memcached-3.1.5

使用安装php时生成的 phpize 来生成 configure 配置文件,注意php的实际路径。

phpize

./configure --with-php-config=/usr/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached

make && make install

编辑PHP配置文件(/etc/php.ini),追加以下代码:

extension=memcached.so

最后重启nginx和php-fpm即可。

systemctl restart nginx

systemctl restart php-fpm

测试缓存

将下面代码保存为 test.php,然后执行 php -f test.php,输出 100 表示安装成功。

<?php
$m = new Memcached();
$m->addServer( '127.0.0.1', 11211 );
$m->set( 'foo', 100 );
echo $m->get( 'foo' ) . "\n";

自动检测 memcached 进程 不存在则重启进程

复制下面代码保存为memcachedcheck.sh文件后,执行 chmod +x memcachedcheck.sh

#!/bin/sh
#check memcached process and restart if down
DATE=`date -d "today" +"%Y-%m-%d-%H:%M"`
MM=`ps aux |grep "memcached" |grep "11211" |grep -v "grep" |wc -l`
#if语句判断进程是否存在,如果不存在,输出日志记录并重启memcached服务
if [ "$MM" == "0" ];
then
    echo "$DATE The memcached is problem and restart" >> /software/memcached_check.logs
    service memcached restart
fi

然后添加至 crontab 计划任务,每隔5分钟检测一次。

crontab -e

*/5 * * * * /root/sh/memcachedcheck.sh

安装 wordpress-pecl-memcached-object-cache 插件

访问:https://github.com/tollmanz/wordpress-pecl-memcached-object-cache

下载解压得到 object-cache.php,上传到 wp-content 目录。

编辑wordpress安装目录下的wp-config.php文件,添加如下代码:

define('ENABLE_CACHE', true);

留下评论