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

2012年9月5日(水)
浅見 城輝

FTPによるファイルの更新方法

FTPでファイルを更新する場合、Activeモードではできず、PASVモードで接続する必要があります。そのためWindows標準のftpコマンドを利用することはできません。

まずFTPサーバーとアカウント情報を確認します。

作成したWebサイトのDASHBOARDで[Download publish profile]をクリックしてファイルをダウンロードします。

画面12:WebサイトのDASHBOARDからファイルをダウンロード(クリックで拡大)

ダウンロードしたファイルをテキストエディタで開き、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になります。

画面13:FTPクライアントでファイルをputする(クリックで拡大)

動作確認

WebブラウザでアクセスするとputしたPHPスクリプトの結果が表示されます。
http://thinkit-mysql.azurewebsites.net/phpinfo.php

画面14:putしたPHPスクリプトの結果をブラウザで確認できる(クリックで拡大)

ここまででWindows AzureのWebサイトでPHPアプリケーションを公開する方法はご理解いただけたかと思います。

MySQLまたはSQL Databaseへの接続文字列

Webサイトの作成と同時に作成したデータベースの接続情報は、DASHBOARDの[View connection strings]をクリックすることで表示されます。

画面15: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ファイルが存在しないことを確認してください。もし存在すると、他の設定が含まれていると困ります。その場合は新たなフォルダを作成してそちらで実施するのがよいでしょう。

画面16:IISマネージャで「URL書き換え」を開く(クリックで拡大)

画面右の[規則のインポート...]をクリックします。

画面17:[規則のインポート...]をクリックする(クリックで拡大)

構成ファイルにFrameworkから提供されている.htaccessファイルを読み込み[インポート]し、[適用]します。

画面18:.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開発について、再びスカイコード田口さんが登場します。ご期待ください。

株式会社pnop

ネットワーク機器メーカーでの情報システム、DB管理パッケージベンダでのコンサルタント、フリーランスを経て、株式会社pnop(http://www.pnop.co.jp/)代表取締役。
クラウドやデータベースのコンサルティングを中心にWebシステムの構築やWindows 8、KINECT開発なども行う。最近は、Windows AzureでPHPやLinuxなどの非マイクロソフトなテクノロジを利用してサービスを動かすことに喜びを感じる日々。

連載バックナンバー

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

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

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

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