发布网友 发布时间:2022-04-14 07:51
共2个回答
懂视网 时间:2022-04-14 12:12
说得直白简单一点,它就是把最常访问的那些内容缓存在内存中,有新访客到来的时候,先从内存中找,找到了就直接返回,否则再去查数据库,这样就极大地提高了性能。
有人可能会使用WP Super Cache这个WordPress插件来为WP提速(而且它的效果似乎更好),但此插件会生成大量缓存文件,占用大量磁盘空间,从而影响WordPress备份文件的大小,这对我来说并不是一个好结果,因此,我没有用它。
文章来源:http://www.codelast.com/
那么,在WordPress中,我们怎么使用memcached呢?这不是仅仅安装memcached软件就可以做到的,还要和PHP结合起来,所以涉及到好几个部分,下面分别阐述:
【1】安装memcached
首先我们要从memcached的官方网站下载一个稳定版,例如,我下载的是 1.4.15 版,然后准备安装它。
但是memcached的根基是一个网络开发库 libevent,所以,你要先安装 libevent。我下载的是 2.0.21(稳定版),解压出来,然后编译安装:
./configure --prefix=/usr/local/libevent make make install
注意我安装到了 /usr/local/libevent 目录下。
然后编译安装memcached:
./configure --with-libevent=/usr/local/libevent/ --prefix=/usr/local/memcached make make install
注意我指定了libevent的安装目录,并且把memcached安装到了 /usr/local/memcached 目录下。
文章来源:http://www.codelast.com/
【2】启动memcached
安装了memcached软件之后,我们就要启动它了:
cd /usr/local/memcached/bin/ ./memcached -d -m 256 -u root -t 64 -r
-d 表示以守护进程的方式启动memcached程序,-m 256 表示最大可使用256M的内存,-u root 我不太明白有什么用(网上的某些教程里有这样用的),-t 64 表示使用64个线程,-r 表示最大化core文件的限制。
这样启动之后,memcached就开始在默认端口 11211 上监听了。
现在再看看进程中是否已经有了memcached:
[root@localhost]# ps -ef | grep memcached root 2180 1 0 22:29 ? 00:00:00 ./memcached -d -m 256 -u root -t 64 -r
最后再把它加入开机启动项,编辑 /etc/rc.local 文件,添加一句:
/usr/local/memcached/bin/memcached -d -m 256 -u root -t 64 -r
文章来源:http://www.codelast.com/
【3】安装PHP的memcached扩展
为了能让WordPress用上我们刚安装的memcached,需要先为PHP安装一个memcached扩展。
到这个页面去下载一个稳定版的memcached扩展,例如,我下载的是2.2.7版,然后解压:
wget http://pecl.php.com/get/memcache-2.2.7.tgz tar zxf memcache-2.2.7.tgz cd memcache-2.2.7
如果你没这样装过PHP扩展的话,你会很奇怪地发现,解压出来的目录下竟然没有 configure 文件!没有 configure 文件如何能生成Makefile,如何能编译安装呢?
这个时候,我们需要用PHP安装时附带的 phpize 程序来帮助我们生成configure:
cd memcache-2.2.7 /usr/local/php/bin/phpize
注意,我的PHP是安装在 /usr/local/php 目录下的,如果你的目录不同,请作相应的修改。顺利的话,就会发现生成了configure文件;如果遇到了以下错误:
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
文章来源:http://www.codelast.com/
那么,就需要安装以下两个package(如果是Ubuntu,就apt-get install,这里就不废话了):
yum install m4 yum install autoconf
然后再重新执行phpize命令,再编译安装:
make make install
会提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
然后修改你的php.ini配置文件,在最后添加:
[memcache] extension=memcache.so
最后重启你的web service,如果你用的是nginx,那么需要重启 php-fpm 和 nginx:
/etc/init.d/php-fpm restart /etc/init.d/nginx restart
文章来源:http://www.codelast.com/
【4】安装、配置WordPress的memcached插件
上面的步骤已经够麻烦了,但是到了这一步,你就快成功了。
在WordPress后台的插件安装页面中,搜索“memcached”,会找到“Memcached Object Cache”插件,安装之,然后这里要注意了,与平常安装插件不一样的是,安装完这个插件之后,不要“启用”它,否则会报错。
我们需要手工把安装插件得到的 object-cache.php 文件拷贝到WordPress的 wp-content 目录下,它就可以开始工作了(有点奇怪吧):
cp wp-content/plugins/memcached/object-cache.php wp-content/
然后memcached就开始为你的WordPress默默地“做奉献”了,尽管你看不到它。如果你不想再管它,那么到这一步就可以收手了,不过,你可能还想知道它工作得怎么样,那么你就要继续看下去。
文章来源:http://www.codelast.com/
【5】安装memcached的管理插件
同样在WordPress的插件安装界面中搜索“WP Memcached Manager”,安装此插件,启用它,即可在WordPress管理后台的左侧菜单中,看到多出了一项“Memcached”:
点击“Edit servers”,如下图所示的默认server:
然后再回到“Memcached”菜单,就可以看到下拉列表中多出了一项,即我们刚添加的server,点击“Manage Server”,就会看到关于memcached的一些统计信息啦:
这下踏实了,我们知道memcached确实在工作了,并且hit和miss的数据都知道了。
文章来源:http://www.codelast.com/
【6】进一步优化
有一个叫做Batcache的WordPress插件,能为我们上面的工作锦上添花,建议在WordPress后台安装它(不需要配置)。它的原理是:
在没有Batcache、有memcached的情况下,访问WordPress页面时,需要从内存中获取多个缓存对象,而Batcache可以把整个页面作为一个对象缓存,从而从内存中只需要获取一个缓存对象,这样就提高了速度。
至此,我们整个安装、配置memcached的过程就结束了,在访问量很大的时候,你的WordPress站点的性能一定会得到质的提升。
原文地址:[原创]使用memcached为WordPress站点提速, 感谢原作者分享。
热心网友 时间:2022-04-14 09:20
在CentOS 7系统里搭建好LAMP环境后,就可以安装网站程序了,以最流行了Wordpess为例。为了加快网站的访问速度,除了花钱买更好的硬件设施外。我们可以通过优化网站的程序、主题。为服务器开启缓存功能,为网站提速。我们知道,互联网上缓存为王。 1/pub/Releases/3/get/memcache-3/plugin/memcached.2.0.2.zip unzip memcached.2.0.2.zip cd memcached.2.0.2 复制 object-cache.php 到网站根目录 wp-content文件夹内,wordpress会自动调用缓存。 重启服务器: sytemctl restart memcached sytemctl restart httpd 3.开启Gzip压缩。 apache2.4版本默认添加了gzip模块,我们要同时开启deflate模块,压缩网页文件,提高服务器浏览速度。 vim /etc/httpd/conf/httpd.conf 在最后加入如下几行: DeflateCompressionLevel 9 AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php AddOutputFilter DEFLATE css js 重新启动http服务:systemctl restart httpd