Amazon Lightsail WordPressインスタンスでMemcachedを使えるようにするまで

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が必要だ。
memcachememcachedという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.phpwp-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', '...ランダムな文字列...' );

参考

関連記事

コメント

この記事へのコメントはありません。

TOP