IIS7.x での共有 Web ホスティングのためのサンプルアプリケーションVer2
以前このブログでも紹介させていただいたのですが Windows Server 2008 に搭載されている IIS 7.x を使用すると、IIS Manager for Remote Administration ( IIS 管理ツール) を使用して簡単な Web ホスティングサービスをすぐに開始することができます。
分かり易くいうと、自分のサーバーの IIS 上に作成した Web サイトを貸し出すことができる ( 正しくは、”管理させることができる” ) のです。
“貸し出された” 側、つまり ユーザーは、自分のマシンの IIS 管理ツールを使用して、インターネット越しに自分に割り当てられた Web サイトを管理/運用することができます。 (※ポートの設定が必要ですが)
もちろん ユーザーは FTP を使用してコンテンツのアップロードが可能ですし、ASP.NET、PHP アプリケーションの配置/実行も行えます。また自分の Web サイト独自のユーザーを作成して、ディレクトリにアクセス権を設定したりということも可能です。
非常に便利で強力な機能なのですが、貸し出すサイトが多いと、Web サイトの作成や、共有に関わる設定などなかなか手間がかかります。
そこで以前、これらの処理を自動で行うサンプルアプリケーションを公開したのですが、今回はそのバージョンアップ版です。
以下は、このアプリケーションが行う処理の順番と機能を示しており、新たに追加された機能は青字の部分になります。
- インターネット インフォメーション サービスマネージャーユーザー(※以下、"IIS 管理ユーザー") を作成
- Web サイト用の物理フォルダを作成
- Web サイト用の物理フォルダにディスククォータ ( サイズ制限 ) を設定 (※1)
- Web サイト用の物理フォルダにファイルスクリーン ( 配置制限 ) を設定 (※2)
- アプリケーションプールの作成
- Web サイトの作成
- 作成した Web サイトに FTP をバインド
- 作成した Web サイトに、作成した IIS 管理ユーザーを管理者として登録
- PHP ランタイムの設定
- IIS 管理ユーザー専用のデータベースを作成 (※3)
※1 ディスククォータについては、過去記事 『コードによるディスククォータの設定』 の内容をご参照ください。
※2 ファイルスクリーンについては、過去記事 『コードによるファイルスクリーン機能の実装』 の内容をご参照ください。
※3 IIS 拡張である IIS Database Manager を使用すると、IIS 管理ツールからサーバー上のデータベースの管理が可能です。もちろんインターネット経由でもです。詳しくは過去記事 『Web サイト共有サービスでの DB 機能提供の実装』 の後半部分をご参照ください。
アプリケーションの画面は以下の通りです。
前回のサンプルアプリケーションは Web の UI と WCF も提供させていただいていましたが、”コードのサンプル” であれば Windows フォームのサンプルで充分と思われますので、今回は Windows フォームアプリケーションのみとなります。
…まぁ、ほんとうは次の仕事が詰まってて時間が取れなかったからなのですが (^^;)
このサンプル アプリケーションが動作する条件は以下の通りです。
OS : Windows Server 2008 および 同 R2
必須インストール :
IIS 7.x ( 要 HTTP,FTP, ASP.NET )
ファイル サーバー リソース マネージャー
SQL Server 2008 および 同 R2 ( Express Edition でも可)
サンプルアプリケーションのプロジェクトファイルを以下の SkyDrive にアップしましたので、IIS の構成/操作を .NET コードで行ってみたいという方は、ぜひダウンロードしてお試しください。
なお、詳しい配置方法、操作方法につきましては、Zip ファイル内に Readme.txt を用意しましたのでそちらをご覧ください。 (長くてうんざりすると思いますが)
さて、このコード、実はずいぶん前から公開したかったのですが、いろいろと別件が重なってこの時期となってしましました。
ようやく公開できて良かったです。