最近发现 WordPress 公园打开速度有点慢,WordPress 公园托管于 Linode 东京机房,按理说应该不会慢太多,遂动了优化的念头。

WordPress 优化实践的依据是我爱水煮鱼的一篇 WordPress 优化文章:为什么我的博客比你快。

优化 MySQL Query Cache

MySQL 设置 MySQL Query Cache,可以保存保存查询结果,同样的查询不再从数据库检索,对速度有很大的提升。

登陆服务器:

Mysql -uroot -p

SET GLOBAL query_cache_size = 16777216;

SHOW VARIABLES LIKE 'query_cache_size';

输出:

+------------------+----------+
| Variable_name | Value |
+------------------+----------+
| query_cache_size | 16777216 |
+------------------+----------+

vim /etc/my.cnf

添加如下代码,然后重启 mysql

query_cache_size = 268435456
query_cache_type=1
query_cache_limit=1048576

经过以上设置之后,使用 querycachelimit 变量,每个查询结果的最大值可以为 1048576,单位是 KB

php 开启 Opcache

进入 lnmp 解压目录,有一个 opcache.sh 执行./opcache.sh 即可。

//opcache 与 zendguardloader 冲突,开启后会出现 502 错误,建议不要开启。

安装 memcached 和 php memcached 扩展

进入 lnmp 解压目录,有一个 memcached.sh 执行./memcached.sh 即可。

WordPress 启用 memcached 缓存

  1. 下载 WordPress memcached 插件
  2. 根据不同的 PHP 扩展下载不同的 WordPress Memcached 插件 (这个很重要):
    PHP Memcache 扩展:http://WordPress.org/extend/plugins/memcached/
    PHP Memcached 扩展:https://WordPress.org/plugins/memcached-is-your-friend/
  3. memcached 是把 object-cache.php 文件拷贝到 wp-content 目录下即可。 memcached is your friend 的启用和普通插件一样。

WordPress 启用 batcache 插件

Batcache 使用 Memcached 来缓存页面,WordPress 在使用 Memcached 来缓存对象时有个小小的弊端就是每次访问 WordPress 页面,都要从内存中获取多个缓存对象。其实我们可以合并这些对象,而 Batcache 主要就是解决这个问题,它是基于 Memcached 的 WordPress 缓存插件,它的工作原理是:把当前整个页面作为一个对象缓存到内存中,这样再次访问 WordPress 页面的时候,直接获从内存中获取这个对象即可,速度极快。

batcache 插件也是 WordPress.com 官方使用的加速插件之一。

batcache 插件安装过程

  1. 在使用 Batcache 插件之前你必须安装 WordPress memcache 插件 (见上文) 。
  2. 到 WordPress 插件官网下载 Batcache 插件
  3. 上传 advanced-cache.php 到 /wp-content/ 目录
  4. 在 wp-config.php 添加以下代码激活 Batcache:
    define('WP_CACHE', true);
  5. 然后尝试多次载入页面查看源代码,应该在 之前可以看到一些 Batcache 状态代码。 (未登录状态)
  6. 可以修改 advanced-cache.php 开始的一些代码来调整选项。
  7. 可选择上传 batcache.php(Batcache 管理) 到你的 /wp-content/plugins/ 目录。