しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

Windows Azure Web サイトの Site Extension として phpMyAdmin を動かしてみた

そろそろ Windows Azure Web サイトに言語をインストールしてアプリケーションを動かすネタもマンネリかと思ったので、今回は Site Extension として phpMyAdmin を入れて動かしてみました。

Web サイトの Site Extension については何回か出てきていますが、No.1 の記事がわかりやすいので知らない人は読んでおいてください。

Windows Azure Web Sitesの魅力を120%引き出す « ブチザッキ

ざっくりと説明してしまうと、Web サイトの管理者しか見えないアプリケーションをインストールする機能と思ってもらえれば良いかなと。phpMyAdmin なんて管理者以外から扱えたら困るようなアプリケーションをインストールするのには最適というわけです。

とりあえず phpMyAdmin をダウンロードして、Kudu なり FTP なりを使って D:\home\SiteExtensions 以下に zip を保存します。

phpMyAdmin

Kudu では unzip コマンドが使えるので、zip を適当に展開しましょう。ディレクトリ名が長いので今回は phpMyAdmin という名前に変更しました。

f:id:shiba-yan:20140210003950p:plain

ここまでは良いですね。

phpMyAdmin を動かすためには config.inc.php ファイルを作成しないといけないので、サンプルとして用意されている config.sample.inc.php をリネームして config.inc.php に変更してしまいます。そして config.inc.php を開いて、DB ホスト名だけを書き換える必要があるのですが、ClearDB なら接続文字列から拾って来れば問題ないでしょう。

このあたりの詳しい作業については coelacanth さんのブログが詳しいので参照してください。

Windows Azure WebサイトでPhpMyAdminを利用する | 眠るシーラカンスと水底のプログラマー

これで phpMyAdmin 側の設定は完了しましたので、次は Site Extension として動かすための設定を行います。と言っても以下のような内容の applicationHost.xdt ファイルを作成して、phpMyAdmin と同じディレクトリに入れておくだけです。

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.applicationHost>
    <sites>
      <site name="%XDT_SCMSITENAME%" xdt:Locator="Match(name)">
        <application path="/phpMyAdmin" xdt:Locator="Match(path)" xdt:Transform="Remove" />
        <application path="/phpMyAdmin" applicationPool="%XDT_APPPOOLNAME%" xdt:Transform="Insert">
          <virtualDirectory path="/" physicalPath="%XDT_EXTENSIONPATH%" />
        </application>
      </site>
    </sites>
  </system.applicationHost>
</configuration>

この XDT に関してはテンプレ的な記述となります。要するに /phpMyAdmin というパスでアプリケーションを公開するという設定を行うためのファイルです。

保存し終わったら管理ポータルから WEBSITE_PRIVATE_EXTENSIONS = 1 のアプリケーション設定を追加して、Web サイトの再起動を行うだけです。この時に再起動を行わないと設定が反映されないので注意してください。

そして再起動が終わったら https://<sitename>.scm.azurewebsites.net/phpMyAdmin という URL で phpMyAdmin が使えるようになっています。

f:id:shiba-yan:20140210003046p:plain

まずはログイン画面が表示されるので、MySQL や ClearDB にログインするためのユーザー ID とパスワードを入力すると、ダッシュボード的な画面が表示されます。

f:id:shiba-yan:20140210003056p:plain

ここまでくれば後は自由に phpMyAdmin を使ってメンテナンスなどが行えますね。

Site Extensions としては ASP.NET と PHP ならば比較的簡単に動かすことが出来ると思うので、他の管理アプリなども普通に動作すると思います。