xin9le.net

Microsoft の製品/技術が大好きな Microsoft MVP な管理人の技術ブログです。

ExpressWeb上のWordPressをAzureに移行する

Windows Azureが提供するWeb Sitesは超クールなヤツです。簡単で綺麗な管理サイトでの操作/設定だけでなく、Visual StudioやWebMatrixとの親和性も非常に高く、作成したサイトをビックリするほどお手軽に発行/ホストできます。ExpressWebさんは非常に安価で自由度があって十分に高機能ですが、なんかこう...ポータルがカッコ良くない...。加えてスケーラビリティがない (CPUとか増やせない) ので、アクセス数の増加などへの対応が難しいです。

そんなクールなAzure Web Sitesで自分のサイトをホスティングしたいと思うのは、きっと僕だけではないでしょう。ということで、ExpressWebからの移行支援としてWordPressのお手軽な移行方法をご紹介します。

前提条件

以下の2つは事前に準備しておくものとして説明を割愛します。

  • ExpressWeb上にWordPress + MySQLなサイトがホストされている
  • Windows Azureを利用可能である (ライセンスを持っている)

Windows Azureには1か月間の無料評価版があります。ライセンスは持ってないけど試してみたい、という方は下記からご準備ください。

Windows Azure無料評価版 : Windows Azureを使ってみる

ちなみにExpressWeb上には下図のようなWordPressサイトがホストされているものとします。URLは一時的なものなので、現在はアクセスできません。

YourSite_ExpressWeb

Step.1 : WebMatrixのインストール

WebMatrixは無料で利用することができます。公式サイトからダウンロードしてインストールしてください。

WebMatrix is a free, lightweight, cloud-connected web development tool

WebMatrixOfficialSite

インストーラー (Web Platform Installer) を実行し、特に何も設定を変更せずにセットアップを完了させます。

Step.2 : ExpressWeb上のWordPressをローカル環境にバックアップ

まず、ExpressWeb上にあるWordPressの環境 (ファイル/データベース) をローカル環境にダウンロードします。ExpressWebの管理ポータルにログインし、WordPressをホストしているWebサイトを開き、発行プロファイルをダウンロードします。

GetProfile_ExpressWeb

次に、WebMatrixを起動してアプリケーションのギャラリーからWordPressを選択し、WordPressサイトを作成します。作成ウィザードの途中に「Azure上にサイトを作るか?」と聞かれますが、これはスキップします。

SelectWordPress

WordPressInstalling

サイトができたら、リボンメニューから [リモート] - [設定] をクリックします。[発行プロファイルのインポート] を選択し、ExpressWebの管理ポータルからダウンロードした発行プロファイルを取り込みます。ユーザー名/パスワード、さらにはデータベースの接続設定を適切に入力して [接続の検証] を行います。下図のように正常に接続が確立できればOKです。

PublishSetting_ExpressWeb

続いて [リモート] - [ダウンロード] を選択し、ローカル環境にExpressWeb上にあるサイトをダウンロードします。データベースも含めて完全なコピーを作成するため下図のようにチェックを入れたら、[続行] を押してダウンロードを開始します。

DownloadPreview

完了すれば、ローカルにバックアップができているのでもう安心です。また、次の2ステップは念のための確認作業です。すでに設定がされている場合は確認だけしてスキップして頂いても構いません。

Step.3 : web.configの書き換え

WebMatrixの左下のステージ選択で [ファイル] を選択し、web.configを開きます。web.config内に次の設定がなければ、タグを追記します。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="wordpress" patternSyntax="Wildcard">
                    <match url="*" />
                        <conditions>
                            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
        <directoryBrowse enabled="false" />
        <defaultDocument>
            <files>
                <clear />
                <add value="Default.htm" />
                <add value="Default.html" />
                <add value="index.htm" />
                <add value="index.html" />
                <add value="index.php" />
                <add value="index.aspx" />
                <add value="Default.aspx" />
                <add value="index.py" />
                <add value="index.pl" />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>

Step.4 : URL設定の書き換え

左下のステージ選択で [データベース] を選択し、wp_optionテーブルを開きます。option_nameが "siteurl" と "home" となっている箇所を、サイトの発行URL (http://localhost:xxxxx) に変更します。

CheckSiteUrl

Step.5 : Azure Web Sitesを作成

次に、Windows Azureに移行先となるWebサイトを新しく作成します。左下の [新規] ボタンから、[コンピューティング] - [WEBサイト] - [カスタム作成] と選びます。作成ウィザードでは、新しくMySQLデータベースを作成するように設定します。

CreateNewSite

作成が完了した段階でWebサイトのURLを叩くと次の表示が出ます。まだ、何もホストされていないことが分かります。

NewSite

Step.6 : Azure Web Sitesに発行

作成したWebサイトから発行プロファイルをダウンロードします。Webサイトのダッシュボードを開くと右側にリンクが表示されますので、そこから取得してください。

GetProfile_Azure

ダウンロードできたら、WebMatrixでローカルコピーを作成したサイトを開きます。[リモート] - [設定] - [新しいプロファイル] - [発行プロファイルのインポート] でAzure Web Sitesからダウンロードした発行プロファイルを設定します。

PublishSetting_Azure

すべての準備が整いました。リボンから [リモート] - [発行] を選択してAzure Web SitesにWordPressをアップロードします。ご気分がよろしければ、ぜひ「デプローーーイッ!!!」と叫んでください。完了後、サイトを開くとご自身のWordPressサイトが表示されるはずです。

YourSite_Azure

まとめ

ここまで読むと「めんどくさそう...」と感じるかもしれませんが、実際にはローカルにバックアップしてホスト先を変更して再発行するだけです。WebMatrixを利用すれば非常に簡単にサイト移行できるので、ぜひ機会をみてWindows Azureへお引っ越ししてみてください。

Enjoy WordPress on Azure!!