搜索
首页数据库mysql教程[原创]使用memcached为WordPress站点提速

转载请注明出处: http://www.codelast.com/ 本文的前提条件:你对你的WordPress站点服务器有控制权,例如,你使用的是VPS搭建的WordPress站点,而不是虚拟主机。如果不符合条件就不用往下看了,因为后面的很多操作是需要root权限来安装、配置软件的。另外,

转载请注明出处:http://www.codelast.com/

本文的前提条件:你对你的WordPress站点服务器有控制权,例如,你使用的是VPS搭建的WordPress站点,而不是虚拟主机。如果不符合条件就不用往下看了,因为后面的很多操作是需要root权限来安装、配置软件的。另外,我使用的是32位的Linux系统,如果你是64位的系统,可能有些许不一样,或者出现一些文中没有遇到的问题,请注意。

首先说一下使用memcached为WordPress站点提速的意义。由于我不是做前端开发的,所以下面的部分内容说的不一定正确、深刻,您就凑合着看吧。
如果你的WordPress站点访问量很大,那么VPS负载可能就很高,而这其中,可能有很大一部分就是MySQL的负载——它要将大量内容读取出来,并返回给访客。其实这部分工作可以通过缓存来提高性能,memcached就是这样一个软件,可以帮助我们实现这一点。

memcached的官方网站介绍中,我们知道它是:

Free & open source, high-performance, distributed memory object caching system.

说得直白简单一点,它就是把最常访问的那些内容缓存在内存中,有新访客到来的时候,先从内存中找,找到了就直接返回,否则再去查数据库,这样就极大地提高了性能。
有人可能会使用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.net/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”:

WordPress memcached menu

点击“Edit servers”,如下图所示的默认server:

WordPress memcached manager add server

然后再回到“Memcached”菜单,就可以看到下拉列表中多出了一项,即我们刚添加的server,点击“Manage Server”,就会看到关于memcached的一些统计信息啦:

WordPress memcached manager manage server

这下踏实了,我们知道memcached确实在工作了,并且hit和miss的数据都知道了。
文章来源:http://www.codelast.com/
【6】进一步优化
有一个叫做Batcache的WordPress插件,能为我们上面的工作锦上添花,建议在WordPress后台安装它(不需要配置)。它的原理是:
在没有Batcache、有memcached的情况下,访问WordPress页面时,需要从内存中获取多个缓存对象,而Batcache可以把整个页面作为一个对象缓存,从而从内存中只需要获取一个缓存对象,这样就提高了速度。

至此,我们整个安装、配置memcached的过程就结束了,在访问量很大的时候,你的WordPress站点的性能一定会得到质的提升。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何在Go中使用命名管道?如何在Go中使用命名管道?May 11, 2023 pm 04:22 PM

命名管道是一种在操作系统中相对比较低级的进程通信方式,它是一种以文件为中介的进程通信方式。在Go语言中,通过os包提供了对命名管道的支持。在本文中,我们将介绍如何在Go中使用命名管道来实现进程间通信。一、命名管道的概念命名管道是一种特殊的文件,可以被多个进程同时访问。在Linux系统中,命名管道是一种特殊的文件类型,它们存在于文件系统的某个位置上,并且可以在

如何在Go中使用第三方库?如何在Go中使用第三方库?May 11, 2023 pm 03:30 PM

在Go语言中,使用第三方库是非常方便的。许多优秀的第三方库和框架可以帮助我们快速地开发应用程序,同时也减少了我们自己编写代码的工作量。但是如何正确地使用第三方库,确保其稳定性和可靠性,是我们必须了解的一个问题。本文将从以下几个方面介绍如何使用第三方库,并结合具体例子进行讲解。一、第三方库的获取Go语言中获取第三方库有以下两种方式:1.使用goget命令首先

如何在PHP中使用协程?如何在PHP中使用协程?May 12, 2023 am 08:10 AM

随着传统的多线程模型在高并发场景下的性能瓶颈,协程成为了PHP编程领域的热门话题。协程是一种轻量级的线程,能够在单线程中实现多任务的并发执行。在PHP的语言生态中,协程得到了广泛的应用,比如Swoole、Workerman等框架就提供了对协程的支持。那么,如何在PHP中使用协程呢?本文将介绍一些基本的使用方法以及常见的注意事项,帮助读者了解协程的运作原理,以

如何在Go中使用音频处理?如何在Go中使用音频处理?May 11, 2023 pm 04:37 PM

随着音频处理在各种应用场景中的普及,越来越多的程序员开始使用Go编写音频处理程序。Go语言作为一种现代化的编程语言,具有优秀的并发性和高效率的特点,使用它进行音频处理十分方便。本文将介绍如何在Go中使用音频处理技术,包括读取、写入、处理和分析音频数据等方面的内容。一、读取音频数据在Go中读取音频数据有多种方式。其中比较常用的是使用第三方库进行读取,比如go-

如何在 Windows 11 中按需使用 OneDrive 的文件如何在 Windows 11 中按需使用 OneDrive 的文件Apr 14, 2023 pm 12:34 PM

<p>Windows 系统上的 OneDrive 应用程序允许您将文件存储在高达 5 GB 的云上。OneDrive 应用程序中还有另一个功能,它允许用户选择一个选项,是将文件保留在系统空间上还是在线提供,而不占用您的系统存储空间。此功能称为按需文件。在这篇文章中,我们进一步探索了此功能,并解释了有关如何在 Windows 11 电脑上的 OneDrive 中按需使用文件的各种选项。</p><h2>如何使用 On

如何在Go中使用嵌套结构?如何在Go中使用嵌套结构?May 11, 2023 pm 04:39 PM

在Go语言中,嵌套结构是一种非常常见的技术。通过将一个结构体嵌入到另一个结构体中,我们可以将复杂的数据模型分解成更小的部分,使其易于理解和维护。本篇文章将介绍如何在Go中使用嵌套结构以及一些最佳实践。一、定义嵌套结构首先,我们需要定义一个包含嵌套结构的结构体。下面的代码演示了如何定义一个包含Person结构体的Company结构体:typePersons

如何在Go中使用WebSocket?如何在Go中使用WebSocket?May 11, 2023 pm 04:17 PM

近年来,WebSocket技术已经成为了Web开发中不可或缺的一部分。WebSocket是一种在单个TCP连接上进行全双工通信的协议,它使得客户端和服务器之间的通信更加流畅和高效。如今,很多现代的Web应用程序都使用了WebSocket技术,例如实时聊天、在线游戏以及实时数据可视化等。Go语言作为一个现代的编程语言,自然也提供了很好的支持WebSock

如何在Go中使用反转依赖?如何在Go中使用反转依赖?May 11, 2023 pm 03:39 PM

Go语言中的反转依赖是一种非常实用的技术,它可以帮助开发者更好地进行软件开发。在本文中,我们将详细介绍什么是反转依赖,并且演示如何在Go语言中使用它来优化软件。一、什么是反转依赖在传统的软件开发中,模块之间存在着依赖关系。一些模块被其他模块所依赖,而另一些模块则依赖于其他模块。这种依赖关系在软件中非常普遍,但同时也会带来很多问题。一旦一个模块的代码发生了变化

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境