WordPressを高速に表示させる方法【PHP OPcache・ObjectCache】

WordPressの作られたサイトの表示速度を遅いなと感じることがありませんか?
そこで、今回はWordPressの表示速度をあげる方法をご紹介します。

以下の環境での方法です。

  • AmazonLinux2
  • PHP7.3
  • nginx

WordPressを高速化する手順

phpのキャッシュを有効化

以下の2つのPHPモジュールを有効にします。

  • OPcache・・・コードキャッシュ
  • APCu・・・データキャッシュ

OPcacheを有効化するだけでも、2倍以上早くなります。

OPcacheのインストール

$ yum -y install php-opcache
// 設定確認
$ php -i | grep opcache
Additional .ini files parsed => /etc/php.d/10-opcache.ini,
opcache.blacklist_filename => /etc/php.d/opcache*.blacklist => /etc/php.d/opcache*.blacklist
opcache.consistency_checks => 0 => 0
opcache.dups_fix => Off => Off
opcache.enable => On => On
opcache.enable_cli => Off => Off
opcache.enable_file_override => Off => Off
opcache.error_log => no value => no value
opcache.file_cache => no value => no value
opcache.file_cache_consistency_checks => On => On
opcache.file_cache_only => Off => Off
opcache.file_update_protection => 2 => 2
opcache.force_restart_timeout => 180 => 180
opcache.huge_code_pages => On => On
opcache.interned_strings_buffer => 8 => 8
opcache.lockfile_path => /tmp => /tmp
opcache.log_verbosity_level => 1 => 1
opcache.max_accelerated_files => 4000 => 4000
opcache.max_file_size => 0 => 0
opcache.max_wasted_percentage => 5 => 5
opcache.memory_consumption => 128 => 128
opcache.opt_debug_level => 0 => 0
opcache.optimization_level => 0x7FFEBFFF => 0x7FFEBFFF
opcache.preferred_memory_model => no value => no value
opcache.protect_memory => Off => Off
opcache.restrict_api => no value => no value
opcache.revalidate_freq => 2 => 2
opcache.revalidate_path => Off => Off
opcache.save_comments => On => On
opcache.use_cwd => On => On
opcache.validate_permission => Off => Off
opcache.validate_root => Off => Off
opcache.validate_timestamps => On => On

APCuのインストール

$ yum -y install php-apcu
// 設定確認
$ php -i | grep opcache
/etc/php.d/40-apcu.ini,
apcu
MMAP File Mask => /tmp/apc.XXXXXX
apc.coredump_unmap => Off => Off
apc.enable_cli => Off => Off
apc.enabled => On => On
apc.entries_hint => 4096 => 4096
apc.gc_ttl => 3600 => 3600
apc.mmap_file_mask => /tmp/apc.XXXXXX => /tmp/apc.XXXXXX
apc.preload_path => no value => no value
apc.serializer => php => php
apc.shm_segments => 1 => 1
apc.shm_size => 32M => 32M
apc.slam_defense => On => On
apc.smart => 0 => 0
apc.ttl => 0 => 0
apc.use_request_time => On => On
apc.writable => /tmp => /tmp

W3 Total Cache」プラグインでObjectCacheを有効化

「W3 Total Cache」プラグインをインストールし、以下の設定をします。

  1. ObjectCacheの「Enable」にチェック
  2. Object Cache Methodの「Opcode: Alternative PHP Cache (APC / APCu)」を選択
  3. 保存

上記の設定が完了するとログインしていない状態でアクセスするとページが高速表示されます

ちなみにPageCacheやDatabaseCacheをOnにしても早くなりますが、更新がページに反映されないことがありますので、オススメしません。

参考

https://www.prime-strategy.co.jp/resource/pdf/DevelopersSummit2020.pdf