WordPress

「永続オブジェクトキャッシュを使用してください」の対策方法【WordPress】

概要

久々にWordPressの管理画面を開くとサイトヘルスのおすすめの改善に「永続オブジェクトキャッシュを使用してください」という指摘が追加されていたので、この対策方法について色々と調べました

本記事ではその調べた内容を実際に行った手順を交えて解説していきます

この記事で分かること

「永続オブジェクトキャッシュを使用してください」の対策方法

環境

  • WordPress : 6.1.1
  • レンタルサーバ : Xserver
  • CentOS : 7.8.2003

手順

  1. プラグイン「Redis Object Cache」をインストール
  2. XserverにRedisをインストール&起動

プラグイン「Redis Object Cache」をインストール&有効化

「Redis Object Cache」をインストールする

WordPressの管理画面>プラグイン>新規追加で「Redis Object Cache」を検索して、「今すぐインストール」をクリックしてインストールします

プラグインのインストール

「Redis Object Cache」を有効化する

インストールが完了すると「有効化」ボタンに変わるので、クリックして有効化します

プラグインの有効化

プラグインの設定画面に飛ぶので「Enable Object Cache」をクリック

初回有効化時のプラグイン設定画面

するとオブジェクトキャッシュは有効化されますが、この時点では以下のスクショのようにStatusNot connectedになってしまっていると思います

これはWordPressをインストールしているサーバ(今回はXserver)でRedisが起動されていないことが原因なので、以降の手順でXserverへのRedisのインストール&起動方法を説明していきます

XserverにRedisをインストール&起動

特に何もされていなければそもそもサーバにRedisがインストールされていないので、まずはサーバにRedisをインストールします

普通にレンタルサーバを借りているとroot権限がないので、yumではなくソースコードからインストールする方法を取ります

Redisをインストールする

まずはXserverにSSH接続して任意のディレクトリで

wget https://download.redis.io/redis-stable.tar.gz && tar xf redis-stable.tar.gz

を実行してRedisのソースをダウンロード&解凍します

解凍すると同階層に「redis-stable」というディレクトリができるので、そのディレクトリ内に移動します

cd redis-stable

そこでコンパイル(make)&インストール(make install)します

make && make PREFIX=~/redis-server install

make installPREFIXを指定するのは、デフォルトだと/usr/local/bin/配下にインストールしようとするのですが、下記のような権限まわりのエラーが出でるためです。
仮にPREFIX無しで問題なくインストールできるなら不要だと思います。

install: 通常ファイル `/usr/local/bin/redis-server' を作成できません: 許可がありません

Redisを起動する

あとは下記コマンドを実行してやればRedisを起動できます

{インストール時にPREFIXに指定したパス}/bin/redis-server

# PREFIXを指定していない場合
/usr/local/bin/redis-server
$ ~/redis-server/bin/redis-server
75901:C 21 Nov 2022 20:37:01.097 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
75901:C 21 Nov 2022 20:37:01.097 # Redis version=7.0.5, bits=64, commit=00000000, modified=0, pid=75901, just started
75901:C 21 Nov 2022 20:37:01.097 # Warning: no config file specified, using the default config. In order to specify a config file use /home/{サーバID}/redis-server/bin/redis-server /path/to/redis.conf
75901:M 21 Nov 2022 20:37:01.098 * monotonic clock: POSIX clock_gettime
75901:M 21 Nov 2022 20:37:01.100 # Warning: Could not create server TCP listening socket ::*:6379: unable to bind socket, errno: 97
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 7.0.5 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 75901
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           https://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

75901:M 21 Nov 2022 20:37:01.100 # Server initialized
75901:M 21 Nov 2022 20:37:01.100 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
75901:M 21 Nov 2022 20:37:01.102 * Loading RDB produced by version 7.0.5
75901:M 21 Nov 2022 20:37:01.102 * RDB age 16 seconds
75901:M 21 Nov 2022 20:37:01.102 * RDB memory usage when created 1.71 Mb
75901:M 21 Nov 2022 20:37:01.104 * Done loading RDB, keys loaded: 194, keys expired: 0.
75901:M 21 Nov 2022 20:37:01.104 * DB loaded from disk: 0.002 seconds

-WordPress