Windows Web ServerでPHPやPerlなどのスクリプト言語を使う

Webアプリケーションを構築するに当たって、オープンソースで開発されているPHPやPerlで書かれた、さまざまなWebアプリケーションを活用するケースが増えてきている。Windows Web Serverをベースに構築する利点として、スケーラビリティの高さや管理コストの低さを取り上げてきたが、アプリケーション開発について見た場合、Windows Web Serverはこれら既存のアプリケーションをホストできるのだろうか。

» 2009年03月06日 06時00分 公開
[下村恭(ハンズシステム),ITmedia]

Webアプリケーション開発の手法

 Webアプリケーションを開発するに当たっては、さまざまなアプローチがある。従来の大規模開発のように、仕様を明確にした上で詳細設計を行い、作り込んで完成させるアプローチもあれば、とりあえずHTMLのみで構成されたWebサイトを立ち上げ、PHPやPerlなどのスクリプトで機能を追加していくアプローチもある。それぞれ、メリット/デメリットがあり、それぞれのプロジェクトにフィットしたアプローチを取ることが重要だ。

 Windows Web ServerをベースとしたWebアプリケーション開発でもっとも一般的なのは、VB.NETやC#といった.NET言語を使用した、言い換えればVisual Studioを使用したアプリケーション開発だ。

 VB.NETやC#のメリットは、なんといっても「コンパイルされる」ことにある。コンパイル時に変数やオブジェクトの型チェックが行われるため、些細なコーディングミスによるバグが発生しにくく、予期しない動作に悩まされる可能性も減る。またVisual Studioには、コーディングされたアプリケーションの品質を高め、維持するための仕組みが多数用意されているため、開発プロジェクトにかかる負担をいくらかでも減らせることが見込まれる。

 そういった意味で、開発プロジェクトにおけるプロジェクトマネジャーの立場で言えば、アプリケーションの品質を高めるために軽量スクリプト言語よりもコンパイルされる.NET言語を選択したくなる。ところが実際には、スクリプト言語によるアプリケーション開発が望まれることもある。大規模開発を行う予算がない場合や、そもそもプロジェクトの規模が小さい場合などだ。

 例えば、HTMLのみのシンプルなWebサイトを構築し、カウンターや問い合わせページといった、ちょっとした仕組みを用意するだけで済む場合だ。もちろん近い将来に大規模になることが分かっている場合や、身近に.NETアプローチに詳しい技術者がいれば、そのままIIS+.NETで開発するのがベストだが、そうでない場合はどうだろう。カウンターのスクリプトをインターネット上で検索して貼りつけるだけとか、Webデザイナーの書ける範囲でスクリプトを書いてもらうという場面が多いのではないだろうか。

 また、XOOPSやPukiWikiと言ったCMSなどの出来合いのサーバアプリケーションを導入する場合、これらはPHPで書かれているため、PHPのスクリプトエンジンが必要になるという場合もあるだろう。

 こうしたスクリプトベースのアプリケーションに対しても、Windows Web Serverは十分に対応できる。

Windows Web Server上のスクリプト言語

 Windows Web Server上でスクリプト言語を動作させるには、2つのアプローチがある。1つはLAMP(Linux+Apache+MySQL+PHP/Perl)と同様に、Apacheを導入するという方法、つまりWAMP(Windows+Apache+MySQL+PHP/Perl)だ。もう1つはWindows Web Serverと親和性の高いIISを使いつつ、スクリプト言語を使う方法、つまりWIMP(Windows+IIS+MySQL+PHP/Perl)だ。

 ApacheをWebサーバに使用する場合、LAMPのようにサーバのインストールや設定が分かりにくいという面もあったが、Apache、MySQL、PHPをまとめてインストールしてくれるVertrigoServのようなツールも登場している。サービスの起動・停止などもコントロールできる管理アプリケーションも付属しており、GUIに慣れているWindows管理者にも使いやすいものになっている。

 Windows Web Serverを使用しているのだから、ぜひともIISを使いたいという方には、IISに対応したPHPを使うためのモジュールも入手可能だ。

 Microsoft自身もPHPに対するサポートを始めている。PHP on IISサイトでは最新動向や学習用コンテンツなどが閲覧できる。また、ゼント・ジャパンの運営するPHP on Windowsでは、PHPベースで書かれているCMSなどのアプリケーションのインストール手順などを参照できる。

 IISを使用する場合、スクリプト言語としてPerlも選択可能だ。ActivePerlは、IIS上で動作するPerl環境だ。Windowsとの親和性も高く、インストールもインストーラを実行するだけと簡単になっている。

 ActivePerlが置いてあるActiveStateには、ActivePysonも置いてある。Pythonスクリプトを使いたい場合には有用だ。Windows上のPythonということでいえば、IronPythonが有名だ。このIronPythonは.NET Framework上で動作するため、よりWindowsとの親和性が高いといえる。

 また、IronPythonの兄弟であるIronRubyも.NET Framework上で動作するスクリプト環境だ。まだ完成しているという状態ではないが、近い将来、Windows上の開発言語としての地位を得るに違いない。

小規模から大規模まで対応できるWindows Web Server

 スクリプト言語には軽量であるという利点がある。そのため、問い合わせやカウンターなどのちょっとした仕組みや、アンケート収集などの小規模なサイトの構築、また、プロトタイプ開発のように作りながら仕様を確定していくなどの場合には、スクリプト言語を選択する方が自然だろう。

 しかし、バックエンドにデータベースを置くような大規模なWebシステムを構築する場合は、きちんとした設計とミスの少ないコーディング、それに漏れのないテストが求められる。こうした用途には、軽量なスクリプト言語よりも.NET系のコンパイルされる言語を選ぶ方が自然だ。

 開発予算や納期、開発者の持つスキル、開発手法など、言語を選択するにあたっての条件はさまざまだ。そういう意味でも、多様な言語を使用できるWindows Web Serverは、サイト構築の基盤として適する。

 状況に応じて言語を使い分け、適材適所で使用していくことで、これまで以上に効率的なサイト構築が実現できるだろう。


Windows Web Serverにおけるスクリプト言語“もう1つの選択肢”

 Windows環境においてサーバを構築・運用するならば、Windows PowerShellを利用するのはどうだろうか。Microsoft .NET Frameworkを基にタスクベースで設計されたコマンドラインシェルであり、簡便な扱いでシステム管理を効率化することができる。

 マイクロソフトによって開発されたシェルであることで、WindowsシステムやMicrosoft Officeとの親和性は大きなメリットになるだろう。システムの管理に直結するコマンドも多く、Officeの各種ファイルも容易に取り扱い、処理を自動化することができる。Windows環境におけるサーバ管理とアプリケーション開発のツールとして、手に取ってみる価値のあるツールといえるだろう。

 インストールパッケージはWindows Server 2003とWindows XP、そしてWindows Vistaに向けて配布されている。現在のバージョンは1.0だが、技術評価版としてWindows PowerShell 2.0 CTP3がリリースされている。これからのWebサイト構築および運用に向けてパフォーマンスの向上はもちろんのこと、ローカルやリモートを意識せずに使えるリモーティングスクリプティングの搭載、そして開発環境であるWindows PowerShell ISEではデバッガーやコンテクストヘルプをサポートすることで品質と効率の向上も強化され、新しい選択肢になってきているといえる。


関連キーワード

Windows Server | IIS | Visual Studio | Perl | PHP


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ