Ubuntu14.04にMemcacheをインストールして使用する方法
序章
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」セクションヘッダーを検索すると、次のようなものが見つかります。
これは、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();