Windows Server 2003のIIS 6.0で、Namazu for Win32のインストールからCGIによる実行の手順を詳しく解説します。Windows Server 2003 R2でも同じ手順です。 |
0. 前提条件 ●Windows Server 2003のIISを使う |
1. 用意するもの●Windows Server 2003のインストールCD-ROM |
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 ![]() 「システム環境変数」の「Path」を編集する ![]() 「Path」を編集する ●「システム環境変数」に、次の2つの環境変数を新規作成する。 変数名:KANWADICTPATH ![]() 環境変数「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 ![]() 3つのコマンドを順に実行する ●「システム環境変数」の方にある、環境変数「Path」の先頭に「C:\namazu\bin;」を追加する。 ![]() 再度システム環境変数「Path」を編集する ●「システム環境変数」に、次の6つの環境変数を新規作成する。 変数名:HOME ![]() 環境変数「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 ●「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」コマンドを実行して、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 ![]() 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」行を編集して、絶対パスから仮想ディレクトリを使ったパスに変換する 以上 |