Windows Server 2003 IIS 6.0でNamazuを実行する

Windows Server 2003のIIS 6.0で、Namazu for Win32のインストールからCGIによる実行の手順を詳しく解説します。Windows Server 2003 R2でも同じ手順です。


0. 前提条件
●Windows Server 2003のIISを使う
●WindowsはCドライブにインストールされている
●ActivePerl、Namazu、kakasiは、既定のフォルダにインストールする
●異なる条件でインストールしたくても我慢して、まずこの文書のとおりにやって経験値を稼ぐ
1. 用意するもの
●Windows Server 2003のインストールCD-ROM
●nmz2.0.16.001-win32.zip(最新版Namazu for Win32一式)
●kakasi-2.3.4.zip(最新版kakasi一式)
●ActivePerl-5.8.8.817-MSWin32-x86-257965.msi(最新版ActivePerl 5.8系一式)
2. IISのインストール

●「サーバーの役割管理」で、「役割を追加または削除する」リンクをクリックする。


「サーバーの役割管理」で、「役割を追加または削除する」リンクをクリック

●「サーバーの構成ウィザード」で、「アプリケーションサーバー(IIS、ASP.NET)」を選択する。


「アプリケーションサーバー(IIS、ASP.NET)」を選択

●「FrontPageサーバー拡張」と「ASP.NETの有効化」は、Namazuの実行には不要なので、チェックしない。


「FrontPageサーバー拡張」「ASP.NETの有効化」はNamazuには不要

●「アプリケーションサーバーになりました」と表示されたら、IISのインストールは完了。


「アプリケーションサーバーになりました」と表示されたらIISのインストールは完了

3. ActivePerlのインストール

●エクスプローラで「ActivePerl-5.8.8.817-MSWin32-x86-257965.msi」をダブルクリックして、インストールを開始する。


ActivePerlのインストールを開始する

●インストールするコンポーネントを選択する。「Documentation」と「Examples」は、Namazuの実行には必要ない。インストール先は、デフォルトの「C:¥Perl」フォルダとする。


デフォルトの「C:\Perl」フォルダにインストールする

●ActivePerlとIISの設定に必要なオプションを選択する。よくわからない場合は、デフォルトの全チェックのままにする。


必要に応じてオプションを選択する。わからなければデフォルトのままでもよい


ActivePerlのインストールを完了する

4. kakasiのインストール

●エクスプローラで「kakasi-2.3.4.zip」をダブルクリックして、出てきた「kakasi」フォルダを、フォルダのツリー構造を保ったまま丸ごとC:\フォルダにコピーする。


「kakasi-2.3.4.zip」をダブルクリックして解凍し、「kakasi」フォルダを丸ごとC:\フォルダにコピーする

●「コントロールパネル」→「システム」の、「詳細設定」タブを開く。


「詳細設定」タブを開く

●ダイアログ下部の「環境変数」ボタンをクリックする。
●下半分の「システム環境変数」の方にある、環境変数「Path」の先頭に「C:\kakasi\bin;」を追加する。
新:C:\kakasi\bin;C:\Perl\bin\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
旧:C:\Perl\bin\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

「システム環境変数」の「Path」を編集する


「Path」を編集する

●「システム環境変数」に、次の2つの環境変数を新規作成する。

変数名:KANWADICTPATH
変数値:C:\kakasi\share\kakasi\kanwadict

変数名:ITAIJIDICTPATH
変数値:C:\kakasi\share\kakasi\itaijidict

環境変数「KANWADICTPATH」を新規作成する


環境変数「ITAIJIDICTPATH」を新規作成する

●すべてのダイアログを「OK」ボタンで閉じる。


編集内容を確認して、すべて「OK」ボタンをクリックして閉じる

5. namazuのインストール

●エクスプローラで「nmz2.0.16.001-win32.zip」をダブルクリックして、出てきた「nmz2.0.16.001-win32」フォルダを、フォルダのツリー構造を保ったまま丸ごとCドライブのルートフォルダにコピーする。


「nmz2.0.16.001-win32.zip」をダブルクリックして「nmz2.0.16.001-win32」フォルダを取り出す

●「C:\nmz2.0.16.001-win32」フォルダから、「kakasi」フォルダと「namazu」フォルダを、フォルダのツリー構造を保ったまま丸ごとCドライブのルートフォルダにコピーする。


「kakasi」フォルダと「namazu」フォルダをC:\フォルダにコピーする(「kakasi」フォルダは上書きコピー)

●「C:\nmz2.0.16.001-win32\README-ja.txt」ファイルを熟読する。
●コマンドプロンプトを開いて、次のコマンドを順に実行する。初めてNamazuをインストールする環境では、「ppm-uninst.bat」がすべて「Error ... is not installed」と表示されるのが正しい。

CD C:\nmz2.0.16.001-win32
ppm-uninst.bat
ppm-inst.bat

3つのコマンドを順に実行する

●「システム環境変数」の方にある、環境変数「Path」の先頭に「C:\namazu\bin;」を追加する。


再度システム環境変数「Path」を編集する

●「システム環境変数」に、次の6つの環境変数を新規作成する。

変数名:HOME
変数値:C:\namazu

変数名:LANG
変数値:ja_JP.SJIS

変数名:NAMAZURC
変数値:C:\namazu\etc\namazurc

変数名:MKNMZRC
変数値:C:\namazu\etc\mknmzrc

変数名:NAMAZULOCALEDIR
変数値:C:\namazu\share\locale

変数名:pkgdatadir
変数値:C:\namazu\share\namazu

環境変数「HOME」を新規登録する


環境変数「LANG」を新規登録する


環境変数「NAMAZURC」を新規登録する


環境変数「MKNMZRC」を新規登録する


環境変数「NAMAZULOCALEDIR」を新規登録する


環境変数「pkgdatadir」を新規登録する


登録した環境変数群

●すべてのダイアログを「OK」ボタンで閉じる。
●「C:\namazu\etc\namazu\mknmzrc-sample.win32」ファイルをコピーして、「C:\namazu\etc\namazu」フォルダに拡張子なしの「mknmzrc」ファイルを作成する。ファイルを作成するフォルダは、システム環境変数「MKNMZRC」に指定したパスと一致していること。


サンプルファイルをコピーして、拡張子なしの「namazurc」「mknmzrc」設定ファイルを作成する

●「C:\namazu\etc\namazu\namazurc-sample.win32」ファイルをコピーして、「C:\namazu\etc\namazu」フォルダに拡張子なしの「namazurc」ファイルを作成する。ファイルを作成するフォルダは、システム環境変数「NAMAZURC」に指定したパスと一致していること。
●設定ファイルを環境に合わせて編集する。保存するときに拡張子を付けないように注意する。

mknmzrc
$ADDRESS = 'kyama@mountain.jp';
(自分のメールアドレス)

namazurc
EmphasisTags "" ""
(コメントでなくしただけ)

●「C:\Inetpub」フォルダの下に、「Scripts」フォルダを作成する。
●「C:\Inetpub\Scripts」フォルダの下に、「search」フォルダを作成する。
●「C:\namazu\libexec」フォルダの「namazu.cgi.exe」を、「C:\Inetpub\Scripts\search」フォルダにコピーする。


フォルダを作成して「namazu.cgi.exe」ファイルをコピーする

●コマンドプロンプトを開いて「COPY」コマンドを実行し、ファイル名がピリオドから始まる「.namazurc」ファイルを作成する。「namazurc」ファイルを編集するたびにこの作業を実行すること。

COPY C:\namazu\etc\namazu\namazurc C:\Inetpub\Scripts\search\.namazurc

「COPY」コマンドで「.namazurc」ファイルを作成する

●続いて次のコマンドを順に実行し、Namazuの設定をテストする。全テストが「PASS」になるまで、これまでの設定を見直しては繰り返し実行する。

CD C:\namazu\pltests
perl alltests.pl

「perl alltests.pl」コマンドを実行して、Namazuのテストを実行する

6. インデックスの作成

●次のコマンドを実行して、インデックスを作成する。あらかじめ「C:\sample」フォルダと「C:\temp」フォルダを作成して、「C:\sample」フォルダに検索対象のファイルを置く。

mknmz -U -O C:\namazu\var\namazu\index C:\sample 1>C:\temp\namazu.log 2>C:\temp\namazu_err.log

「mknmz」コマンドを実行して、インデックスを作成する

●「C:\temp\namazu.log」ファイルのインデックス作成結果と、「C:\temp\namazu_err.log」ファイルのエラー発生状況を確認する。


インデックスの作成後は、ログファイルを確認する

●「mknmz」コマンド(正確には「mknmz.bat」バッチファイル)の使い方は、次のコマンドで調べる。

mknmz --help

「mknmz --help」でコマンドのヘルプを表示する

7. CGIを使ったWebでの検索

●「管理ツール」→「インターネットインフォメーションサービス(IIS)マネージャ」を開く。
●「既定のWebサイト」を右クリックして、「新規作成」→「仮想ディレクトリ」を選択する。
●次の2つの仮想ディレクトリを作成する。

エイリアス:test
パス:C:\sample
アクセス許可:読み取り

エイリアス:Scripts
パス:C:\Inetpub\Scripts
アクセス許可:ISAPIアプリケーションやCGIなどを実行する

IISに仮想ディレクトリを作成する


インデックス対象のファイルやフォルダをIISから利用できるように、エイリアスを作成する


ファイルシステムの実際のパスを指定する


「読み取り」アクセスだけを許可して、ファイルやフォルダをWeb経由で読み取れるようにする


CGI実行用に、「Scripts」仮想ディレクトリを作成する


CGI実行用の、実際のフォルダのパスを指定する


「読み取り」アクセス権を外し、「ISAPIアプリケーションやCGIなどを実行する」アクセス許可のみを与える


アクセス権の差異による、2つの仮想ディレクトリのアイコンの違いに注意

●「インターネットインフォメーションサービス(IIS)マネージャ」で、「Webサービス拡張」を開く。


このままCGIを実行して検索を実行すると、「404 Not Found」エラーになる

●「すべての不明なCGI拡張」を許可する。


エラーを解決する最も簡単な方法として、「すべての不明なCGI拡張」を許可する方法がある


「状態」フィールドが「許可」に変化し、CGIの実行が許可された


すべてのCGIを許可したくなければ、「新しいWebサービス拡張を追加」リンクをクリックして、「namazu.cgi.exe」を登録する


別の方法としては、Namazu専用Webサービス(.exeタイプのCGI)を追加して、Webサービス拡張を許可する方法もある

●Webブラウザを起動して、次のURLを直接入力して開く。404 Not Foundエラーになる場合は、URLと「すべての不明なCGI拡張」の許可を確認する。

http://localhost/Scripts/search/namazu.cgi.exe

●ヒットしそうなキーワードを入力して検索を実行し、検索結果が表示されることを確認する。
●検索結果のファイル名をクリックすると、404 Not Foundになる。これは、Webサーバが返したファイルのパスが、「/C|/sample/eula.txt」のようにOSの絶対パスになっているためだ。解決するには「namazurc」および「.namazurc」ファイルに次の行を追加して、絶対パスを仮想ディレクトリに変換する。
Replace /[Cc]\|/sample/ http://Webサーバのコンピュータ名、ホスト名、FQDNのいずれか/test/

検索結果のパスがファイルシステムの絶対パスで表示されるため、Web経由でファイルを開くことができない


「namazurc」ファイルの「Replace」行を編集して、絶対パスから仮想ディレクトリを使ったパスに変換する


以上