最近發現 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/ 目錄。