Windows AzureでPerlやPython、Ruby、Git、SSH、MySQLを利用しよう 6ページ

WordPressを稼働させてみる

 以上でWindows Azure環境上でPHPやPerl、Python、Ruby、MySQLが利用でき、またSSHによるリモートログインも可能となっているはずだ。最後にこれらを利用してブログソフトウェアWordPressを実行させてみよう。

WordPressのインストール

 今回作成した環境ではPHPおよびMySQLが利用でき、また永続的ストレージも用意されているため、UNIX/Linux環境におけるWordPressのインストールとほぼ同様の手順でWordPressを利用できる。

 まず、WordPressの配布アーカイブをダウンロードし、FTPもしくはSCPなどを利用してWindows Azure側にコピーする。続いてリモートデスクトップ接続、もしくはSSHなどでインスタンスにアクセスし、アップロードしたZIPファイルをWWWRoot以下に展開する(図18)。

図18 WordPressの配布アーカイブをダウンロードし、Windows Azureのインスタンスにアップロードする
図18 WordPressの配布アーカイブをダウンロードし、Windows Azureのインスタンスにアップロードする

 次に、mysqlコマンドでMySQLにアクセスし、WordPress用のデータベースとユーザーを作成しておく(リスト21)。

リスト25 MySQLにWordPress用のデータベースとユーザーを作成する

$ mysql -u root  --protocol=TCP

mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on wordpress.* to wp_user@localhost identified by '<設定するパスワード>';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

 また、WordPressの配布アーカイブを展開したディレクトリ内に「Web.config」を作成し、既定のドキュメントとして「index.php」を指定しておく(図19

図19 WWWRoot\wordpress\Web.configを作成し、既定のドキュメントとして「index.php」を指定しておく
図19 WWWRoot\wordpress\Web.configを作成し、既定のドキュメントとして「index.php」を指定しておく

 以上の作業が完了したら、Webブラウザでインスタンスにアクセスし、/wordpress/ディレクトリを開く。するとWordPressの設定画面が表示されるはずだ(図20)。

図20 WordPressの初期設定画面が表示される
図20 WordPressの初期設定画面が表示される

 あとは一般的なWordPressと同様に初期設定を進めていけば良い。インストールが完了すれば作成したサイトやダッシュボードにアクセス可能になっているはずだ(図21

図21 Windows Azure環境で動作しているWordPressサイト
図21 Windows Azure環境で動作しているWordPressサイト

再起動によって変わるサイトURLに対応する

 Windows Azureへ「Staging」設定でデプロイしている場合、サイトのURLが「http://<デプロイID>.cloudapp.net/」というものになる。しかし、デプロイIDはロールの停止や再起動、再デプロイなどを行うと変わってしまうため、結果としてサイトのURLも変わってしまう。WordPressはこのURLをデータベース内に記録しているため、これによってWordPressの管理コンソールにアクセスできなくなってしまうことがある。その場合、mysqlで次のようにコマンドを実行し、サイト設定を変更すれば良い。

mysql> update wp_options set option_value="<サイトのURL>/<WordPressディレクトリ>" where option_name = "siteurl";
mysql> update wp_options set option_value="<サイトのURL>/<WordPressディレクトリ>" where option_name = "home";
mysql> commit;

Windows Azureにおけるパフォーマンスとスケーリングを考える

 さて、今回はWindows Azure環境でPHPやPerl、Python、Rubyといった言語を利用するための環境や、SSHによるリモートアクセス、MySQLを利用する方法について紹介した。今回はWordPressを導入しているが、このような環境を整えたことでそれ以外にも多くのWebアプリケーションを利用できるはずだ。

 しかし、実際のところWindows Azureにおいてこのような構成でWebサイトを運営するメリットは少ない。Azure Driveは1つのインスタンスからしかアクセスできないため、2つ以上のインスタンスを同時に稼働させることができないからだ。

 Windows Azureでは2つ以上のインスタンスを同時に稼働させ、ロードバランサでアクセスを振り分けることで、冗長性やスケーラビリティを確保できる。このような構成を取るためにはAzure Driveではなく、Windows AzureストレージやAzure SQLといった、複数インスタンスからの同時アクセスに対応したストレージやデータベースを用いる必要がある。

 次回はこれらWindows Azureストレージの概要を紹介するとともに、Windows Azureストレージを使ったサンプルアプリケーションで実際の使用法を解説する。サンプルアプリケーションとしてはTwitterと連動するWebアプリケーションを紹介する予定だ。