Windows Server 2008(R2)にNamazu for Windowsをインストールする
本技術文書では、Windows Server 2008ファミリおよびWindows Server 2008 R2ファミリにNamazu for Windowsをインストールして、マイクロソフトOfficeドキュメントとPDFファイルを検索対象に含む、全文検索Webシステムを構築するための設定手順を解説する。
Windowsは既定のインストール先である「C:\Windows」フォルダーにインストールされているものとする。他のドライブやフォルダーにインストールされている場合は、適宜読み替えてほしい。
第2章 ActivePerlとアプリケーションのインストール
全文検索Webシステムの前提として、まずは次の手順で「インターネットインフォメーションサービス(IIS)」をインストールしよう。ここでのポイントは、必ずCGIの役割サービスをインストールすることだ。
1. 管理者としてログオンして、[管理ツール]の[サーバーマネージャー]を開く。
2. [役割の概要]−[役割の追加]をクリックして、[役割の追加ウィザード]を開く。
3. [サーバーの役割の選択]画面で、[Webサーバー(IIS)]を選択する。このとき、R2ではないWindows Server 2008では「Webサーバー(IIS)に必要な機能を追加しますか?」というダイアログが開いて[Windowsプロセスアクティブ化サービス]機能をインストールするように促すので、[必要な機能を追加]ボタンをクリックしてインストールする。
4. [役割サービスの選択]画面では、[Webサーバー]−[アプリケーション開発]にある[CGI]を選択する。他の役割サービスは既定のままでよい(画面 1)。
画面 1 IISをインストールする際に、[Webサーバー]−[アプリケーション開発]−[CGI]の役割サービスをインストールする
5. ウィザードを完了してIISをインストールする。R2ではないWindows Server 2008では、IISのインストール後にKB982666の更新プログラムを適用する。
ActiveStateからActivePerlの「5.8.x.y」系列の最新版をダウンロードする。Windows用のActivePerlは32bitのx86版と64bitのx64版が用意されているが、Namazuで利用するPerlパッケージモジュール(ppm)はx86版ActivePerlの方が揃いやすいため、Windows Serverのビット数に関係なくx86版ActivePerlを使用する。
ここでは本技術文書の執筆時の最新版である「ActivePerl-5.8.9.827-MSWin32-x86-291969.msi」をインストールする。既定のインストール先は「C:\Perl」フォルダーだ。なお、次の5つのオプションコンポーネントはNamazuの実行には必要ないので、特に使う予定がなければインストールしなくてもよい(画面 2)。環境変数PATHや拡張子の関連付け、スクリプトマッピングなどは、インストーラに自動実行させると簡単だ。
Perl\Perl ISAPI
Perl\PerlEx
Perl\PerlScript
Documentation
Example
リスト 1 インストールしなくてもよいActivePerlのオプションコンポーネント
画面 2 不要なコンポーネントをインストールしないことで、システムの軽量化と不正実行などのトラブル予防につながる
ActivePerlのインストールが完了したら、コマンドプロンプトを開いて次のコマンドを順に実行し、環境変数PATHの設定とActivePerlのバージョン番号表示を確認する(画面 3)。
C:\Users\Administrator> path
リスト 2 システム環境変数「Path」の設定を表示するコマンド
PATH=C:\Perl\site\bin;C:\Perl\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
リスト 3 「path」コマンドの実行結果
C:\Users\Administrator> perl -v
リスト 4 ActivePerlのバージョン番号を表示するコマンド
●実行結果2
This is perl, v5.8.9 built for MSWin32-x86-multi-thread
(with 12 registered patches, see perl -V for more detail)
Copyright 1987-2008, Larry Wall
Binary build 827 [291969] provided by ActiveState http://www.ActiveState.com
Built Jan 26 2010 21:15:51
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
リスト 5 「perl -v」コマンドの実行結果
画面 3 環境変数の設定とperlの正常実行を確認する
Namazu単体ではOfficeドキュメントやPDFファイルを検索できないので、これらのファイルを開くことができるアプリケーションが別途必要になる。ここではマイクロソフトOfficeとアドビAcrobat Readerをインストールする。インストール後はライセンス認証を行い、更新プログラムやアップデータを適用して、初期設定などの追加操作なしで実行できる状態にしておこう。更新案内などが表示される状態では、インデックス作成処理が停止してしまう。
Windowsとアプリケーション環境が整ったら、Namazuのインストールと設定に取りかかる。次の手順を実行しよう。
1. 「全文検索システム Namazu」から、最新のNamazu for Windowsをダウンロードする。ここでは本技術文書の執筆時の最新版である「Namazu for Windows 2.0.20(アーカイブ001)」(nmz2.0.20.001-win32.zip)を使用する。
2. [ダウンロード]フォルダーなどに保存した「nmz2.0.20.001-win32.zip」ファイルをエクスプローラで開いて、圧縮フォルダーの内容である「nmz2.0.20.001-win32」フォルダーを適切な作業フォルダー(例えば「C:\Temp」)にコピーする。
3. 「C:\Temp\nmz2.0.20.001-win32」フォルダーにある「README-ja.txt」ファイルを開いて、インストール手順などを確認する。
4. 「C:\Temp\nmz2.0.20.001-win32」フォルダー内の「namazu」フォルダーと「kakasi」フォルダーを、両方とも「C:\」フォルダーへコピーする(画面 4)。移動操作でもよいが、移動元フォルダー(例では「C:\Temp」)のアクセス権などが移動先にも継承されて、悪影響を与えないように注意する。
画面 4 「nmz2.0.20.001-win32」フォルダーから、「namazu」フォルダーと「kakasi」フォルダーを「C:\」フォルダーへコピーする
Namazuが使用する、「Microsoft Visual C++ 2005 SP1再頒布可能パッケージ ATLのセキュリティ更新プログラム(x86)」をインストールするため、「C:\Temp\nmz2.0.20.001-win32\redist」フォルダーにある「vcredist_x86.exe」を実行する。VC++の再頒布可能パッケージには複数のバージョンがあり、互換性不足でトラブルの原因となりやすい。既に似たような再頒布可能パッケージをインストール済みであっても、Namazuに同梱のパッケージをインストールしておこう。
続いて「C:\Temp\nmz2.0.20.001-win32\dll」フォルダーにある「msvcr71.dll」ファイルを、「C:\namazu\bin」フォルダーにコピーする(画面 5)。Namazuのマニュアル(README-ja.txt)では「システムディレクトリ(C:\Windows\System32)」にコピーするよう指示されているが、MSDNの「Cランタイムライブラリ」によると、「msvcr71.dllのコピーは、実行可能プログラムと共にアプリケーションディレクトリに保存してください」とあるので、マイクロソフトの推奨設定に従うことにする。
画面 5 「msvcr71.dll」ファイルを「C:\namazu\bin」フォルダーにコピーする
なお、DLLの検索は次の順番で行われる。
1. .exeのあるフォルダー
2. カレントフォルダー
3. Windowsシステムフォルダー(System32)
4. Windowsフォルダー
5. 環境変数PATHに設定されたフォルダー
コマンドプロンプトを開いて次のコマンドを順に実行し、Perlのパッケージモジュールと拡張パッケージモジュールをインストールする(画面 6、画面 7)。拡張パッケージモジュールは、マイクロソフトOfficeやジャストシステムの一太郎などで作成したドキュメントファイルを検索したい場合に使用するオプションなので、必須ではない。なお、インストール中にWebブラウザが起動してPPMの説明Webページを表示するが、エラーではない。
C:\Users\Administrator> CD /D C:\Temp\nmz2.0.20.001-win32
C:\Temp\nmz2.0.20.001-win32> ppm-uninst
C:\Temp\nmz2.0.20.001-win32> ppm-inst
C:\Temp\nmz2.0.20.001-win32> ext-uninst
C:\Temp\nmz2.0.20.001-win32> ext-inst
リスト 6 Perlパッケージモジュールをインストールする
画面 6 Namazuが必要とするPerlパッケージモジュールをインストールする
画面 7 Officeドキュメントなどを検索できるように、拡張パッケージモジュールもインストールする
Namazuやkakasiの実行に必要な環境変数を設定するために、次の手順を実行する。環境変数の設定前に開いていたコマンドプロンプトには新しい環境変数が反映されないので、今後コマンド操作を実行する場合は、コマンドプロンプトの再起動が必要になる。
1. コントロールパネルの[システムとメンテナンス](Windows Server 2008)または[システムとセキュリティ](Windows Server 2008 R2)を開く。
2. [システム]−画面左の[システムの詳細設定]タスクを実行する。
3. [システムのプロパティ]ダイアログの[詳細設定]タブで、右下にある[環境変数]ボタンをクリックする。
4. [環境変数]ダイアログで、[システム環境変数]グループにある変数名「Path」をクリックして選択し、[編集]ボタンをクリックする(画面 8)。
画面 8 「Path」などのシステム環境変数を設定する
5. [変数値]フィールドをクリックしてカーソルを文字列の左端にセットし、「C:\namazu\bin;C:\xpdf;」(末尾のセミコロンを含む)と書き加えて[OK]ボタンをクリックする。PDF検索ツール「Xpdf」を利用しない場合は「C:\namazu\bin;」だけでよい。
6. [環境変数]ダイアログに戻り、[システム環境変数]グループの下にある[新規]ボタンをクリックする。
7. [変数名]に「HOME」を、[変数値]に「C:\namazu」をそれぞれ入力して、[OK]ボタンをクリックする。「LANG」など、残りの環境変数も同じ手順で新規作成する(表 1)。
変数名 |
新規/編集 |
変数値(既存の編集後) |
データ型 |
Path |
編集 |
C:\namazu\bin;C:\xpdf; |
REG_EXPAND_SZ |
HOME |
新規 |
C:\namazu |
REG_SZ |
LANG |
新規 |
ja_JP.SJIS |
REG_SZ |
NAMAZURC |
新規 |
C:\namazu\etc\namazu\namazurc |
REG_SZ |
MKNMZRC |
新規 |
C:\namazu\etc\namazu\mknmzrc |
REG_SZ |
NAMAZULOCALEDIR |
新規 |
C:\namazu\share\locale |
REG_SZ |
KANWADICTPATH |
新規 |
C:\kakasi\share\kakasi\kanwadict |
REG_SZ |
ITAIJIDICTPATH |
新規 |
C:\kakasi\share\kakasi\itaijidict |
REG_SZ |
pkgdatadir |
新規 |
C:\namazu\share\namazu |
REG_SZ |
表 1 Namazuが使用するシステム環境変数一覧
複数のシステム環境変数を一括して登録するには、テキストエディタでリスト 7のようなバッチファイル(namazuenv.bat)を作成して「Reg」コマンドを連続実行する方法があるが、次の2点に注意する。
u 注意1:1行目で環境変数「Path」の既存設定を上書きするので、事前にパスの設定を読み出して適切に修正してから上書きする。
u 注意2:レジストリ編集で環境変数を直接設定するので、システムを再起動するまで設定が反映されない。
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v Path /t REG_EXPAND_SZ /d "C:\namazu\bin;C:\xpdf;C:\Perl\site\bin;C:\Perl\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\"
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v HOME /d "C:\namazu"
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v LANG /d "ja_JP.SJIS"
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v NAMAZURC /d "C:\namazu\etc\namazu\namazurc"
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v MKNMZRC /d "C:\namazu\etc\namazu\mknmzrc"
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v NAMAZULOCALEDIR /d "C:\namazu\share\locale"
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v KANWADICTPATH /d "C:\kakasi\share\kakasi\kanwadict"
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v ITAIJIDICTPATH /d "C:\kakasi\share\kakasi\itaijidict"
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v pkgdatadir /d "C:\namazu\share\namazu"
リスト 7 システム環境変数を一括設定する「namazuenv.bat」バッチファイル(要再起動)
1. Xpdfのサイトから、「Precompiled binaries」の「x86, DOS/Win32」版と、「Language Support Packages」の「Japanese」をそれぞれダウンロードして、適切なフォルダーに展開する。本技術文書の執筆時点では、それぞれ「xpdf-3.02pl4-win32.zip」と「xpdf-japanese.tar.gz」で、これらを「C:\Temp」フォルダーに展開して「xpdf-3.02pl4-win32」フォルダーと「xpdf-japanese」フォルダーを得た。Zip形式の圧縮ファイルはWindowsのエクスプローラで展開できるが、「tar.gz」形式の圧縮ファイルは対応する解凍ソフトが別途必要になる。
2. 「C:\Temp」フォルダーにある「xpdf-3.02pl4-win32」フォルダーを「C:\」フォルダーにコピーして、コピー後のフォルダー名を「xpdf」に変更する(画面 9)。
画面 9 「C:\xpdf」フォルダーと「xpdf-japanese」サブフォルダーを作成する
3. 「C:\Temp」フォルダーにある「xpdf-japanese」フォルダーを、「C:\xpdf」フォルダーの下にコピーする。
4. テキストエディタで「C:\xpdf\xpdf-japanese」フォルダーにある「add-to-xpdfrc」ファイルを開いて、内容をクリップボードにコピーする(リスト 8)。このサンプル設定ファイルではメモ帳が対応していない改行コードが使われているので、「秀丸エディタ」などの高機能なテキストエディタを利用するとよい。
#----- begin Japanese support package (2004-jul-27)
cidToUnicode Adobe-Japan1 /usr/local/share/xpdf/japanese/Adobe-Japan1.cidToUnicode
unicodeMap ISO-2022-JP /usr/local/share/xpdf/japanese/ISO-2022-JP.unicodeMap
unicodeMap EUC-JP /usr/local/share/xpdf/japanese/EUC-JP.unicodeMap
unicodeMap Shift-JIS /usr/local/share/xpdf/japanese/Shift-JIS.unicodeMap
cMapDir Adobe-Japan1 /usr/local/share/xpdf/japanese/CMap
toUnicodeDir /usr/local/share/xpdf/japanese/CMap
#displayCIDFontTT Adobe-Japan1 /usr/..../kochi-mincho.ttf
#----- end Japanese support package
リスト 8 「add-to-xpdfrc」ファイルの内容をコピーする
5. 「C:\xpdf」フォルダーにある「sample-xpdfrc」ファイルをコピーして、拡張子のない「xpdfrc」ファイルを作成する。
6. テキストエディタで「xpdfrc」ファイルを開いて末尾に「add-to-xpdfrc」ファイルの内容を貼り付け、次の文字列置換を実行して上書き保存する(画面 10)。
/usr/local/share/xpdf/japanese/
リスト 9 置換前の文字列
C:\xpdf\japanese\
リスト 10 置換後の文字列
画面 10 「xpdfrc」ファイルを開いて、末尾に「add-to-xpdfrc」ファイルの内容を貼り付ける
「C:\namazu\etc\namazu\mknmzrc-sample.win32」フォルダーにある「mknmzrc-sample.win32」ファイルを同じフォルダー内でコピー&ペーストして、拡張子のない「mknmzrc」ファイルを作成する。名前の変更時に「拡張子を変更すると、ファイルが使えなくなる可能性があります。変更しますか?」という問い合わせダイアログが表示されるが、構わず[はい]ボタンをクリックする。
次に、テキストエディタで「mknmzrc」ファイルを開いて、必要な設定値の行頭の「# 」を削除してから値を修正する。「mknmzrc」ファイルはインデックスの作成時に参照される設定ファイルで、設定内容としてはインデックスの作成対象の取捨選択、使用メモリ量、ファイルサイズの上限などがある。Namazuは既定の設定で適度に動いてくれるので、とりあえず次のように管理者のメールアドレスだけ設定しておけばよい(画面 11)。その他の設定は、後でインデックスを作ってみてから調整するとよい。
# $ADDRESS = 'webmaster@VIRTUALPC3';
リスト 11 メールアドレスの既定値(コメント化されている)
$ADDRESS = 'admin@example.jp';
リスト 12 コメント化を解除して、任意のメールアドレスに書き換える
画面 11 「mknmzrc」ファイルを作成して、必要な設定項目を編集する
コマンドプロンプトを開いて次のコマンドを実行し、最終行に「All <数値> tests passed」と表示されることを確認する(画面 12、画面 13)。
C:\Users\Administrator> CD /D C:\namazu\pltests
C:\namazu\pltests> perl alltests.pl
リスト 13 テストの実行
画面 12 「perl alltests.pl」コマンドを実行して、機能テストを開始する
画面 13 すべてのテスト項目が「PASS」になることを確認する
失敗するテスト項目があったり、長時間放置しても次のテスト項目に進まなかったり、Officeアプリケーションのアクティベーションや初期設定を求められたりする場合は、次の点を再度確認して、必要であればアプリケーションやPerlパッケージモジュールを再インストールしてみよう。
l ActivePerlやアプリケーションは正しく実行できるか
l アプリケーションを1度は実行して、ライセンス認証やユーザー登録、初期設定などを済ませているか
l Namazuに同梱のランタイムライブラリをインストールしたか
l Perlパッケージモジュールを正しくインストールしたか
l 環境変数を漏れなく設定しているか
l 環境変数の設定値は、「セミコロンで区切る」などの流儀に従っているか
l 「mknmzrc」ファイルや「xpdfrc」ファイルの内容と、実際のインストールパスが一致しているか
l 「mknmzrc」ファイルや「xpdfrc」ファイルのファイル名に、拡張子が付いていないか
次の内容のバッチファイルを作成して、「C:\namazu\bin」フォルダーに「makeindex.bat」というファイル名で保存する。ここではインデックス対象のドキュメントを保存した「C:\Share」フォルダーに4つのサブフォルダーがあって、一括してインデックスを作成するには量が多すぎるという想定で、4分割してインデックスを連続作成している(画面 14)。
インデックスの作成結果は「C:\Temp\namazu_idx.txt」ファイルに、エラーは「C:\Temp\namazu_err.txt」ファイルにそれぞれ記録される(バッチファイルを実行するごとに内容はクリアされる)。
@ECHO OFF
CD /D C:\namazu\var\namazu\index
ECHO Y|DEL .\*
perl -x -S C:\namazu\bin\mknmz -U "C:\Share\セミナー資料" >C:\Temp\namazu_idx.txt 2>C:\Temp\namazu_err.txt
perl -x -S C:\namazu\bin\mknmz -U -Y "C:\Share\雑用" >>C:\Temp\namazu_idx.txt 2>>C:\Temp\namazu_err.txt
perl -x -S C:\namazu\bin\mknmz -U -Y "C:\Share\新ネタ" >>C:\Temp\namazu_idx.txt 2>>C:\Temp\namazu_err.txt
perl -x -S C:\namazu\bin\mknmz -U -Y "C:\Share\勉強会" >>C:\Temp\namazu_idx.txt 2>>C:\Temp\namazu_err.txt
リスト 14 インデックスを分割作成するバッチファイル「makeindex.bat」
画面 14 インデックスを分割作成するバッチファイル「makeindex.bat」
u 「-U」オプション
「--no-encode-uri」と等価で、インデックス作成時にパスやファイル名をエンコードしない。
検索対象のファイルを調べています...
70個のファイルがインデックス作成の対象として見つかりました
1/70 - /C|/Share/セミナー資料/GPO実習.txt [text/plain]
2/70 - /C|/Share/セミナー資料/IW2004/AD-Security.ppt [application/powerpoint]
リスト 15 エンコードされていないインデックス(namazu_idx.txtより抜粋)
検索対象のファイルを調べています...
70個のファイルがインデックス作成の対象として見つかりました
1/70 - /C|/Share/%A5%BB%A5%DF%A5%CA%A1%BC%BB%F1%CE%C1/GPO%BC%C2%BD%AC.txt [text/plain]
2/70 - /C|/Share/%A5%BB%A5%DF%A5%CA%A1%BC%BB%F1%CE%C1/IW2004/AD-Security.ppt [application/powerpoint]
リスト 16 URLエンコードされたインデックス(namazu_idx.txtより抜粋)
u 「-Y」オプション
「--no-delete」と等価で、既存インデックスに含まれていないファイルを、削除されたものとして取り扱わない。例えば、最初に「セミナー資料」フォルダーをターゲットにインデックスを作成して、次に「-Y」オプションなしで「雑用」フォルダーのインデックスを作成する。当然「雑用」フォルダーには「セミナー資料」フォルダー内のファイルはないので、「セミナー資料」インデックスから全情報が消えて、「雑用」フォルダー内のファイルだけで作成したインデックスが残る。したがって、インデックスを分割作成する場合は「-Y」オプションが必須となる。
なお、「namazu_err.txt」に次のようなエラーが記録されることがあるが、Namazuの問題ではないようなので、無視してよい。
Use of uninitialized value in pattern match (m//) at C:/namazu/share/namazu/filter/visio.pl line 116, <GEN255> line 11.
リスト 17 インデックス作成時のエラー例
インデックスを作成したら、コマンドプロンプトで次のコマンドを実行して、キーワード検索をテストしてみよう。ここでは検索キーワードとして「テスト」を指定している(画面 15)。
C:\Users\Administrator> namazu テスト
リスト 18 コマンドプロンプトでの検索実行例
検索結果
参考ヒット数: [ テスト: 36 ]
検索式にマッチする 36 個の文書が見つかりました。
1. R (スコア: 23)
著者: i-junkol
日付: Mon, 08 May 2000 14:27:56 +0900
R Windows 2000R オペレーティング システム Active Directory Migration Tool (ADMT)
による Windows NT 4.0 リソース ドメインの Windows 2000 組織単位 (OU) への統合テ
クニカル ウォークスルー 要約 このテクニ
/C|/Share/セミナー資料/ポリテクセンター関西/2004/マイグレーション/ホワイトペーパ
ー/ADMT_ResDom_Walkthru.doc (1,344,000 bytes)
リスト 19 検索結果例
画面 15 「namazuテスト」コマンドで、「テスト」を含むドキュメントを検索する
Web経由で検索を実行するには、WebサイトにCGI実行用の特別なディレクトリを作成して、Namazuに同梱のCGI用実行ファイル「namazu.cgi.exe」を配置する方法が簡単だ。ここでは「既定のWebサイト」を使ってWeb検索システムを構築してみよう。
1. エクスプローラを開いて、「C:\inetpub」フォルダーの下に「search」フォルダーを作成し、「C:\namazu\libexec」フォルダーにある「namazu.cgi.exe」ファイルをコピーする(画面 16)。
画面 16 「C:\inetpub\search」フォルダーに「namazu.cgi.exe」ファイルをコピーする
2. 管理ツールの「インターネットインフォメーションサービス(IIS)マネージャー」を開く。
3. 左ペインで[<コンピュータ名>]−[サイト]−[Default Web Site]を展開する。
4. [Default Web Site]を右クリックして[仮想ディレクトリの追加]を実行する(画面 17)。
画面 17 [Default Web Site]に仮想ディレクトリを追加する
5. [仮想ディレクトリの追加]ダイアログで次のように入力して、[OK]ボタンをクリックする(画面 18)。左ペインでは、[Default Web Site]の下に「search」仮想ディレクトリが表示される。
エイリアス:search
物理パス:C:\inetpub\search
リスト 20 [仮想ディレクトリの追加]ダイアログの入力項目
画面 18 「search」仮想ディレクトリを追加する
6. 左ペインで[search]仮想ディレクトリをクリックして、中ペインでハンドラーマッピングの一覧から[CGI-exe]を選択し、右ペインで[機能のアクセス許可の編集]を実行する(画面 19)。
画面 19 [CGI-exe]を選択して[機能のアクセス許可の編集]操作を実行する
7. [機能のアクセス許可の編集]ダイアログで、[読み取り]のチェックをオフにして、[スクリプト]と[実行]のチェックをオンにする(画面 20)。
画面 20 [読み取り]をオフにして、かわりに[実行]をオンにする
8. 中ペインで[CGI-exe]のハンドラーマッピングが有効になったことを確認する。
9. 左ペインで[<コンピュータ名>]をクリックして、中ペインの[ISAPIおよびCGIの制限]を開く(画面 21)。
画面 21 左ペインで[<コンピュータ名>]をクリックして、中ペインの[ISAPIおよびCGIの制限]を開く
10. [ISAPIまたはCGIの制限の追加]ダイアログで、[拡張パスの実行を許可する]をチェックする(画面 22)。
画面 22 [拡張パスの実行を許可する]をチェックする
11. Webブラウザで次のURLにアクセスして、設定したCGIが正常に実行できるか確認する。ページエラーやファイルのダウンロードではなく、「Namazuによる全文検索システム」というWebページが表示されれば正常だ(画面 23)。URL中の「コンピュータ名」の部分には、「localhost」ではなく実際のコンピュータ名(ホスト名)を記入する。
http://<コンピュータ名>/search/namazu.cgi.exe
リスト 21
画面 23 CGIが正しく実行されると、「Namazuによる全文検索システム」というWebページが表示される
1. 「C:\namazu\etc\namazu\mknmzrc-sample.win32」フォルダーにある「namazurc-sample.win32」ファイルを同じフォルダー内でコピー&ペーストして、拡張子のない「namazurc」ファイルを作成する。
2. テキストエディタで「namazurc」ファイルを開いて、必要な設定値の行頭の「#」を削除してから値を修正する。「namazurc」ファイルは検索時に参照される設定ファイルで、設定内容としてはインデックスの保存パス、テンプレートの保存パス、ヒット数上限、検索結果中のパスの置換、ヒットしたキーワードの強調表示などがある。Web検索システムでは、少なくともインデックスに含まれる「C|/Share/セミナー資料/<ファイル名>」といったファイルのローカルパスを、他のPCからも参照可能なURLに変換しなければならないので、次のように「Replace」行を設定する必要がある(画面 24)。置換時には大文字と小文字を区別するので、「C」ドライブでも「c」ドライブでも確実に置換できるように、「[Cc]」のように指定するとよい。
#Replace /[Cc]\|/foo/ http://www.example.jp/
リスト 22 「Replace」行の既定値
Replace /[Cc]\|/[Ss]hare/ http://<コンピュータ名>/share/
リスト 23 「Replace」行の編集例
画面 24 「namazurc」ファイルを開いて、「Replace」行を編集する
3. 「namazurc」ファイルを編集したら、管理ツールの「インターネットインフォメーションサービス(IIS)マネージャー」を開いて、「C:\Share」フォルダーを「http://<コンピュータ名>/share/」というURLで参照できるように、[Default Web Site]の下に「share」というエイリアスで仮想ディレクトリを追加しておく(画面 25)。
エイリアス:share
物理パス:C:\Share
リスト 24 仮想ディレクトリ「share」の設定
画面 25 [Default Web Site]の下に仮想ディレクトリ「share」を追加する
4. 「namazurc」ファイルが既定の「コマンドプロンプトを開いて次のコマンドを実行し、ファイル名がピリオドで始まる「.namazurc」設定ファイルを「C:\inetpub\search」フォルダーに作成する(画面 26)。特殊なファイル名なので、「Copy」コマンドで作成するのがもっとも簡単だ。今後「namazurc」ファイルを編集するごとに「Copy」コマンドを再実行して、CGIにも同じ設定内容が反映されるようにする。
C:\Users\Administrator> COPY C:\namazu\etc\namazu\namazurc C:\inetpub\search\.namazurc
画面 26 ファイル名がピリオドで始まる「.namazurc」設定ファイルを作成する
CGIの実行時に表示されるWebページは、「C:\namazu\var\namazu\index」フォルダーにある「NMZ.head.ja」「NMZ.body.ja」「NMZ.foot.ja」を組み合わせて作成されており、インデックスされたファイル数や作成日、管理者のメールアドレスなどが埋め込まれている。そして、これらのファイルはインデックスの作成時に「C:\namazu\share\namazu\template」フォルダー内の同名ファイルから生成されている。したがって、あらかじめ「template」フォルダー内のファイルを編集しておけば、任意の色やフォント、検索オプションでCGI実行時のWebページを表示できる。
一方、別途用意したWebページにNamazuによる検索機能を埋め込むには、「NMZ.head.ja」ファイル内の「<form method="get" action="{cgi}">」行から「</form>」行までをコピーして、Webページに埋め込むと簡単に作成できる。