Windows 環境に MT を30分以内でインストールするために理解すべきポイント #movabletype
本エントリは Movable Type Advent Calendar の24日目の記事です。
Advent Calendar のネタとして別のを準備していたのですが、思ったより時間がかかってしまったので、PLAN-B として考えていた「Windows 環境に MT を30分以内でインストールするために理解すべきポイント」をご紹介したいと思います。
Linux 環境での利用が多いからなのか、Windows Server に慣れていないからなのか、Windows 環境にインストールするとなると苦労される方が多いようです。しかし、ポイントがわかってしまうと、とても楽にインストールできるようになります。
ポイント(1): Apache ではなく IIS を利用する
XAMP とかあるので、Apache を使いたくなります。ですが、IIS を利用することを強くおすすめしたいと思います。技術的に細かい部分を除くと、appcmd コマンドで IIS を設定できる点が大きいです。たとえば、次のコマンドを実行するだけで、新しい仮想ホスト (名前ベース) を登録できてしまうのです。
appcmd.exe add apppool /name:host02 appcmd.exe add site /name:host02 /bindings:http/*:80:host02 /physicalPath:C:\webdata\host02 appcmd.exe set app "host02/" /applicationPool:host02
また、次のリリースで正式にサポートされる Windows 環境の FastCGI についても、次のコマンドで mt.cgi を FastCGI で利用できます。
appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='C:\strawberry\perl\bin\perl.exe',arguments='C:\inetpub\mt-apps\mt.cgi',maxInstances='4',monitorChangesTo='C:\inetpub\temp\mt.pid',idleTimeout='300',activityTimeout='30',requestTimeout='90',instanceMaxRequests='10000']" /commit:apphost appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='C:\strawberry\perl\bin\perl.exe',arguments='C:\inetpub\mt-apps\mt.cgi'].environmentVariables.[name='MT_HOME',value='C:\inetpub\mt-apps']" /commit:apphost appcmd.exe set config -section:system.webServer/handlers /+"[name='mt.cgi-FastCGI',path='mt.cgi',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='C:\strawberry\perl\bin\perl.exe|C:\inetpub\mt-apps\mt.cgi',requireAccess='Script']" /commit:apphost
ポイント(2): Web Platform Installer を利用する
Web Platform Installer は、マイクロソフト社が提供する統合インストールプログラムで、依存関係のあるソフトウェアも一括でインストールできます。また、IIS の追加モジュールをインストールすることもできます。たとえば、次のコマンドを実行するだけで、PHP や IIS IP 制限モジュール等をインストールします。
webpicmd.exe /Install /AcceptEula /Language:ja /Products:IPSecurity,UrlRewrite2,PHP54,PHPManager,SQLDriverPHP54IIS
appcmd コマンドや webpicmd コマンドが利用できるということは、Windows のバッチファイルで自動化できることを意味します。現在、リリースに向けて最終調整中の Azure Deploy Kit では、appcmd コマンドや webpicmd コマンドを利用し、Windows Azure でサーバー環境が起動する際に、MT に必要なプログラムをインストールします。仮想サーバーの作成から、MT のログイン画面表示までを30分以内で完了します。また、オンプレミス環境でも同等の時間で完了できます。
Windows は Linux とは違ったクセがある OS であることは間違いありません。実際に触ってみると、毛嫌いするほどでもないと思います。ノウハウの共有こそがキーなので、Azure Deploy Kit の公開時には、より詳細にご紹介したいと思います。