Amazon Lightsail WordPressインスタンスでサイトヘルスを開くと、このホスティングサービスではMemcachedがサポートされているようだという内容のメッセージが表示されている。
しかしやってみたところ実際にはMemcachedはインストールされておらず(Memcached PHP Extensionが入っているだけ)、使えるようにするには少々手間がかかる。
Memcachedのインストール
とにもかくにもMemcached本体をインストールする必要がある。
sudo apt update
sudo apt install memcached
ステータス確認。
sudo systemctl status memcached
PECL memcache Extensionのインストール
PHPからMemcachedを使うには、PHP Extensionが必要だ。memcacheとmemcachedという2つのPHP Extensionがあるが、今回使用するWordPressプラグインでは新しい方のmemcacheを使う。
pecl install memcache
You should add "extension=memcache.so" to php.iniと言われるので、言われた通りphp.iniに追記する。
extension=memcache.so
php.iniの場所だが、phpinfo();ページを作って確認しておくのが間違いない。
Configuration File (php.ini) PathではなくLoaded Configuration Fileを確認する。この2つが必ずしも同じパスを示しているとは限らない。
これでsudo /opt/bitnami/ctlscript.sh restart apacheすれば適応されるかと思ったのだが、なんかうまくいかなかったのでインスタンスを再起動したらできた。
動作確認はこちらの方法を使わせてもらった。
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("接続できませんでした");
$version = $memcache->getVersion();
echo "サーバーのバージョン: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("データをサーバーに保存できませんでした");
echo "データをキャッシュに保存します (データの有効期限は 10 秒です)<br/>\n";
$get_result = $memcache->get('key');
echo "キャッシュから取得したデータ:<br/>\n";
var_dump($get_result);
?>
PHPファイルにブラウザでアクセスすれば動作確認できる。
Memcached WordPressプラグインのインストール
今回WordPress.orgが推奨しているプラグイン、Memcached Object Cacheを使用した。
このプラグインはGUIを持たず、ダッシュボードから有効化することもできない。使用するにはインストール方法を読む必要がある。
ここまでのステップでMemcached本体とPECL memcache Extensionの準備は完了しているので、次はプラグインの準備をする。object-cache.phpをwp-contentにコピー。
cp /opt/bitnami/wordpress/wp-content/plugins/memcached/object-cache.php /opt/bitnami/wordpress/wp-content
wp-config.phpに下記を追加。
define( 'WP_CACHE_KEY_SALT', '...ランダムな文字列...' );
コメント