Hyper-V判定プログラムと32bit Webアプリケーションの同居方法

インストールマニアックス事務局です。
こんばんは。
 
Active Perlなど32bitアプリケーションを動作させた際、そのままではHyper-V判定プログラムが正しく動作しないという情報をいただきました。その場合の対処方法について記載しますので、お手数おかけいたしますが、以下の手順に従ってご対応ください。
 
IISはアプリケーションプールという機能で異なるWebアプリケーションのプロセスを異なる設定のプロセスで実行することが可能です。
 
デフォルトのアプリケーションプールは「DefaultAppPool」という名前で、IISの管理ツール内の「アプリケーション プール」から設定を変更することができます。DefaultAppPoolの規定の設定では32bitアプリケーションの実行をサポートしていません(False)。
この設定を下図のようにTrueに変更することでActive Perl等の32bitのアプリケーションの実行が可能になる半面、64bit環境を想定したHyper-V判定プログラムが正しく稼働しなくなります。



 
●32bit/64bitのWebアプリケーションの同居方法

Active Perlのような32bitアプリケーションとHyper-V判定プログラムのような64bitアプリケーションを同居させるにはどうすればいいでしょうか。以下のやり方で同居が可能になりますので、ぜひご設定ください。
 
1. 任意の名前でアプリケーションプールを別途作成する(例: hyper-V)。


 
2. 作成したアプリケーションプールが64bitの設定になっているか確認する


 
3. Hyper-V判定プログラム(Hyper-V.aspx)を格納するフォルダを作り(例: c:\inetpub\wwwroot\hyper-v)、そのフォルダにHyper-V判定プログラムを格納します。
当該フォルダを「IIS管理ツール」で右クリックし、「アプリケーションへの変換」を選び、アプリケーションプールをDefaultAppPoolから作成したアプリケーションプール(例: hyper-v)に変更する。


 
4. Webサイトを再起動する


 
5. ブラウザからアクセスし、判定プログラムが正常に実行されることを確認する。

上記の例では、http://ホスト名/hyper-v/hyper-v.aspx にアクセスします。


お手数おかけいたしますが、上記の手段でHyper-V判定プログラムを動作させていただきますよう、よろしくお願いします。
それでは、インストールの方まだまだがんばってください。

できる?OSSのインストール(3)インストールマニアックス3のWebサーバーをインターネットに公開する

インストールマニアックス事務局です。
こんにちは。
 
さて、phpPerlなどのインストールも無事に終わり、いくつかのOSSのインストールも無事にできたら、いよいよWebサーバーをインターネットに公開してレポーティングサイトに登録することになります。
 
そのためにWebサーバーをインターネットからアクセスできるようにする必要がありますが、ここでは、その一例としてローカルIPアドレスで構築されたWebサーバーをインターネットに公開するための情報を提供させていただくことにいたします。ざっくりとしてますが、その点はご了承ください。
 
●想定環境
今回の環境としては
 
ブロードバンドルータを使って常時接続
グローバルIPアドレスブロードバンドルータに1つ割り当てられており、接続ごとに変動する
・ローカルIPアドレス(192.168.1.0/24)を使ってLANを構築し、その中でWebサーバー(192.168.1.100)を公開
 
という一般的な自宅の環境を想定しておりますが、インターネット接続環境は参加者の方々それぞれによって違いますので、説明通りにうまくいかないこともあります。何卒ご了承ください。iptablesとか使っている人は読む必要はないと思いますよ。

 
●インターネットからローカルIPアドレスのWebサーバーにアクセスできるようにする

まず、インターネットからここで公開しているWebサーバーにアクセスできるようにするためには、グローバルIPアドレスのポート80へのアクセスをWebサーバーのIPアドレスのポート80に振り分ける必要があります。
 
これにはNAPTや静的IPマスカレードと呼ばれるブロードバンドルータの機能を使います。
それぞれのルータによってやり方は違うと思いますが、図のような画面で設定できると思います。
 
だいたいどのルーターでも設定するのは
 
・公開したいサーバーが持つローカルIPアドレス
・公開したいサーバーが持つポート番号
 
になります。グローバルIPアドレスの方は自動的に割り当てられますので設定の必要はないでしょう。


NAPT設定画面の例
なお、ブロードバンドルーターによっては、DMZ機能と呼ばれるインターネットからすべてのアクセスをそのマシンに割り振る機能がありますが、セキュリティ的に大変危険ですのでなるべく使わない方がいいでしょう。

 
NAPTによって設定を済ませると、
 
http://202.218.13.185/(←自身のグローバルIPアドレスを指定してください)
 
のようにインターネットからルーターに割り当てられているグローバルIPアドレスを指定してアクセスするとIISのスタートページが見えるようになっていることでしょう。
 
なお、ルーターに割り振られているグローバルIPアドレスについては、ブロードバンドルーターに表示されていることも多いのですが、わからない場合は http://packetmonster.com/env.php のような環境変数を表示するサイトで見ることもできます。

 
●ダイナミックDNSサービスを使ってIPアドレスが変わっても同じURLを使ってアクセスできるようにする
 
これで、インターネットからWebサーバーにアクセスすることが可能になりました。
しかし問題があります。

グローバルIPアドレスISPによっては接続ごとに変更されてしまうところも多いです。

http://202.218.13.185/env.cgi(登録時)

http://202.218.13.138/env.cgi(チェック時)

のように変わってしまっていたら、せっかく登録したURLにアクセスすることができません。もちろんこれでは得点も無効になってしまいます。

これではちょっと困ります。

それを解決するのがダイナミックDNSDDNS)サービスです。
 
DDNSサービスはグローバルIPアドレスドメイン名を対応させるDNSのサービスに加えて、IPアドレスが頻繁に変更されてもいいように変更されたときも素早く更新されるようになっているDNSサービスです。そのためIPアドレスが変更されたときでも、素早くDDNSを使って対応するIPアドレスを変更することで、同一のURLを使うことが可能です。また、サブドメインが提供されているところも多く、自分でドメイン名を取得していない場合でもインターネットからドメイン名を使ったアクセスが可能になります。

 
●ダイナミックDNSサービス
ダイナミックDNSサービスを行っているサイトは以下のようなところがあります。
 
・ieServer.Net(http://www.ieserver.net/
・Dynamic Do!(http://ddo.jp/
・MyDNS.JP(http://www.mydns.jp/
・DynDNS.com(http://www.dyndns.com/
・no-ip(http://www.no-ip.com/
 
また、そのレジストラからドメインを取得することでダイナミックDNSサービスを使えるようになるところもあります。
 
・お名前.com(http://www.onamae.com/service/ddns/
livedoorドメインhttp://domain.livedoor.com/
バリュードメインhttps://www.value-domain.com/howto/?action=ddns
 
これらのサービスを使い、IPアドレスが変更されたときに通知を行うことで同一URLからアクセスすることができるでしょう。ただし、IPアドレスを更新するのは基本的にこちらの仕事です。更新には以下の方法があります
 
・DiCE(http://www.hi-ho.ne.jp/yoshihiro_e/dice/)、GnuDIP(http://gnudip2.sourceforge.net/)などダイナミックDNS利用をサポートするソフトウェアを導入する
・各DDNSサービスのWebサイトから設定を行う
・ルータの機能を使って設定を行う

 
DDNSサービスを提供しているところによってさまざまですので、各自でサービス内容をお確かめの上、環境にあったところをご利用ください。サービス内容やソフトウェアに関するご質問は、各提供元をご参照ください。
 
また、BIGLOBESo-netぷららなどISPによってはDDNSサービスが提供されているところもあります。また、バッファローやコレガ、IODATAなどルーターのメーカーによってDDNSサービスが提供されているところもあります。

これらのISPルーターを使っている場合、そのISPやメーカーのサービスを使うことによって、IPアドレスの変更があった場合、自動的に対応の変更を行ってくれますので、それを使うとより簡単かもしれません。

 
それでは、皆様のご健闘お祈りいたします。

あけましておめでとうございます。

インストールマニアックス事務局です。
 
あけましておめでとうございます。
 
インストールマニアックス3 Hyper-V祭り予選へのご参加ありがとうございます。
本年もよろしくお願いいたします。
予選は1月12日(火)まで続きますので、引き続きインストールの方がんばってください。


優勝賞品ですよ。
 
なお、事務局は1月4日(月)までお休みとなります。
 
この期間にいただいたお問い合わせに関しましては、2010年1月5日(火)よりご回答いたします。
何卒ご了承いただきますようお願い申し上げます。

できる?OSSのインストール(2)インストールマニアックス3のWebサーバーでPerlを動かしてみる

インストールマニアックス事務局です。
こんにちは。

phpを動かした後は、これまたたくさんのOSSのプラットフォームとして使われているPerlを動かしてみたいと思います。BBSやカウンターなど昔から公開されているOSSではPerlが使われているものも多いですので、インストールしておきたいものです。

※ここで紹介している方法はあくまで一例です。これ以外にも違うやり方もありますし、これを参考にして正常動作しなかった場合でも事務局では責任を取りかねますので、あらかじめその点ご了承ください。

※(1/5追記:下記の手法でActivePerlを動作させた場合、Hyper-V判定プログラムが正常動作しないことがわかりました。http://d.hatena.ne.jp/installmaniax3/20100105/1262702383 に対応方法を記しておりますので、そちらの方もご確認ください
 
ActivePerlのインストール

まずはPerlを実行するために必要となるActivePerlをインストールすることにします。
 
http://www.activestate.com/activeperl/
 
右上にある「ActivePerl DOWNLOAD NOW」ボタンをクリックすると最新版のインストーラーがダウンロードされます。
最新バージョンは5.10.1のようです。
 

 
インストールは簡単なので詳しくは書きませんが、インストーラーを起動して、基本的に何も考えず「Next」や「Install」ボタンをクリックしているとインストールは終了します。


 

・ISAPI拡張サービスの導入

次にIISにISAPI拡張サービスをインストールする必要があるようですので、インストールします。
 
サーバーマネージャからIISを選び、「役割サービスの追加」を選びます。

次に「役割サービスの選択」ダイアログが現れますので「ISAPI拡張」にチェックを入れ、「次へ」をクリックします。

インストールの確認画面になりますので「インストール」ボタンをクリックします。


・ハンドラーマッピングの設定

次にハンドラーマッピングを設定して、*.cgiで呼び出されたファイルがperlのプログラムとして実行されるようにに設定します。*.cgiと関連づけるのはIIS用に用意されているらしいperlis.dllです。

まずサーバーマネージャの「Default Web Site」を選び、「ハンドラーマッピング」をダブルクリックします。


スクリプトマッピングの追加」をクリックし、図のように要求パス「*.cgi」、実行可能ファイルはperlis.dllを選びます。


次にISAPIおよびCGIの制限の設定です。

まずサーバーを選び機能ビューからから「ISAPIおよびCGIの制限」を開きます。


「機能設定の編集」をクリックし、「ISAPIおよびCGIの制限の編集」ダイアログを開きます。


そして、「特定できないISAPIモジュールを許可する」「特定できないCGIモジュールを許可する」どちらにもにチェックを入れます。


そして、最後に32ビットアプリケーションが動くようにします。

アプリケーションプールの「DefaultAppPool」を選択し「詳細設定」をクリックします。

「詳細設定」ダイアログの「32ビットアプリケーションの有効化」を「True」にします。

これでPerlが動作するようになったはずです。

Perlの動作確認
ということで簡単なプログラムでPerlの動作を確認します。
以下のようなサンプルプログラムを書いてデフォルトルート(C:\inetpub\wwwroot\)にenv.cgiという名前で保存します。
 
foreach my $key( keys %ENV ){print "$key: $ENV{$key}", "<br>\n";}
 
ブラウザーから
http://localhost/env.cgi
にアクセスし、下の図のように環境変数が表示されていると、Perlが正常に動作しています。おめでとうございます。

 
・インストール例

課題の中からyy-boardをインストールしてみました。
これはPerlだけ動けば動作しますが、少しスクリプトを変更する必要があるようです。

できる?OSSのインストール(1)インストールマニアックス3のWebサーバーでPHPを動かしてみる

インストールマニアックス事務局です。
こんにちは。

無事Webサーバーも動作し、皆様はOSSのインストールにお励みのことかと思います。優勝するようなハイレベルな方はすでにいくつもインストールし報告されているでしょう。

ただ、参加者の方の中にはサーバーを初めて公開する方やOSSをインストールしたこともなく、Webサーバーは動いたけれど、まだOSSを動作させインターネットに1つも公開できないという人もいるかもしれません。

今日からこのブログではサーバーを公開できていない人が1つでもOSSをインストールできるよう、助けとなるような情報を少しずつ公開していくことにしたいと思います。
 
※ここで紹介している方法はあくまで一例です。これ以外にも違うやり方もありますし、これを参考にして正常動作しなかった場合でも事務局では責任を取りかねますので、あらかじめその点ご了承ください。
 
・Webサーバーを公開するには

現在、Windows Web Server 2008 R2をHyper-V Server 2008 R2上の仮想マシンで動作させ、その中でWebサーバー(IIS)を動作させていると前提で話を進めていきます。まだサーバーが動作していない人は以前のエントリをご参照ください。
 
さて、現在動かしているサーバーでOSSを動かしインターネットに公開するには今の環境に加え
 
1.OSSを動作させるための環境作成
2.プライベートIPアドレスグローバルIPアドレスの変換
 
が必要になりますが、まずはOSSを動作させるための環境を作成していきたいと思います。

基本的にOSSはそれ単体では動作せず、CGIASP、SSIなどと言われるそれを動かすための仕組みが必要です。使用するものはOSSによって違うので、ドキュメントを確認する必要があるのですが、ここでは、たくさんのツールで必要となるphpを動かしてみようかと思います。
これが動いているだけで、課題のOSSをいくつか動作させることができるようになるでしょう。
 
phpのダウンロードと設置

まずphpのサイトからをダウンロードします。

http://windows.php.net/download/

26日現在のバージョンは5.3.1です。

インストーラーだといろいろトラブルが出るという話があるのと、VC90版はサイドバイサイド構成が正しくない というエラーが出ましたのでVC6版のZIPにしました。

http://windows.php.net/downloads/releases/php-5.3.1-nts-Win32-VC6-x86.zip

ダウンロードしたファイルを任意のフォルダに解凍します。ここでは

C:\php

にしました。
 
次にPATHを通します。

「スタート」メニューの「コンピューター」
→「システムのプロパティ」
→「システムの詳細設定」
→「詳細設定」タブ
→「環境変数」ボタンをクリック。

環境変数ダイアログを開きます。

システム環境変数 「Path」

phpを置いたフォルダ(C:\php)を追加します。

 
次にphpを置いたフォルダ(C:\php)にあるphp.ini-productionというファイルを、同じフォルダにphp.iniという名でコピーします。

そして、php.iniファイルの内容に手を加えていきます。

; cgi.fix_pathinfo=1 の行の先頭にある「 ; 」 を削除
; fastcgi.impersonate = 1 の行の先頭にある「 ; 」 を削除
; cgi.force_redirect = 1; cgi.force_redirect = 0に変更して、行の先頭にある「 ; 」 を削除
; open_basedir の値を C:\inetpub\wwwroot とし、 の行の先頭にある「 ; 」 を削除
; extension_dir = "ext"の行の先頭にある「 ; 」 を削除

そして、ファイルの最後に

date.timezone = Asia/Tokyo
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8

extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_zip.dll
extension=php_bz2.dll

を追加します。

これで再起動すれば一応phpは動作する環境になっていると思います。

 
・Webサーバーの設定
次にWebサーバー側の設定です。IISからphpを使うにはのFastCGIという仕組みが用意されていますので、これを使うのが一番よさそうです。

サーバーマネージャから「役割サービスの追加」をクリックします

ウイザードが開始されますので、「アプリケーション開発」の中にある「CGI」を選択します。

インストールの内容確認画面です。「インストール」をクリックします。

これでFastCGIのインストールが終了しました。

 
次にハンドラーマッピングの設定に入ります。http://localhost/info.phpというページが呼ばれたときにphpを動かすと言うことですね。

「ハンドラーマッピング」をダブルクリックして設定画面を開きます。

「モジュールマップの追加」をクリックします。

「モジュールマップの追加」ダイアログです。図のように設定します。実行ファイルの場所は各自違うと思いますが、ここではC:\php以下にphpのファイルがあることにしています。

追加の確認画面です。「はい」をクリックします。

ハンドラーマッピングに「*.php」が追加されているのを確認します。追加されていれば設定は終了です。

 
・動作確認

phpの動作確認のためにIISのドキュメントルート(c:\inetpub\wwwroot)にtest.phpというファイルを作成し、中には
 
<?php phpinfo();?>
 
と一行書き込みます。

ブラウザーから

http://localhost/info.php

で確認すると、きちんと動作していればphpの動作環境が表示されていると思います。


 
これでphpのインストールは終了です。phpで動くOSSを課題から探してインストールしてみましょう。
 
・インストール例
PukiWikiをインストールしてみました。
PukiWikiphpだけで動作しますよ。ぜひインストールしてみてください。

Hyper-V判定プログラムについて

皆さんこんばんは。
インストールマニアックス事務局です。
 
お待たせして、非常に申し訳ありませんが、
ようやくHyper-V判定プログラムがダウンロード可能となりました。
 
Self-hostedコースにご参加の皆様は公式サイトの以下のページをご確認の上、
Hyper-V判定プログラムをセットアップして下さい。
 
http://www.thinkit.co.jp/maniax/3/rule.html
 
お手数おかけいたしますが、よろしくお願いします。
それでは引き続き多数のOSSをインストールできますようご健闘をお祈りします。

OSSのインストールその前に(その9) Windows Web Server 2008 R2でIISを動かす

インストールマニアックス事務局です。
こんにちは。

ここからはいよいよというか、ようやくWebサーバーを動かしたいと思います。動かすサーバーは用意されているIIS 7.5になります。
ただ、その前にサーバーを公開するには固定アドレスである方が何かと便利ですのでこのサーバーのIPアドレスを固定することにします。
 
固定IPアドレスの設定

まず、起動時に開いている「初期構成タスク」にある「ネットワークの構成」をクリックします。

「ローカルエリア接続」だけ出てくると思いますので、これを右クリックして「プロパティ」を選び、IPアドレスの設定画面を開きます。

次にIPv4を選択し、「プロパティ」ボタンをクリックします。

「次のIPアドレスを使う」にし、それぞれの環境に従ってIPアドレスの固定値を設定します。「OK」ボタンをクリックすると設定されます。

 
IISのインストール

そして、いよいよここからIISのインストールです。「初期構成タスク」から「役割の追加」をクリックします。

するとウイザードが開始されますので、まず「次へ」をクリックします。

次に導入するサーバーを聞かれます。もちろん「Webサーバー(IIS)」を選択し、「次へ」をクリックします。

IISの説明です。「次へ」をクリックします。

インストールの最終確認です。「インストール」をクリックします。

すると同時にインストールするオプションの確認になります。CGIなどは使うことになると思うのですが、それぞれの言語の導入時に行えばいいと思いますので、このまま「次へ」をクリックします。

するとインストールが始まります。終了すると「閉じる」ボタンがアクティブになりますので、クリックします。

これでWebサーバーが起動しました。
ブラウザーに先ほど設定したサーバーのIPアドレスを入力するとIISのデフォルト画面が表示されると思います。

このローカルIPアドレスで起動しているWebサーバーにルーターのNAPTなどを使用してインターネットからアクセスできるように設定すると、いよいよインストールマニアックスの本番です。
 
このサーバーにモリモリOSSをインストールして、どんどん報告を上げてください。お待ちしています。