PHP7安装Memcache+Memcached缓存加速WordPress教程

PHP7最显著的变化就是性能的极大提升,已接近Facebook开发的PHP执行引擎HHVM。Memcache是高性能、分配的内存对象缓存系统,可以加速动态web应用程序,减轻数据库负载。Memcache简单的设计促进迅速部署,易于发展所面临的问题,解决了大型数据的缓存。

Memcache是该系统的项目名称,Memcached是该系统的主程序文件(字母d可以理解为daemon),以守护程序方式运行于服务器中,随时接受客户端的连接操作,使用共享内存存取数据。

1、编译Memcache (原生的Memcache 3.08版无法在PHP7下编译,故选用Github的pecl-memcache分支版本。)

https://github.com/websupport-sk/pecl-memcache/archive/php7.zip  # FTP上传
cd pecl-memcache
export PHP_PREFIX="/usr/local"
$PHP_PREFIX/php70/bin/phpize
./configure --with-php-config=$PHP_PREFIX/php70/bin/php-config
make && make install

2、修改php.ini文件,加载Memcache组件。

[memcache]
extension_dir = "/usr/local/php70/lib/php/extensions/no-debug-non-zts-20151012/"
extension = "memcache.so"

DirectAdmin中php.ini的文件位置:

/usr/local/lib/php.ini    # 默认的PHP版本。
/usr/local/php70/lib/php.ini    # 以FASTCGI模式运行PHP7。

3、重启Apache

service httpd restart

4、配置Memcached的步骤,首先安装Libevent事件触发管理器。

wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar vxf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure -prefix=/usr/local/libevent    # ./configure
make && make install
yum install libevent-devel  # Centos可以直接运行安装。

5、编译Memcached

wget http://memcached.org/files/memcached-1.4.25.tar.gz
tar vxf memcached-1.4.25.tar.gz
cd memcached-1.4.25
./configure -with-libevent=/usr/local/libevent   # ./configure
make && make install

6、启动Memcached

/usr/local/bin/memcached -d -m 128 -l 127.0.0.1 -p 11211 -u root   # (128为内存, 11211为端口,root为用户组)

开机/重启后生效,编辑 /etc/rc.d/rc.local 文件,添加以下内容。
/usr/local/bin/memcached -d -m 128 -l 127.0.0.1 -p 11211 -u root

7、查看是否生效。

ps aux|grep memcached

如提示以下信息,则已生效。

root 2219 0.0 2.4 71608 25396 ? Ssl 05:38 0:01 /usr/local/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root
root 13583 0.0 0.0 4476 732 pts/0 S+ 07:47 0:00 grep memcached

8、Wordpress开启Memcached缓存。
(1)插件:Memcached Object Cache
(2)解压插件文件,FTP上传文件object-cache.php 到 wp-content目录。

WordPress 默认支持 Object Cache,所以在 WordPress 实现 Memcached 就是使用 Memcached 把 WordPress 的 Object Cache 写到内存中下次直接从内存中读取。