Windows Azure上でPHPを動作させる場合、以前ならphp-cgi.exeも一緒にアプリケーションに含めたりしてたと思います。
でもWindows Azure SDK 1.3以降ではスタートアップタスクも利用できるし、Full IIS機能が使えるのでPHPも含めてIIS+FastCGI+PHPな環境にしたいですよね。
ということでおなじみのWebPICmdLineを利用してPHPをインストールするスタートアップタスクです。
@echo off sc config wuauserv start= demand md "%~dp0appdata" reg add "hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders" /v "Local AppData" /t REG_EXPAND_SZ /d "%~dp0appdata" /f webpicmdline /Products: PHP53 /AcceptEula webpicmdline /Products: wincache53 /AcceptEula reg add "hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders" /v "Local AppData" /t REG_EXPAND_SZ /d %%USERPROFILE%%\AppData\Local /f net start w3svc
ついでにPHPのアクセラレータとしても利用できるWincacheも入れてます。
※WincacheをインストールするとどうもIISが止まるようなのでサービス開始のコマンドも入れてます。
後は以下のようにサービス定義ファイル(.csdef)でタスクを呼び出すようにします。
<Startup> <Task commandLine="InstallPHP.cmd" executionContext="elevated" taskType="simple" /> </Startup>
これでアプリケーションの開発者は純粋にPHP部分だけに注力できますね。
ロールのエントリポイントも別途起こせるのと、CSPackを利用すれば大分Windows Azure固有の部分を減らせる=PHP開発者がすぐにWindows Azure アプリケーションを開発できるんじゃないかなーと思います。
参考: How to Configure IIS Components in Windows Azure (MSDN)
追記。Windows Azure Command-line Tools for PHPなるものがあるので、こんな苦労しなくてもいいかも知れませんね。\(^o^)/