搜尋
首頁資料庫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
MySQL的角色:Web應用程序中的數據庫MySQL的角色:Web應用程序中的數據庫Apr 17, 2025 am 12:23 AM

MySQL在Web應用中的主要作用是存儲和管理數據。 1.MySQL高效處理用戶信息、產品目錄和交易記錄等數據。 2.通過SQL查詢,開發者能從數據庫提取信息生成動態內容。 3.MySQL基於客戶端-服務器模型工作,確保查詢速度可接受。

mysql:構建您的第一個數據庫mysql:構建您的第一個數據庫Apr 17, 2025 am 12:22 AM

構建MySQL數據庫的步驟包括:1.創建數據庫和表,2.插入數據,3.進行查詢。首先,使用CREATEDATABASE和CREATETABLE語句創建數據庫和表,然後用INSERTINTO語句插入數據,最後用SELECT語句查詢數據。

MySQL:一種對數據存儲的初學者友好方法MySQL:一種對數據存儲的初學者友好方法Apr 17, 2025 am 12:21 AM

MySQL適合初學者,因為它易用且功能強大。 1.MySQL是關係型數據庫,使用SQL進行CRUD操作。 2.安裝簡單,需配置root用戶密碼。 3.使用INSERT、UPDATE、DELETE、SELECT進行數據操作。 4.複雜查詢可使用ORDERBY、WHERE和JOIN。 5.調試需檢查語法,使用EXPLAIN分析查詢。 6.優化建議包括使用索引、選擇合適數據類型和良好編程習慣。

MySQL初學者友好嗎?評估學習曲線MySQL初學者友好嗎?評估學習曲線Apr 17, 2025 am 12:19 AM

MySQL適合初學者,因為:1)易於安裝和配置,2)有豐富的學習資源,3)SQL語法直觀,4)工具支持強大。儘管如此,初學者需克服數據庫設計、查詢優化、安全管理和數據備份等挑戰。

SQL是一種編程語言嗎?澄清術語SQL是一種編程語言嗎?澄清術語Apr 17, 2025 am 12:17 AM

是的,sqlisaprogramminglanguges pecialized fordatamanage.1)它具有焦點,focusingonwhattoachieveratherthanhow.2)sqlisessential forquerying forquerying,插入,更新,更新,和detletingdatainrelationalDatabases.3)

解釋酸的特性(原子,一致性,隔離,耐用性)。解釋酸的特性(原子,一致性,隔離,耐用性)。Apr 16, 2025 am 12:20 AM

ACID屬性包括原子性、一致性、隔離性和持久性,是數據庫設計的基石。 1.原子性確保事務要么完全成功,要么完全失敗。 2.一致性保證數據庫在事務前後保持一致狀態。 3.隔離性確保事務之間互不干擾。 4.持久性確保事務提交後數據永久保存。

MySQL:數據庫管理系統與編程語言MySQL:數據庫管理系統與編程語言Apr 16, 2025 am 12:19 AM

MySQL既是數據庫管理系統(DBMS),也與編程語言緊密相關。 1)作為DBMS,MySQL用於存儲、組織和檢索數據,優化索引可提高查詢性能。 2)通過SQL與編程語言結合,嵌入在如Python中,使用ORM工具如SQLAlchemy可簡化操作。 3)性能優化包括索引、查詢、緩存、分庫分錶和事務管理。

mySQL:使用SQL命令管理數據mySQL:使用SQL命令管理數據Apr 16, 2025 am 12:19 AM

MySQL使用SQL命令管理數據。 1.基本命令包括SELECT、INSERT、UPDATE和DELETE。 2.高級用法涉及JOIN、子查詢和聚合函數。 3.常見錯誤有語法、邏輯和性能問題。 4.優化技巧包括使用索引、避免SELECT*和使用LIMIT。

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.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境