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', '...ランダムな文字列...' );
コメント