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)。

次に、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)

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

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

再起動によって変わるサイト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アプリケーションを紹介する予定だ。