序章

Webサイトが成長し、トラフィックが増加するにつれて、ストレスを最も早く示すコンポーネントの1つは、バックエンドデータベースです。 データベースが分散されておらず、高負荷を処理するように構成されていない場合、トラフィックの比較的穏やかな増加に簡単に圧倒される可能性があります。

これに対処する1つの方法は、memcachedなどのメモリオブジェクトキャッシングシステムを利用することです。 Memcachedは、通常はデータベースから取得される情報をメモリに一時的に保存することで機能するキャッシュシステムです。 インメモリ情報の次のリクエストは、バックエンドデータベースにストレスをかけることなく、信じられないほど高速になります。

このガイドでは、Ubuntu14.04サーバーにmemcachedをインストールして使用する方法について説明します。

前提条件

始める前に、サーバー上にsudo権限にアクセスできる通常の非rootユーザーが必要です。 そのようなユーザーをまだ作成していない場合は、Ubuntu 14.04初期セットアップガイドの手順1〜4に従って作成できます。

通常のユーザーを構成したら、このガイドを続けてください。

Memcachedとコンポーネントをインストールします

開始するには、Ubuntuのリポジトリから必要なすべてのコンポーネントを取得する必要があります。 幸いなことに、必要なものはすべて利用できます。

これは、このセッションでのaptを使用した最初の操作であるため、ローカルパッケージインデックスを更新する必要があります。 次に、プログラムをインストールできます。

相互作用を処理するために、memcached、MySQLデータベースバックエンド、およびPHPをインストールします。 memcachedインタラクションを処理するPHP拡張機能もインストールしています。 次のように入力することで、必要なものをすべて入手できます。

sudo apt-get update
sudo apt-get install mysql-server php5-mysql php5 php5-memcached memcached

利用可能な*2つの”PHPmemcache拡張機能があることに注意してください。 1つはphp5-memcacheと呼ばれ、もう1つはphp5-memcachedと呼ばれます(2番目の例の末尾の「d」に注意してください)。 安定しており、より幅広い機能を実装しているため、これらの2番目を使用しています。

MySQLをまだインストールしていない場合、インストールにより、管理者のパスワードを選択して確認するように求められます。

これにより、必要なものがすべてインストールおよび構成されます。

インストールを確認してください

信じられないかもしれませんが、memcachedはすでに完全にインストールされており、すぐに使用できます。 これはさまざまな方法でテストできます。

最初の方法はかなり簡単です。 PHPに、memcached拡張機能について知っているかどうか、およびそれが有効になっているかどうかを尋ねることができます。 これを行うには、ユビキタスなPHP情報ページを作成します。

これは、ドキュメントルートにinfo.phpというファイルを作成することで簡単に実現できます。 Ubuntu 14.04のApacheでは、デフォルトのドキュメントルートは/var/www/htmlです。 ここでroot権限でファイルを開きます。

sudo nano /var/www/html/info.php

このファイルに、これを入力します。 これは基本的に、サーバーに関する情報を収集してWeb対応のレイアウトに出力するPHP関数を呼び出すだけです。

<?php
phpinfo();
?>

これで、サーバーのドメイン名またはパブリックIPアドレスにアクセスし、続いて/info.phpにアクセスすると、情報ページが表示されます。

http:// server_domain_name_or_IP /info.php

下にスクロールするか、「memcached」セクションヘッダーを検索すると、次のようなものが見つかります。

Memcache PHP info section

これは、memcached拡張機能が有効になっていて、Webサーバーによって検出されていることを意味します。

次のように入力して、memcachedサービスが実行されているかどうかを確認することもできます。

ps aux | grep memcached

memcache  6584  0.0  0.0 327448  3004 ?        Sl   14:07   0:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1
demouser  6636  0.0  0.0  11744   904 pts/0    S+   14:29   0:00 grep --color=auto memcached

次のように入力して、サービスの統計を照会できます。

echo "stats settings" | nc localhost 11211

memcachedサービスを停止、開始、または再起動する必要がある場合は、次のように入力して実行できます。

sudoサービスmemcached再起動

Memcachedがデータをキャッシュできるかどうかをテストする

memcachedが実行されていること、およびmemcachedに接続するためのPHP拡張機能が有効になっていることを確認したので、データを保存するためにmemcachedを取得してみることができます。

これを行うには、別のPHPスクリプトを作成します。 今回はもっと複雑になります。

ドキュメントルートでcache_test.phpというファイルを開きます。

sudo nano /var/www/html/cache_test.php

内部では、PHPラッパータグを作成することから始めます。

  

これらの中で、PHP Memcachedオブジェクトの新しいインスタンスを作成し、それを変数に格納します。 このPHPオブジェクトがサーバー上で実行されている実際のmemcachedサービスに接続できる場所を定義します。 Memcachedはデフォルトでポート11211で実行されます。

  $ mem = new Memcached();