基于WordPress网站的优化
发布时间:2011-05-12 14:26:00
【WordPress(或者说任何一个web-based app)可以参考的优化策略】
单服务器优化策略:
DB优化;缓存优化和页面加载速度优化(压缩等);
多服务器优化策略:
DB读写分离;Web server负载均衡;Offloading(将static files, feed等保存到独立的服务器上);
附:WordPress官网介绍的针对不同服务器硬件的优化策略:(shared hosting, virtual/dedicated server, multiple servers)
http://codex.wordpress.org/WordPress_Optimization
http://codex.wordpress.org/WordPress_Optimization/Cheat_Sheet
如下主要介绍对WordPress站点的优化:
【A: 缓存优化】
为什么需要caching?
对于一个站点,如果不caching,每个用户的请求都需要执行相同的server side process:编译和解释执行php脚本,复杂的算法逻辑,数据库或其他IO读写,将转换的HTML返回给浏览器展示。
caching之后,可以保存如上各个步骤的中间结果避免重复计算或获取,例如:
1、采用db/io caching则db/io的结果可以直接获取,介绍db/io操作;
2、缓存算法部分的计算结果到内存中,可节省执行算法需要的时间;
3、对编译php代码得到的 opcode进行缓存,可节省每次编译需要的时间;
4、将生成页面的HTML静态保存,可以节省每次生成页面的整个时间;
5、通过HTTP header设置浏览器本地缓存,可避免每次请求获取静态文件,快速获取静态的图片,js,css等文件。
因此缓存可分为:db/io缓存、动态脚本编译缓存、生成页面缓存、浏览器缓存等;具体的实现:可以将中间结果保存在内存(memcached)中或磁盘中;
1. db caching
例如MySQL query cache,配置/etc/mysql/my.cnf:
query_cache_limit = 1M query_cache_size = 16M |
2. 动态脚本编译缓存
例如PHP compiler cache。PHP源代码需要通过编译器编译为opcode再解释执行;如果没有修改源代码,不需要每次都从源码开始编译,可缓存opcode。
常见的PHP compiler cache工具有:APC, eAccelerator
3. WP自带的缓存性能
在wp 2.3的时候首次引入cache,最初是file-based,可以通过wp-config.php中的define ( 'ENABLE_CACHE', true);设置是否开启cache功能。
从wp 2.6开始开始采用object-oriented solution,wp代码内部实现cache,不需要进行config。wp并提供了一系列的wp_cache函数允许开发者使用wp的对象cache功能。该object-oriented的cache是将数据cache在内存中而且仅在当前session有效。一些第三方插件提供了cache的持久化特性。
参考: + http://wpengineer.com/1607/use-wordpress-cache/ + http://codex.wordpress.org/Function_Reference/WP_Cache
4. HTML页面缓存
WordPress有自己的caching system,因此编写plugins或者修改WP代码,推荐使用它提供的函数,而避免直接编写SQL。
另外,使用一些WP caching plugins可以有效地缓存WP页面,大大提高网站页面加载速度。这些plugins中一般有2种类型的缓存策略:一种是缓存生成的页面;另一种是缓存db query的结果。
推荐:Hyper Cache或者Hyper Cache + DB Cache Reloaded或者W3 Total Cache
Hyper Cache
http://wordpress.org/extend/plugins/hyper-cache/
安装需要:
- 下载,解压,拷贝到wp-content/plugins下;
- 创建cache目录并设置可写:
cd hyper-cache mkdir cache chmod 777 cache |
- 修改wp-content为可写:
chomod 777 wp-content |
需要在该目录下生成`advanced-cache.php`文件
- 修改`wp-config.php`文件
在`define("WPLANG"`之后添加`define("WP_CACHE", true);`
具体参考:Hyper Cache: http://www.satollo.net/plugins/hyper-cache


猜你喜欢
- 1,我自己琢磨网站有三四年了,真正赚钱是从今年开始。以下是我从开始做网站到现在的一些情况。本文首发我的个站[张顺海].2,现在我的主站IP日
- 1. kali linux 系统版本查看 命令:cat /etc/issue2. kali linux系统内核信息查看命令:uname -a
- 这里可以看到另外一个语句Limit,Limit语句就是用来针对具体的请求方法来设定访问控制的,其中可以使用GET、POST等各种服务器支持的
- V5Shop联盟系统第三方嵌入式整合接口开通通过不断研发,风靡一时的V5SHOP联盟系统今日终于再次发布一大功能模块-----第三方网店系统
- 在FreeBSD系统中,一个标准的FreeBSD系统,至少要有一个网络界面以便与其他计算机通信。它支持Token Ring和FDDI,以及普
- 据电信市场研究与咨询公司Dittberner Associates公布的最新研究报告显示,今年一季度,中国的固定宽带用户已经超过美国在全球固
- 11月13日消息 今天下午,央视网宣布宣布其集合了“UGC(用户产生内容)+SNS”功能的&
- linux注释crontab文件及crontab执行sh的坑原来,在Linux下写了很多crontab,来定时执行某些任务,现在有以下需求:
- 接触网络也有好几年时间了,每天都在做网站,学习经验知识,今年在站长网上学到的知识最多了,特别是这里有热心的站长朋友们和一些老菜鸟们的经验互相
- 最近有和朋友谈论百度快照不更新,首页Site不是第一的问题,下面简单的说一下自己怎样把自己的站快照和site不正常到正常的经历,绝非抄袭别人
- 通常,你可以通过模块设置中的“菜单分配(Menu Assignment)”将模块分配给某些菜单项,以在它们对应的页面里显示。但有时你想将模块
- 一、先关闭不需要的端口 我比较小心,先关了端口。只开了3389、21、80、1433,有些人一直说什么默认的3389不安全,对此我不否认,但
- 目前在国内大多数站长通过网站挣钱的主要手段还仅仅是通过网站广告的点击来取得收入,但同样的广告有的网站挣的多有的网站就挣的少,为什么呢?下面我
- 我使用的VMware版本:VMware 15 Pro镜像:CentOS 8.1电脑配置需求:2 GB 及以上的RAM(官方推荐至少
- 新站,在去找人交换链接的时候,一般都是不愿意做的。所以,一般的新站,要么他要身就有人脉资源,要么就能只通过自己的努力,有的人用博客做外链,有
- 最近备案严查,只能把所有的站点都关闭了再来一个一个检查过添加,检查倒可以到工信部网站批量检查(方法见本博客批量查询ICP备案方法),查过了添
- Tomcat本身不能直接在计算机上运行,需要依赖于操作系统和一个JAVA虚拟机。JAVA程序启动时JVM会分配一个初始内存和最大内存给程序。
- 打开:require/sendemail.php查找第一个(269行左右):fwrite($fp, $msg); 在此行
- 当开始使用Docker时,人们经常问:“我该如何进入容器?”,其他人会说“在你的容器里运行一个SSH服务器”。但是,从这篇博文中你将会了解到
- 随着docker使用的镜像越来越多,就需要有一个保存镜像的地方,这就是仓库。目前常用的两种仓库:公共仓库和私有仓库。最方便的就是使用公共仓库