PHPとMySQLが利用できるWebサイトを、Windows Azureを使って手軽に作ってみよう

FTPによるファイルの更新方法
FTPでファイルを更新する場合、Activeモードではできず、PASVモードで接続する必要があります。そのためWindows標準のftpコマンドを利用することはできません。
まずFTPサーバーとアカウント情報を確認します。
作成したWebサイトのDASHBOARDで[Download publish profile]をクリックしてファイルをダウンロードします。
ダウンロードしたファイルをテキストエディタで開き、publishMethod属性がFTP※1なpublishProfileエレメントのpublishUrl、userName、userPWD属性からFTPサーバー名※2、ユーザー名※3、パスワード※4を取得します。
<publishData>
  <publishProfile profileName="thinkit-mysql - Web Deploy" publishMethod="MSDeploy" ...省略...>
    ...省略...
  </publishProfile>
  <publishProfile
    profileName="thinkit-mysql - FTP"
    publishMethod="FTP" ←(※1)
    publishUrl="ftp://waws-prod-blu-001.ftp.azurewebsites.windows.net/site/wwwroot" ←(※2)
    ftpPassiveMode="True"
    userName="thinkit-mysql\$thinkit-mysql" ←(※3)
    userPWD="rztfnrR************************************************lDiFofA" ←(※4)
    destinationAppUrl="http://thinkit-mysql.azurewebsites.net"
    SQLServerDBConnectionString=""
    mySQLDBConnectionString="Database=thinkitA2qWMFedV;Data Source=...省略..."
    hostingProviderForumLink=""
    controlPanelLink="http://windows.azure.com">
    <databases>
      ...省略...
    </databases>
  </publishProfile>
</publishData>
※見やすくするため成形しています。
FTPクライアントを利用して接続しファイルをputします。
Webサーバーのドキュメントルートは/site/wwwrootになります。
動作確認
WebブラウザでアクセスするとputしたPHPスクリプトの結果が表示されます。
	http://thinkit-mysql.azurewebsites.net/phpinfo.php
ここまででWindows AzureのWebサイトでPHPアプリケーションを公開する方法はご理解いただけたかと思います。
MySQLまたはSQL Databaseへの接続文字列
Webサイトの作成と同時に作成したデータベースの接続情報は、DASHBOARDの[View connection strings]をクリックすることで表示されます。
| Database | データベース名 | 
|---|---|
| Data Source | サーバー名 | 
| User Id | ユーザー名 | 
| Password | パスワード | 
PHPの設定
Windows AzureのWebサイトではphp.iniを変更することができません。そのため、PHP_INI_*モードがPHP_INI_SYSTEMの設定は変更することができません。これはExtensionの追加ができないことを意味します。
とは言え、.user.iniファイルでディレクトリごとの設定をすることが可能です。これはApacheで.htaccessにPHPの設定を書くことと同等です。
	参考)PHP Manual - .user.iniファイル
デフォルトではdate.timezoneの設定が「America/Los_Angeles」などになっています。必要に応じて「Asia/Tokyo」など、システムにふさわしい設定に変更してください。
Frameworkの利用
CakePHPやZend FrameworkなどいくつかのFrameworkではURL Rewriteを利用します。しかし配布されているパッケージに含まれている設定は、Apache用の.htaccessのみで、IIS用のweb.configが含まれていないものが多くあります。
	その場合、Apacheの.htaccessファイルと同等であるweb.configファイルに同じ動きをするようにURL Rewriteの設定します。
	IISのURL Rewriteの設定は、インターネット インフォーメーション サービス (IIS) マネージャーでApache用のmod_rewriteの設定情報を読み込ませることが可能です。
ローカルPCのIISマネージャーで作成したweb.configファイルをWindows AzureのWebサイトにアップロードするとよいでしょう。
IISマネージャーはWindows 7などのクライアントOSではデフォルトではインストールされていません。コントロールパネルの「プログラムと機能」を開き、「Windowsの機能の有効化または無効化」から[インターネットインフォメーションサービス] - [Web管理ツール] - [IIS管理コンソール]を選択することで、コントロールパネルの「管理ツール」にインストールされます。
IISマネージャーで適当なフォルダを選択し、「URL書き換え」を開きます。なおこの際、このフォルダにweb.configファイルが存在しないことを確認してください。もし存在すると、他の設定が含まれていると困ります。その場合は新たなフォルダを作成してそちらで実施するのがよいでしょう。
画面右の[規則のインポート...]をクリックします。
構成ファイルにFrameworkから提供されている.htaccessファイルを読み込み[インポート]し、[適用]します。
この結果、フォルダにweb.configファイルが作成されています。
このファイルをプロジェクトの.htaccessと同じフォルダに配置し、Webサイトを更新します。
まとめ
今回はWebサイトでPHPアプリケーションをGitおよびFTPで更新する方法と、ちょっとしたTipsを紹介しました。Windows Azureの機能をPHPから利用することができるSDKの説明も入れたかったのですが、ボリュームが多くなりすぎるため、またの機会にさせてください。
Webサイトは共有レンタルサーバーのように簡単にPHPのWebアプリケーションを公開することができますので、ぜひ試していただけると幸いです。
また、今回ご紹介しましたWebサイト+ PHPもテーマの一つとしてあるハンズオン大会が2012年9月8日(この記事の公開直後なはずです)に開催されます。Webサイトだけではなく、仮想マシン(Linux、Windows)も、体験できるチャンスです。ぜひご参加ください。
	→ Azure座談ハンズオン大会+JAZUG結成2周年
次回は、Webサイトを利用したASP.NET開発について、再びスカイコード田口さんが登場します。ご期待ください。








