WebMatrixを使ってWordPressを動かそう

2012年3月1日(木)
田口 一博小木 ナツキ

SQL Azureの準備

  1. [田口] 次はAzureで動かすので、まずはSQL Azureにデータベースを作ろう。SQL Azureのファイアウォールの設定も忘れないようにね。
  2. [小木] 忘れないですよぉ。ではでは、データベースの作成とファイアウォールの設定始めます。

Azure 管理ポータルにアクセスして、左下のメニューから[データベース]をクリック、サブスクリプションを選択して、上のメニューにある[作成]をクリックします(画面19)。

画面19:SQL Azure - サーバー作成 - (クリックで拡大)

[サーバーの作成]が表示されたら、地域を選択して[次へ]をクリックします。地域は、前回作成したホステッドサービスと同じにします(画面20)。

画面20:SQL Azure - 新しいサーバーの作成1 (クリックで拡大)

管理者ログインとパスワードを入力して、[次へ]をクリックします(画面21)。

画面21:SQL Azure - 新しいサーバーの作成2(クリックで拡大)

SQL Azureのファイアウォールの設定では、SQL Azure 管理ポータルに接続できるように[追加]をクリックして、ファイアウォール規則に現在のIPアドレスを追加し、次にWindows Azureから接続できるように[他のWindows Azure サービスにこのサーバーへのアクセスを許可する]にチェックして、[完了]をクリックします(画面22)。

画面22:SQL Azure - 新しいサーバーの作成3(クリックで拡大)
  1. [小木] SQL Azure管理ポータルに接続する場合は、ファイアウォール規則に現在のIPと「0.0.0.0」の2つ登録が必要なのですね。データベース作って良いですか?
  2. [田口] ちょっと待った!ファイアウォールの設定が有効になるのに5分待つことが推奨されているから、しばらく待ってからSQL Azure管理ポータルにアクセスして。それと、データベース作成時に照合順序を指定したいので、SQL Azure管理ポータルからコマンドでデータベースを作っておこう。
  3. [小木] 了解です。5分かぁ~ちょっとコンビニまでおやつ買いに行ってきますね♪

データベース作成

  1. [小木] 肉まん買ってきましたぁ。モグモグ。。では、SQL Azure管理ポータルにアクセスしますね。作成したサーバーの下にある「master」データベースを選択して、ページ上の真ん中くらいにある[管理]をクリック(画面23)。

画面23:SQL Azure -データベースの管理(クリックで拡大)
  1. [小木] SQL Azure 管理ポータルが表示されたので、先ほど設定した管理者ログインとパスワードを入力して、[ログオン]をクリックしてログオン!(画面24)

画面24:SQL Azure 管理ポータル-ログオン(クリックで拡大)
  1. [田口] 「コンテキストを作成できませんでした」と表示されているけど、気にしないで画面上にある[新しいクエリ]をクリックしよう(画面25)。

画面25:SQL Azure 管理ポータル-ログオン後の画面(クリックで拡大)
  1. [田口] クエリの入力画面が表示されたら、データベース作成クエリを入力し、[実行]をクリックしてみよう。データベース名「wordpress」で最大サイズ1GB、照合順序がJapanese_CI_ASのデータベースを作成するクエリはこんな感じだね。
CREATE DATABASE wordpress COLLATE Japanese_CI_AS (MAXSIZE = 1GB)

画面26:SQL Azure 管理ポータル-データベース作成クエリ(クリックで拡大)
  1. [小木] メッセージに「コマンドは正常に完了しました。」と表示されたので、データベース作れたみたいです!
  2. [田口] SQL Azure 管理ポータルは閉じていいよ。次の作業で使うからAzure管理ポータルにある完全修飾 DNS名をメモっておいてね(画面27)。そうそう、更新ボタンを押せば、今作ったデータベースが表示されるからね。

画面27:Azure 管理ポータル-完全修飾 DNS名(クリックで拡大)
  1. [小木] 知ってますよ!(確かに、あれ?作ったデータベースがない…とか思ったけどさ)

WebMatrix で Azure に発行

  1. [田口] さあ、いよいよ最後はWebMatrixからAzureに発行してみよう。まずSQL Azureを使うようにWordPressの設定ファイル(wp-config.php)を修正ね。
  2. [小木] はい!DB_NAMEは同じ「wordpress」で作成したので、DB_HOST、DB_USER、DB_PASSWORDだけ変更すれば良いですね。DB_HOSTは完全修飾 DNS名、DB_USERは、管理者ログイン名@サーバー名になるところは注意ですよね。

設定例)

define('DB_NAME', 'wordpress');
define('DB_USER', 'sqladmin@xxxxxxxxxx');
define('DB_PASSWORD', 'Password');
define('DB_HOST', ' xxxxxxxxxx.database.windows.net');
  1. [小木] 設定ファイルの修正完了! WebMatrixの上にあるメニューの設定を開いて、前回と同じ値で発行の設定を行って、[保存]をクリックっと。保存が終わったら、前回と同じように[発行]をクリック!
  2. [田口] 発行のプレビューでは、[リモート サーバーにあるファイルで、自分のコンピューター上には存在しないファイルを削除します。] とデータベースのStarterSite.sdfにチェックをつけて不要なファイルを削除しましょう(画面28)。

画面28:WebMatrix - 発行のプレビュー(クリックで拡大)
  1. [小木] はい。両方チェックして[続行]をクリックっと。発行開始・・・。発行終わりました~!
  2. [小木] 3分待ったので・・・発行したURLにアクセスしてWordPressのインストールを始めますね。必要な情報を入力して[WordPressのインストール]をクリック~。インストールは問題なく成功したのでログイン、適当に投稿。問題ありません、インストール終わりました!(パチパチパチ)

  1. [田口] これでWordPressを使えるね。そうそう、画像を投稿するなら、同期の設定を15秒に戻したり、ストレージに保存するプラグインを使ったりした方が良いよ。
    →参照:Windows Azure Storage for WordPress
  2. [小木] そっかぁ!同期されないと画像がないインスタンスがあるから・・・画像が表示されない場合も出ちゃうのかぁ。
  3. [田口] そうだね。あと最後に、実際に運用するときの注意点を1つ。ホステッドサービスを削除してから再度アップなどした場合に、初期コンテンツが再度作成されるようになっているから、初期コンテンツが不要な場合は、WebロールアクセラレータープロジェクトのCore/Services/IISManager.csを開き、下記の行を削除またはコメントアウトするのがベストだね。
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Microsoft.Samples.DPE.WebDeployHost1.Web.Resources.LandingPage.html"))
{

  var fileContent = new StreamReader(stream).ReadToEnd().Replace("{WebSiteName}", siteName);
  File.WriteAllText(Path.Combine(sitePath, "index.html"), fileContent);
}

using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Microsoft.Samples.DPE.WebDeployHost1.Web.Resources.LandingStyle.css"))
{
  var fileContent = new StreamReader(stream).ReadToEnd();
  File.WriteAllText(Path.Combine(sitePath, "Site.css"), fileContent);
}

using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Microsoft.Samples.DPE.WebDeployHost1.Web.Resources.PublishImage.png"))
{
  var bitmap = new Bitmap(stream);
  bitmap.Save(Path.Combine(sitePath, "publish.png"));
}

using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Microsoft.Samples.DPE.WebDeployHost1.Web.Resources.SolutionImage.png"))
{
  var bitmap = new Bitmap(stream);
  bitmap.Save(Path.Combine(sitePath, "solution.png"));
}
  1. [小木] 了解です。今度、Webロールアクセラレーターを配置するときには、修正してから配置しますね。
  2. [田口] では、3日間おつかれさまでした。
  3. [小木] 今回もいろいろありがとうございました。たまには(?)つまずくところもあったけど、Windows Azure Accelerator for Web Rolesを使ったら意外と簡単にAzure上にWebアプリを作成することが出来ました!もっとAzureを活用していろいろなWebサイト作成に挑戦してみたいな♪
  4. [田口] そう思ってくれたら良かったよ。これからも挑戦してみてね。
  5. [小木] それでは、また機会があったらお会いしましょう。おつかれさまでした~!
スカイコード株式会社

主にマイクロソフトの技術を中心としたプログラマ兼システム管理者兼コンサルタント兼雑務係として従事。Microsoft Azureで少しでもラクに楽しく生きていこうと企む毎日。基本怠け者。

株式会社タクシーサイト

タクシーサイト開発担当。業務システムの開発に4年間従事。PHP、Object Pascal、C#などでプログラムの基礎の基礎を学び、その後他業種へ転職。ブランク後現在の会社に入社し、クラウドを一から勉強中。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています