Windows編
Unix編
番外編
Windowsマシン(OSはWindows2000 Professional)でインデックスを作成します。
WebサーバーソフトとしてAN HTTPDをインストールし、
genindex.cgiをローカルで実行してインデックスを作成し、さらにローカルで検索を実行するところまで目指します。
Perl(Version5以降)とAN HTTPDが事前にインストールされている必要があります。(本稿でインストールしたバージョンはPerlが5.8.3, AN HTTPDが1.42kです。)
インストールされていない場合は、
ActivePerlと
AN HTTPDからダウンロードして
インストールしてください。
ディレクトリ構成は以下のようになっているものとします。
【Windowsマシンのディレクトリ構成例】
C:\
|
+-- MyDocuments
|
|
+-- homepage \ index.html
| ...(その他のHTMLファイル)
|
+-- cgi-bin
|
|
+-- msearch \ genindex.cgi
| indexing.pl
| msearch.cgi
| default.cfg
| jcode.pl
| utfjp.pl
| utfjpent.txt
| utfjpmap.txt
|
+------ utfjpsup \ armscii8.txt
geostd8.txt
ibmcp0437.txt
...(その他のTXTファイル)
|
URLと上記ディレクトリとの関係は以下のようになっているものとします。
なおHTMLファイルとCGIファイルは必ず同じドライブに置き、
ディレクトリ名に半角英数字以外の文字を使わないでください。
【URLとディレクトリとの関係】
■HTMLファイル(index.htmlのあるURL, ディレクトリ)
ローカルのURL http://localhost/
公開サーバーのURL: http://www.foo.com/~bar/
ディレクトリ: C:\MyDocuments\homepage
■CGIファイル
ローカルのURL http://localhost/cgi-bin/
ディレクトリ: C:\MyDocuments\cgi-bin
|
AN HTTPDを起動し、「オプション -> 一般」を開き、
以下のように設定します。
【AN HTTPDの設定内容】「オプション -> 一般」
■一般
ドキュメントルートを C:\MyDocuments\homepage にする。
「CGIを実行する」にチェックを入れる。
「拡張子 .pl,.cgi 実行プログラム perl」の設定があることを確認する。
「CGI出力を検査」のチェックを外す。
■エイリアス
実行パスに以下の内容を追加(もしくは修正)する。
仮想パス: /cgi-bin
ローカルパス: C:\MyDocuments\cgi-bin
|
Webブラウザで http://localhost/cgi-bin/msearch/genindex.cgi を開いてください。
msearch用インデックス作成フォームが表示されます。
以下のように入力して、インデックス作成を開始します。
【msearch用インデックス作成フォームへの入力内容】
インデックス名: default
対象ディレクトリ: ../../homepage
対象ディレクトリのURL: http://www.foo.com/~bar/
対象ファイルの拡張子: .html,.htm
非対象ディレクトリ:
非対象ファイル:
非対象キーワード:
ランキング方法: URL昇順
alt文字の追加: 追加しない
|
問題なくインデックスを作成できるはずです。
(この場合は、C:\MyDocuments\cgi-bin\msearch 内にインデックスファイル(拡張子は.idx)ができます。)
http://localhost/cgi-bin/msearch/msearch.cgi を開けば、
実際に検索することもできます。
作業が完了したら、AN HTTPDを終了させます。
Windowsマシン(OSはWindows2000 Professional)でインデックスを作成します。
WebサーバーソフトとしてApache1.3をインストールし、
genindex.cgiをローカルで実行してインデックスを作成し、さらにローカルで検索を実行するところまで目指します。
Perl(Version5以降)が事前にインストールされている必要があります。(本稿でインストールしたバージョンは5.8.3です。)
インストールされていない場合は、
ActivePerlからダウンロードしてインストールしてください。
その上で、以下のようなディレクトリ構成になっているものとします。
【Windowsマシンのディレクトリ構成例】
C:\
|
+-- MyDocuments
|
|
+-- homepage \ index.html
| ...(その他のHTMLファイル)
|
+-- cgi-bin
|
|
+-- msearch \ genindex.cgi
| indexing.pl
| msearch.cgi
| default.cfg
| jcode.pl
| utfjp.pl
| utfjpent.txt
| utfjpmap.txt
|
+------ utfjpsup \ armscii8.txt
geostd8.txt
ibmcp0437.txt
...(その他のTXTファイル)
|
URLと上記ディレクトリとの関係は以下のようになっているものとします。
なおHTMLファイルとCGIファイルは必ず同じドライブに置き、
ディレクトリ名に半角英数字以外の文字を使わないでください。
【URLとディレクトリとの関係】
■HTMLファイル(index.htmlのあるURL, ディレクトリ)
ローカルのURL http://localhost/
公開サーバーのURL: http://www.foo.com/~bar/
ディレクトリ: C:\MyDocuments\homepage
■CGIファイル
ローカルのURL http://localhost/cgi-bin/
ディレクトリ: C:\MyDocuments\cgi-bin
|
Apache1.3をインストールします。
http://httpd.apache.org/から「Win32 Binary」をダウンロードします。
(本稿執筆時のバージョンは1.3.29でした。)
ダウンロードしたら、実行してインストールします。
インストール時に「Network Domain」「Server Name」「Administrator's Email Address」の入力を促された場合は、
忘れずに入力します。(これらの設定内容については後述します。)
インストールが終了すると、Apacheは自動的に起動します。
Apacheは スタートボタン->プログラム->Apache HTTP Server にインストールされます。
設定ファイル(httpd.conf)の編集、Apacheの起動・停止・再起動などはすべてここから行えます。
またWindows起動時にApacheが起動するようになっています。
「スタートボタン->プログラム->Apache HTTP Server->Configure Apache Server->Edit the Apache httpd.conf Configuration File」で
設定ファイル(httpd.conf)を開き、以下のように修正・追記します。
ドライブの指定ができること、パスの区切りには円記号ではなくスラッシュを使うことに注意してください。
なお下記ServerRootのディレクトリは、Apacheをデフォルト設定のままでインストールした場合のものです。
【httpd.confへの修正・追記内容】(Apache1.3/Win32)
# ■全般
ServerAdmin foo@bar.com
ServerName localhost
ServerRoot "C:/Program Files/Apache Group/Apache"
DocumentRoot "C:/MyDocuments/homepage"
# ■ディレクトリとCGI (CGIディレクトリをAliasする場合)
<Directory ~ "C:/MyDocuments/(homepage|cgi-bin)">
Options All
AllowOverride None
Order Deny,Allow
Deny from all
Allow from all
</Directory>
<IfModule mod_alias.c>
ScriptAlias /cgi-bin/ "C:/MyDocuments/cgi-bin/"
</IfModule>
# ■ディレクトリとCGI (CGIディレクトリをAliasしない場合)
#<Directory "C:/MyDocuments/homepage">
# Options All
# AllowOverride None
# Order Deny,Allow
# Deny from all
# Allow from all
#</Directory>
#<IfModule mod_mime.c>
# AddHandler cgi-script .cgi
#</IfModule>
|
修正・追記が終了したら、上書き保存して終了します。
「スタートボタン->プログラム->Apache HTTP Server->Control Apache Server->Restart」で
Apacheを再起動します。
以下を参考にgenindex.cgiの先頭行のPerlへのパスを修正してからWebブラウザを起動し、 http://localhost/cgi-bin/msearch/genindex.cgi を開いてください。
msearch用インデックス作成フォームが表示されるはずです。
【PerlへのパスがC:\Perl\bin\perlの場合】
#!C:/Perl/bin/perl
|
以下のように入力して、インデックス作成を開始します。
【msearch用インデックス作成フォームへの入力内容】
インデックス名: default
対象ディレクトリ: ../../homepage
対象ディレクトリのURL: http://www.foo.com/~bar/
対象ファイルの拡張子: .html,.htm
非対象ディレクトリ:
非対象ファイル:
非対象キーワード:
ランキング方法: URL昇順
alt文字の追加: 追加しない
|
問題なくインデックスを作成できるはずです。(この場合は、C:\MyDocuments\cgi-bin\msearch 内にインデックスファイル(拡張子は.idx)ができます。)
せっかくローカルサーバーを立てたのですから、msearch.cgiも実行してみましょう。
以下の項目を修正してから、http://localhost/cgi-bin/msearch/msearch.cgi を開きます。
問題なく検索を実行できるはずです。
作業が完了したら、
「スタートボタン->プログラム->Apache HTTP Server->Control Apache Server->Stop」で
Apacheを停止させます。
Windowsマシン(OSはWindows2000 Professional)でインデックスを作成します。
WebサーバーソフトとしてApache2.0をインストールし、
genindex.cgiをローカルで実行してインデックスを作成し、さらにローカルで検索を実行するところまで目指します。
Perl(Version5以降)が事前にインストールされている必要があります。(本稿でインストールしたバージョンは5.8.3です。)
インストールされていない場合は、
ActivePerlからダウンロードしてインストールしてください。
その上で、以下のようなディレクトリ構成になっているものとします。
【Windowsマシンのディレクトリ構成例】
C:\
|
+-- MyDocuments
|
|
+-- homepage \ index.html
| ...(その他のHTMLファイル)
|
+-- cgi-bin
|
|
+-- msearch \ genindex.cgi
| indexing.pl
| msearch.cgi
| default.cfg
| jcode.pl
| utfjp.pl
| utfjpent.txt
| utfjpmap.txt
|
+------ utfjpsup \ armscii8.txt
geostd8.txt
ibmcp0437.txt
...(その他のTXTファイル)
|
URLと上記ディレクトリとの関係は以下のようになっているものとします。
なおHTMLファイルとCGIファイルは必ず同じドライブに置き、
ディレクトリ名に半角英数字以外の文字を使わないでください。
【URLとディレクトリとの関係】
■HTMLファイル(index.htmlのあるURL, ディレクトリ)
ローカルのURL http://localhost/
公開サーバーのURL: http://www.foo.com/~bar/
ディレクトリ: C:\MyDocuments\homepage
■CGIファイル
ローカルのURL http://localhost/cgi-bin/
ディレクトリ: C:\MyDocuments\cgi-bin
|
Apache2.0をインストールします。
http://httpd.apache.org/から「Win32 Binary」をダウンロードします。
(本稿執筆時のバージョンは2.0.49でした。)
ダウンロードしたら、実行してインストールします。
インストール時に「Network Domain」「Server Name」「Administrator's Email Address」の入力を促された場合は、
忘れずに入力します。(これらの設定内容については後述します。)
インストールが終了すると、Apacheは自動的に起動します。
Apacheは スタートボタン->プログラム->Apache HTTP Server にインストールされます。
設定ファイル(httpd.conf)の編集、Apacheの起動・停止・再起動などはすべてここから行えます。
Apacheの起動・停止・再起動はタスクトレイに常駐しているApache Service Monitorから行うこともできます。
またWindows起動時にApacheが起動するようになっています。
「スタートボタン->プログラム->Apache HTTP Server->Configure Apache Server->Edit the Apache httpd.conf Configuration File」で
設定ファイル(httpd.conf)を開き、以下のように修正・追記します。
ドライブの指定ができること、パスの区切りには円記号ではなくスラッシュを使うことに注意してください。
なお下記ServerRootのディレクトリは、Apacheをデフォルト設定のままでインストールした場合のものです。
【httpd.confへの修正・追記内容】(Apache2.0/Win32)
# ■全般
ServerAdmin foo@bar.com
ServerName localhost:80
ServerRoot "C:/Program Files/Apache Group/Apache2"
DocumentRoot "C:/MyDocuments/homepage"
AddDefaultCharset Off
# ■ディレクトリとCGI (CGIディレクトリをAliasする場合)
<Directory ~ "C:/MyDocuments/(homepage|cgi-bin)">
Options All
AllowOverride None
Order Deny,Allow
Deny from all
Allow from all
</Directory>
ScriptAlias /cgi-bin/ "C:/MyDocuments/cgi-bin/"
# ■ディレクトリとCGI (CGIディレクトリをAliasしない場合)
#<Directory "C:/MyDocuments/homepage">
# Options All
# AllowOverride None
# Order Deny,Allow
# Deny from all
# Allow from all
#</Directory>
#AddHandler cgi-script .cgi
|
修正・追記が終了したら、上書き保存して終了します。
「スタートボタン->プログラム->Apache HTTP Server->Control Apache Server->Restart」で
Apacheを再起動します。
以下を参考にgenindex.cgiの先頭行のPerlへのパスを修正してからWebブラウザを起動し、 http://localhost/cgi-bin/msearch/genindex.cgi を開いてください。
msearch用インデックス作成フォームが表示されるはずです。
【PerlへのパスがC:\Perl\bin\perlの場合】
#!C:/Perl/bin/perl
|
以下のように入力して、インデックス作成を開始します。
【msearch用インデックス作成フォームへの入力内容】
インデックス名: default
対象ディレクトリ: ../../homepage
対象ディレクトリのURL: http://www.foo.com/~bar/
対象ファイルの拡張子: .html,.htm
非対象ディレクトリ:
非対象ファイル:
非対象キーワード:
ランキング方法: URL昇順
alt文字の追加: 追加しない
|
問題なくインデックスを作成できるはずです。(この場合は、C:\MyDocuments\cgi-bin\msearch 内にインデックスファイル(拡張子は.idx)ができます。)
せっかくローカルサーバーを立てたのですから、msearch.cgiも実行してみましょう。
以下の項目を修正してから、http://localhost/cgi-bin/msearch/msearch.cgi を開きます。
問題なく検索を実行できるはずです。
作業が完了したら、
「スタートボタン->プログラム->Apache HTTP Server->Control Apache Server->Stop」で
Apacheを停止させます。
(注意)Windowsでローカルサーバーを立てる場合はIISではなく、AN HTTPDかApacheを使ってください。
本稿はあくまでも、参考用です。
Windowsマシン(OSはWindows2000 Professional)でインデックスを作成します。
WebサーバーソフトとしてIIS5.0をインストールし、
genindex.cgiをローカルで実行してインデックスを作成し、さらにローカルで検索を実行するところまで目指します。
なお以下の作業はすべてAdminitsrator等の管理者権限のあるユーザーでログオンして行ってください。
IISとPerl(Version5以降)が事前にインストールされている必要があります。(本稿でインストールしたPerlのバージョンは5.8.3です。)
インストールされていない場合は、
IISについては、「コントロールパネル->アプリケーションの追加と削除->Windowsコンポーネントの追加と削除」を選び、
そこから「インターネット インフォメーション サービス(IIS)」を追加してください。
ActivePerlについては、
ActivePerlからダウンロードして
インストールしてください。
ディレクトリ構成は以下のようになっているものとします。
【Windowsマシンのディレクトリ構成例】
C:\
|
+-- MyDocuments
|
|
+-- homepage \ index.html
| ...(その他のHTMLファイル)
|
+-- cgi-bin
|
|
+-- msearch \ genindex.cgi
| indexing.pl
| msearch.cgi
| default.cfg
| jcode.pl
| utfjp.pl
| utfjpent.txt
| utfjpmap.txt
|
+------ utfjpsup \ armscii8.txt
geostd8.txt
ibmcp0437.txt
...(その他のTXTファイル)
|
URLと上記ディレクトリとの関係は以下のようになっているものとします。
なおHTMLファイルとCGIファイルは必ず同じドライブに置き、
ディレクトリ名に半角英数字以外の文字を使わないでください。
【URLとディレクトリとの関係】
■HTMLファイル(index.htmlのあるURL, ディレクトリ)
ローカルのURL http://localhost/web/
公開サーバーのURL: http://www.foo.com/~bar/
ディレクトリ: C:\MyDocuments\homepage
■CGIファイル
ローカルのURL http://localhost/cgi-bin/
ディレクトリ: C:\MyDocuments\cgi-bin
|
IISの設定画面(IISの管理コンソール)を開き、以下のように設定します。
なお設定画面を開くには、「スタートボタン->ファイル名を指定して実行」を選び、名前の欄に「%SystemRoot%\System32\Inetsrv\iis.msc」と入力し(「」は入力不要)、「OK」ボタンを押します。
(スタートメニューに管理ツールが表示されている場合は、そこにある「インターネット サービス マネージャ」を選ぶことでも可能。)
【IISの設定内容(その1)】「CGIをコマンドにマップ」
IISの管理コンソールで以下の設定を行う。
■設定場所
ツリーにある「インターネット インフォメーション サービス->(マシン名)->
既定のWebサイト」を右クリック->プロパティ->
「ホーム ディレクトリ」タブ->「アプリケーションの設定」の「構成」ボタン->
「アプリケーションのマッピング」タブ->アプリケーションのマッピング
■設定内容
「追加」ボタンを押して、以下の内容を入力し、「OK」ボタンを押す。
実行ファイル: C:\Perl\bin\perl.exe "%s" %s
拡張子: .cgi
動詞: 制限をクリックし、「GET,HEAD,POST」と入力。(「」は入力不要)
スクリプトエンジン: チェックを入れる。
ファイルの存在を確認する: チェックを入れる。
■注意事項
perl.exeへのパスがC:\Perl\bin\perl.exeでない場合、
「実行ファイル」欄に入力するパスを実際のパスに変更する。
|
【IISの設定内容(その2)】「仮想ディレクトリwebを作成」
IISの管理コンソールで以下の設定を行う。
■設定場所
ツリーにある「インターネット インフォメーション サービス->(マシン名)->
既定のWebサイト」を右クリック->新規作成->仮想ディレクトリ
■設定内容(1/2)
ウィザード形式の画面が出てくるので、以下のように入力し、
「次へ」ボタンを押していく。
(ウィザード最後の画面では「完了」ボタンを押す。)
エイリアス: web
ディレクトリ: C:\MyDocuments\homepage
以下を許可: 「読み取り」のみにチェックを入れる。
■設定内容(2/2)
ツリーに出来た「web」ノードを右クリック->プロパティ->「ドキュメント」タブを選び、
「既定のドキュメントを有効にする」にチェックが入っていることを確認し、
「追加」ボタンを押して、既定のドキュメント名に
「index.html」と「index.htm」をひとつずつ追加する。(「」は入力不要。)
入力したら、左の↑ボタンを使って、これらをリストの上部に移動させる。
(最上部は「index.html」「index.htm」のどちらでもよい。)
|
【IISの設定内容(その3)】「仮想ディレクトリcgi-binを作成」
IISの管理コンソールで以下の設定を行う。
■設定場所
ツリーにある「インターネット インフォメーション サービス->(マシン名)->
既定のWebサイト」を右クリック->新規作成->仮想ディレクトリ
■設定内容
ウィザード形式の画面が出てくるので、以下のように入力し、
「次へ」ボタンを押していく。
(ウィザード最後の画面では「完了」ボタンを押す。)
(「実行と書き込みの両方の許可を選択することは危険な場合があります。
両方を許可しますか?」と聞かれたら、「はい」ボタンを押す。)
エイリアス: cgi-bin
ディレクトリ: C:\MyDocuments\cgi-bin
以下を許可: 「読み取り」「ASP等のスクリプトを実行する」
「ISAPIアプリケーションやCGI等を実行する」「書き込み」にチェックを入れる。
|
次に、エクスプローラを用いてアクセス権の設定を行います。
【アクセス権の設定内容】
エクスプローラを用いてアクセス権の設定を行う。
■設定場所
ツリーで「デスクトップ->マイ コンピュータ->
ローカル ディスク(C)->MyDocuments」を右クリック->
プロパティ->「セキュリティ」タブ
■設定内容
名前の欄に「Everyone」があり、Everyoneのアクセス許可が
「フルコントロール:許可」になっていることを確認する。
(なっていない場合は、そうなるように変更する。)
|
次に、genindex.cgiとmsearch.cgiを修正します。
【スクリプトの修正内容】(genindex.cgiとmsearch.cgi)
■修正内容
両方のスクリプトについて、
2行目に追記して以下のようにする。(1行目は修正不要。)
#!/usr/local/bin/perl
chdir "c:/MyDocuments/cgi-bin/msearch";
#
■注意事項
chdirの引数には、genindex.cgiやmsearch.cgiのあるディレクトリを
ドライブ名を含むフルパスで表記する。
なお半角円記号は半角スラッシュになることに注意。
|
Webブラウザで http://localhost/cgi-bin/msearch/genindex.cgi を開いてください。
msearch用インデックス作成フォームが表示されます。
以下のように入力して、インデックス作成を開始します。
【msearch用インデックス作成フォームへの入力内容】
インデックス名: default
対象ディレクトリ: ../../homepage
対象ディレクトリのURL: http://www.foo.com/~bar/
対象ファイルの拡張子: .html,.htm
非対象ディレクトリ:
非対象ファイル:
非対象キーワード:
ランキング方法: URL昇順
alt文字の追加: 追加しない
|
問題なくインデックスを作成できるはずです。
(この場合は、C:\MyDocuments\cgi-bin\msearch 内にインデックスファイル(拡張子は.idx)ができます。)
http://localhost/cgi-bin/msearch/msearch.cgi を開けば、
実際に検索することもできます。
作業が完了したら、管理コンソールを用いてIISを停止させます。
【IISの開始・停止】
IISの管理コンソールを用い、以下のようにして行う。
■開始方法
ツリーにある「インターネット インフォメーション サービス->(マシン名)->
既定のWebサイト」を右クリック->開始
■停止方法
ツリーにある「インターネット インフォメーション サービス->(マシン名)->
既定のWebサイト」を右クリック->停止
|
Windowsマシン(OSはWindows2000 Professional)でバッチ処理を用いてインデックスを作成します。
Perl(Version5以降)がインストールされている必要があります。(本稿でインストールしたバージョンは5.8.3です。)
インストールされていない場合は、
ActivePerlからダウンロードしてインストールしてください。
その上で、以下のようなディレクトリ構成を想定します。
【Windowsマシンのディレクトリ構成例】
C:\
|
+-- MyDocuments
|
|
+-- homepage \ index.html
| ...(その他のHTMLファイル)
|
+-- msearch \ genindex.pl
| indexing.pl
| jcode.pl
| utfjp.pl
| utfjpent.txt
| utfjpmap.txt
|
+------ utfjpsup \ armscii8.txt
geostd8.txt
ibmcp0437.txt
...(その他のTXTファイル)
|
URLと上記ディレクトリとの関係は以下のようになっているものとします。
なおHTMLファイルとCGIファイルは必ず同じドライブに置いてください。
【URLとディレクトリとの関係】
■HTMLファイル(index.htmlのあるURL, ディレクトリ)
公開サーバーのURL: http://www.foo.com/~bar/
ディレクトリ: C:\MyDocuments\homepage
■CGIファイル
ディレクトリ: C:\MyDocuments\msearch
|
まずMS-DOSプロンプト(コマンドプロンプト)を起動します。ある場所は、
Windows95/98/98SE/NT4.0ではスタートボタン -> プログラム、
WindowsMe/2000/XPではスタートボタン -> プログラム -> アクセサリです。
そして以下のように入力します。(赤文字の箇所を入力し、ENTERキーを押します。)
C:\WINNT>cd \
C:\>cd MyDocuments
C:\MyDocuments>cd msearch
C:\MyDocuments\msearch>perl genindex.pl -s
genindex.pl -- index generator for msearch
Copyright (c) 2000-2003 Katsushi Matsuda. All Right Reserved.
Display kanji code is SJIS
インデックスの名前は?
> default
インデックス対象ディレクトリは?(必須)
> ../homepage
インデックス対象ディレクトリのURLは?(必須)
> http://www.foo.com/~bar/
インデックス対象ファイルの拡張子は?(必須)
> .html,.htm
非インデックス対象ディレクトリは?
> <- 何も入力せずにENTERキーだけを押す。
非インデックス対象ファイルは?
> <- 何も入力せずにENTERキーだけを押す。
非インデックス対象キーワードは?
> <- 何も入力せずにENTERキーだけを押す。
ランキング方法は?
[1] 最終更新日時-降順
[2] 最終更新日時-昇順
[3] タイトル-降順
[4] タイトル-昇順
[5] URL-降順
[6] URL-昇順
[0] なし
どれにしますか?[0〜6] > 6
alt属性の文字をインデックスに含めますか?
[1] 含める
[0] 含めない
どれにしますか?[0〜1] > 0
インデックス作成を開始します
■■■既存のインデックスを読み込みます
■■■完了(0ファイル)
■■■インデックス化するファイルを収集しています
■■■完了(128ファイル)
■■■インデックスから削除(0ファイル)
■■■インデックスの更新(0ファイル)
■■■インデックスに追加(128ファイル)
■■■インデックスを保存しています
■■■完了(128ファイル)
インデックス作成は完了しました
C:\MyDocuments\msearch>
|
インデックスファイル(拡張子はidx)は、この場合はC:\MyDocuments\msearch内にできます。
ローカルでインデックスを作成する流れは以上のようになります。
ただインデックス作成時、毎回キー入力(上記画面の赤文字箇所)をするのは面倒です。
入力内容は毎回同じでしょう。
そこで、これを省略する方法も解説します。
まずキー入力内容の入ったテキストファイルを作成します。
1:default
2:../homepage
3:http://www.foo.com/~bar/
4:.html,.htm
5:
6:
7:
8:6
9:0
|
エディタを用いて、上記内容のテキストファイルを作成します。
入力するのは1行目から9行目までで、行番号(1から9)とコロン(:)は入力しないでください。(もちろんhttp://のコロンは入力します。)
行頭や行末に余分なスペースは入力しないでください。
ただし、5行目から7行目(空行)は忘れずに入れておいてください。(改行だけを入力しておきます。)
9行目の0の後には忘れずに改行を入力します。
作成したファイルを前述msearchディレクトリに、
keyinput.txtのファイル名で保存します。(文字コードはShift_JIS、改行コードはCR+LF)
そして、以下のようにします。
C:\WINNT>cd \
C:\>cd MyDocuments
C:\MyDocuments>cd msearch
C:\MyDocuments\msearch>perl genindex.pl -s < keyinput.txt
genindex.pl -- index generator for msearch
Copyright (c) 2000-2003 Katsushi Matsuda. All Right Reserved.
Display kanji code is SJIS
インデックスの名前は?
> インデックス対象ディレクトリは?(必須)
> インデックス対象ディレクトリのURLは?(必須)
> インデックス対象ファイルの拡張子は?(必須)
> 非インデックス対象ディレクトリは?
> 非インデックス対象ファイルは?
> 非インデックス対象キーワードは?
> ランキング方法は?
[1] 最終更新日時-降順
[2] 最終更新日時-昇順
[3] タイトル-降順
[4] タイトル-昇順
[5] URL-降順
[6] URL-昇順
[0] なし
どれにしますか?[0〜6] > alt属性の文字をインデックスに含めますか?
[1] 含める
[0] 含めない
どれにしますか?[0〜1] > インデックス作成を開始します
■■■既存のインデックスを読み込みます
■■■完了(0ファイル)
■■■インデックス化するファイルを収集しています
■■■完了(128ファイル)
■■■インデックスから削除(0ファイル)
■■■インデックスの更新(0ファイル)
■■■インデックスに追加(128ファイル)
■■■インデックスを保存しています
■■■完了(128ファイル)
インデックス作成は完了しました
C:\MyDocuments\msearch>
|
この方法でも問題なくインデックスが作成されます。
この方法をさらに改良し、作業全体をバッチファイル化することで
キー入力を完全に省略することもできます。
これについても解説します。
テキストエディタで以下の内容のファイルを作成し、
genindex.batのファイル名で上述msearchディレクトリに保存します。
@echo off
c:
cd \MyDocuments\msearch
perl genindex.pl -s < keyinput.txt
|
このバッチファイルをダブルクリックする等して実行すれば、
インデックスが作成されます。
バッチファイルへのショートカットをデスクトップに置いておくと、便利です。
バッチファイルについて詳しいことは、市販の書籍等を参考にしてください。
ローカルマシン(OSはFreeBSD4.8)でインデックスを作成します。
WebサーバーソフトとしてApache1.3をインストールし、
genindex.cgiをローカルで実行してインデックスを作成し、さらにローカルで検索を実行するところまで目指します。
Perl(Version5以降)がインストールされていることを確認しておいてください。
ディレクトリ構成は以下のようになっているものとします。
【Unixマシンのディレクトリ構成例】
/usr/home
|
+-- marbacka
|
|
+-- homepage / index.html
| ...(その他のHTMLファイル)
|
+-- cgi-bin
|
|
+-- msearch / genindex.cgi
| indexing.pl
| msearch.cgi
| default.cfg
| jcode.pl
| utfjp.pl
| utfjpent.txt
| utfjpmap.txt
|
+------ utfjpsup / armscii8.txt
geostd8.txt
ibmcp0437.txt
...(その他のTXTファイル)
|
URLと上記ディレクトリとの関係は以下のようになっているものとします。
なおディレクトリの中にシンボリックリンクを含めないでください。
【URLとディレクトリとの関係】
■HTMLファイル(index.htmlのあるURL, ディレクトリ)
ローカルのURL: http://localhost/
公開サーバーのURL: http://www.foo.com/~bar/
ディレクトリ: /usr/home/marbacka/homepage/
■CGIファイル
ローカルのURL: http://localhost/cgi-bin/
ディレクトリ: /usr/home/marbacka/cgi-bin/
|
Apache1.3のインストールを行います。
FreeBSD上ですので、portsからインストールします。(朱書き箇所を入力します)
# cd /usr/ports/www/apache13
# make install clean
(コンパイルとインストールが行われる)
# rehash
|
Apache1.3のインストールが完了しました。
マシンの設定は以下のようになっています。なおApacheのインストール先ディレクトリは
OSによって異なることがあります。以下の記述は一例です。
# view /etc/rc.conf
...
hostname="fbsd48.localdomain"
...
# view /etc/hosts
...
127.0.0.1 localhost fbsd48.localdomain
...
# which httpd
/usr/local/sbin/httpd
# /usr/local/sbin/httpd -v
Server version: Apache/1.3.29 (Unix)
Server built: ...
# find / -name httpd.conf -print
/usr/local/etc/apache/httpd.conf
# which apachectl
/usr/local/sbin/apachectl
# which perl
/usr/bin/perl
# perl -v
...
This is perl, version 5.005_03 built for i386-freebsd
...
# uname -a
FreeBSD fbsd48.localdomain 4.8-RELEASE FreeBSD 4.8-RELEASE #0:
...
|
httpd.confを編集します。ここでは /usr/local/etc/apache/httpd.conf を編集します。
なお下記ServerRootのディレクトリは一例です。
【httpd.confへの修正・追記内容】(Apache1.3/Unix)
# ■全般
ServerAdmin foo@bar.com
ServerName fbsd48.localdomain
ServerRoot "/usr/local"
DocumentRoot "/usr/home/marbacka/homepage"
# ■ディレクトリとCGI (CGIディレクトリをAliasする場合)
<Directory ~ "/usr/home/marbacka/(homepage|cgi-bin)">
Options All
AllowOverride None
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
<IfModule mod_alias.c>
ScriptAlias /cgi-bin/ "/usr/home/marbacka/cgi-bin/"
</IfModule>
# ■ディレクトリとCGI (CGIディレクトリをAliasしない場合)
#<Directory "/usr/home/marbacka/homepage">
# Options All
# AllowOverride None
# Order Deny,Allow
# Deny from all
# Allow from 127.0.0.1
#</Directory>
#<IfModule mod_mime.c>
# AddHandler cgi-script .cgi
#</IfModule>
|
設定が完了したので、さっそくApacheを起動します。
# /usr/local/sbin/apachectl start
/usr/local/sbin/apachectl start: httpd started
#
|
以下の項目が正しいことを確認してから
Webブラウザを起動し、 http://localhost/cgi-bin/msearch/genindex.cgi を開いてください。
msearch用インデックス作成フォームが表示されるはずです。
- genindex.cgiの先頭行のPerlへのパス
- genindex.cgiのパーミッション(典型的には755)
- msearchディレクトリのパーミッション(典型的には777)
以下のように入力して、インデックス作成を開始します。
【msearch用インデックス作成フォームへの入力内容】
インデックス名: default
対象ディレクトリ: ../../homepage
対象ディレクトリのURL: http://www.foo.com/~bar/
対象ファイルの拡張子: .html,.htm
非対象ディレクトリ:
非対象ファイル:
非対象キーワード:
ランキング方法: URL昇順
alt文字の追加: 追加しない
|
問題なくインデックスを作成できるはずです。(この場合は、/usr/home/marbacka/cgi-bin/msearch 内にインデックスファイル(拡張子は.idx)ができます。)
せっかくローカルサーバーを立てたのですから、msearch.cgiも実行してみましょう。
以下の項目が正しいことを確認してから、http://localhost/cgi-bin/msearch/msearch.cgi を開きます。
- msearch.cgiの先頭行のPerlへのパス
- msearch.cgiのパーミッション(典型的には755)
問題なく検索を実行できるはずです。
作業が完了したら、以下のようにしてApacheを停止させます。
# /usr/local/sbin/apachectl stop
/usr/local/sbin/apachectl stop: httpd stopped
#
|
ローカルマシン(OSはFreeBSD4.8)でインデックスを作成します。
WebサーバーソフトとしてApache2.0をインストールし、
genindex.cgiをローカルで実行してインデックスを作成し、さらにローカルで検索を実行するところまで目指します。
Perl(Version5以降)がインストールされていることを確認しておいてください。
ディレクトリ構成は以下のようになっているものとします。
【Unixマシンのディレクトリ構成例】
/usr/home
|
+-- marbacka
|
|
+-- homepage / index.html
| ...(その他のHTMLファイル)
|
+-- cgi-bin
|
|
+-- msearch / genindex.cgi
| indexing.pl
| msearch.cgi
| default.cfg
| jcode.pl
| utfjp.pl
| utfjpent.txt
| utfjpmap.txt
|
+------ utfjpsup / armscii8.txt
geostd8.txt
ibmcp0437.txt
...(その他のTXTファイル)
|
URLと上記ディレクトリとの関係は以下のようになっているものとします。
なおディレクトリの中にシンボリックリンクを含めないでください。
【URLとディレクトリとの関係】
■HTMLファイル(index.htmlのあるURL, ディレクトリ)
ローカルのURL: http://localhost/
公開サーバーのURL: http://www.foo.com/~bar/
ディレクトリ: /usr/home/marbacka/homepage/
■CGIファイル
ローカルのURL: http://localhost/cgi-bin/
ディレクトリ: /usr/home/marbacka/cgi-bin/
|
Apache2.0のインストールを行います。
FreeBSD上ですので、portsからインストールします。(朱書き箇所を入力します)
# cd /usr/ports/www/apache2
# make install clean
(コンパイルとインストールが行われる)
# rehash
|
Apache2.0のインストールが完了しました。
マシンの設定は以下のようになっています。なおApacheのインストール先ディレクトリは
OSによって異なることがあります。以下の記述は一例です。
# view /etc/rc.conf
...
hostname="fbsd48.localdomain"
...
# view /etc/hosts
...
127.0.0.1 localhost fbsd48.localdomain
...
# which httpd
/usr/local/sbin/httpd
# /usr/local/sbin/httpd -v
Server version: Apache/2.0.49 (Unix)
Server built: ...
# find / -name httpd.conf -print
/usr/local/etc/apache2/httpd.conf
# which apachectl
/usr/local/sbin/apachectl
# which perl
/usr/bin/perl
# perl -v
...
This is perl, version 5.005_03 built for i386-freebsd
...
# uname -a
FreeBSD fbsd48.localdomain 4.8-RELEASE FreeBSD 4.8-RELEASE #0:
...
|
httpd.confを編集します。ここでは /usr/local/etc/apache2/httpd.conf を編集します。
なお下記ServerRootのディレクトリは一例です。
【httpd.confへの修正・追記内容】(Apache2.0/Unix)
# ■全般
ServerAdmin foo@bar.com
ServerName fbsd48.localdomain:80
ServerRoot "/usr/local"
DocumentRoot "/usr/home/marbacka/homepage"
AddDefaultCharset Off
# ■ディレクトリとCGI (CGIディレクトリをAliasする場合)
<Directory ~ "/usr/home/marbacka/(homepage|cgi-bin)">
Options All
AllowOverride None
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
ScriptAlias /cgi-bin/ "/usr/home/marbacka/cgi-bin/"
# ■ディレクトリとCGI (CGIディレクトリをAliasしない場合)
#<Directory "/usr/home/marbacka/homepage">
# Options All
# AllowOverride None
# Order Deny,Allow
# Deny from all
# Allow from 127.0.0.1
#</Directory>
#AddHandler cgi-script .cgi
|
設定が完了したので、さっそくApacheを起動します。
# /usr/local/sbin/apachectl -k start
#
|
以下の項目が正しいことを確認してから
Webブラウザを起動し、 http://localhost/cgi-bin/msearch/genindex.cgi を開いてください。
msearch用インデックス作成フォームが表示されるはずです。
- genindex.cgiの先頭行のPerlへのパス
- genindex.cgiのパーミッション(典型的には755)
- msearchディレクトリのパーミッション(典型的には777)
以下のように入力して、インデックス作成を開始します。
【msearch用インデックス作成フォームへの入力内容】
インデックス名: default
対象ディレクトリ: ../../homepage
対象ディレクトリのURL: http://www.foo.com/~bar/
対象ファイルの拡張子: .html,.htm
非対象ディレクトリ:
非対象ファイル:
非対象キーワード:
ランキング方法: URL昇順
alt文字の追加: 追加しない
|
問題なくインデックスを作成できるはずです。(この場合は、/usr/home/marbacka/cgi-bin/msearch 内にインデックスファイル(拡張子は.idx)ができます。)
せっかくローカルサーバーを立てたのですから、msearch.cgiも実行してみましょう。
以下の項目が正しいことを確認してから、http://localhost/cgi-bin/msearch/msearch.cgi を開きます。
- msearch.cgiの先頭行のPerlへのパス
- msearch.cgiのパーミッション(典型的には755)
問題なく検索を実行できるはずです。
作業が完了したら、以下のようにしてApacheを停止させます。
# /usr/local/sbin/apachectl -k stop
#
|
なおインストールしたApache2.0は、OS起動時に自動的に起動するようになっています。
これを抑止したい場合は、/usr/local/etc/rc.d/apache2.shのファイル名を変更しておいてください。(他のスクリプトから呼び出されるようになっているため。)
Unixマシン(OSはFreeBSD4.8)上でシェルスクリプトを用いてインデックスを作成します。
さらに作成したスクリプトをcronを用いて自動実行させることで、インデックスを自動で更新することを目指します。
Perl(Version5以降)がインストールされていることを確認しておいてください。
ディレクトリ構成は以下のようになっているものとします。
【Unixマシンのディレクトリ構成例】
/usr/home
|
+-- marbacka
|
|
+-- homepage / index.html
| ...(その他のHTMLファイル)
|
+-- cgi-bin
|
|
+-- msearch / genindex.pl
| indexing.pl
| jcode.pl
| utfjp.pl
| utfjpent.txt
| utfjpmap.txt
|
+------ utfjpsup / armscii8.txt
geostd8.txt
ibmcp0437.txt
...(その他のTXTファイル)
|
URLと上記ディレクトリとの関係は以下のようになっているものとします。
なおディレクトリの中にシンボリックリンクを含めないでください。
【URLとディレクトリとの関係】
■HTMLファイル(index.htmlのあるURL, ディレクトリ)
公開サーバーのURL: http://www.foo.com/~bar/
ディレクトリ: /usr/home/marbacka/homepage/
■CGIファイル
ディレクトリ: /usr/home/marbacka/cgi-bin/
|
以下の内容のテキストファイルを作成し、/usr/home/marbacka/cgi-bin/msearch内にautogenindex.shのファイル名で保存します。
#!/bin/sh
cd /usr/home/marbacka/cgi-bin/msearch
./genindex.pl <<EOM
default
../../homepage
http://www.foo.com/~bar/
.html,.htm
6
0
EOM
|
「.html,.htm」の行と「6」の行との間には、空の行(改行だけの行)が3行ありますので、間違えないようにしてください。
(この3行は、「非対象ディレクトリ」、「非対象ファイル」、「非対象キーワード」に対応します。)
以下の項目を確認・修正します。
- autogenindex.shのパーミッション(典型的には755)
- genindex.plのパーミッション(典型的には755)
- genindex.plの先頭行のPerlへのパス
- msearchディレクトリのパーミッション(典型的には777)
いよいよ、インデックスを作成します。(朱書き箇所を入力します。)
% cd /usr/home/marbacka/cgi-bin/msearch
% ./autogenindex.sh
genindex.pl -- index generator for msearch
Copyright (c) 2000-2003 Katsushi Matsuda. All Right Reserved.
Display kanji code is EUC
インデックスの名前は?
> インデックス対象ディレクトリは?(必須)
> インデックス対象ディレクトリのURLは?(必須)
> インデックス対象ファイルの拡張子は?(必須)
> 非インデックス対象ディレクトリは?
> 非インデックス対象ファイルは?
> 非インデックス対象キーワードは?
> ランキング方法は?
[1] 最終更新日時-降順
[2] 最終更新日時-昇順
[3] タイトル-降順
[4] タイトル-昇順
[5] URL-降順
[6] URL-昇順
[0] なし
どれにしますか?[0〜6] > alt属性の文字をインデックスに含めますか?
[1] 含める
[0] 含めない
どれにしますか?[0〜1] > インデックス作成を開始します
■■■既存のインデックスを読み込みます
■■■完了(0ファイル)
■■■インデックス化するファイルを収集しています
■■■完了(128ファイル)
■■■インデックスから削除(0ファイル)
■■■インデックスの更新(0ファイル)
■■■インデックスに追加(128ファイル)
■■■インデックスを保存しています
■■■完了(128ファイル)
インデックス作成は完了しました
% ls -laF
total 670
drwxrwxrwx 3 root marbacka 512 May 5 00:00 ./
drwxr-xr-x 3 marbacka marbacka 512 May 5 00:00 ../
-rwxr-xr-x 1 marbacka marbacka 128 May 5 02:00 autogenindex.sh*
-rw-r--r-- 1 marbacka marbacka 37898 Apr 15 00:00 default.cfg
-rw-r--r-- 1 marbacka marbacka 135433 May 5 02:00 default.idx <- できている。
-rwxr-xr-x 1 marbacka marbacka 30635 Apr 15 00:00 genindex.cgi*
-rwxr-xr-x 1 marbacka marbacka 5421 Apr 15 00:00 genindex.pl*
-rw-r--r-- 1 marbacka marbacka 26857 Apr 15 00:00 indexing.pl
-rw-r--r-- 1 marbacka marbacka 21093 Apr 15 00:00 jcode.pl
-rwxr-xr-x 1 marbacka marbacka 52436 Apr 15 00:00 msearch.cgi*
-rw-r--r-- 1 marbacka marbacka 87454 Apr 15 00:00 utfjp.pl
-rw-r--r-- 1 marbacka marbacka 9578 Apr 15 00:00 utfjpent.txt
-rw-r--r-- 1 marbacka marbacka 240923 Apr 15 00:00 utfjpmap.txt
drwxr-xr-x 2 marbacka marbacka 1536 May 5 00:00 utfjpsup/
%
|
シェルスクリプトを用いてインデックスを作成することができました。
今度はこのスクリプトをcronを用いて自動実行させるように設定してみます。
毎朝4時30分にインデックスを更新するようにするには、
以下のようにします。
(この書式の意味については、crontab(5)をご参照ください。)
【crontab -eで追加・編集する内容】
30 4 * * * /usr/home/marbacka/cgi-bin/msearch/autogenindex.sh
|
% crontab -e
(上記内容を入力して、保存する。)
% crontab -l
30 4 * * * /usr/home/marbacka/cgi-bin/msearch/autogenindex.sh
%
|
こうしておくだけで、インデックスが毎朝4時30分に自動で更新されるようになります。
確認するには、例えば以下のようにします。
% date
Wed May 5 12:00:00 JST 2004
% ls -laF /usr/home/marbacka/cgi-bin/msearch/default.idx
-rw-r--r-- 1 marbacka marbacka 136433 May 5 04:30 default.idx
%
|
FreeBSD4.8のインストール手順を記します。
インストールするソフトは、msearchのインデックスを作成する上で最低限必要なものだけです。
(1)FreeBSD4.8のインストールCDからコンピューターを起動します。
そしてインストーラの指示に従って、インストールを進めていきます。
注意事項を以下に示します。
- インストール方法はStandard installationにする。
- DistributionはKern-Developerにする。(Xは後でインストールする。)
- portsはインストールしない。(後で最新版をインストールする。)
(2)OS本体のインストールが終了したら、最新版のportsを丸ごとインストールします。
# cd /tmp
# fetch ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/ports/ports/ports.tar.gz
(ダウンロードの進捗が表示される。)
# cd /usr
# tar xzf /tmp/ports.tar.gz
# rm /tmp/ports.tar.gz
|
(3)portupgrade(sysutils/portupgrade)をインストールします。
# cd /usr/ports/sysutils/portupgrade
# make install clean
(コンパイルとインストールが行われる。)
# rehash
|
portupgradeをインストールすると、portsを使ってインストールしたソフトのバージョンアップなどを自動で行えるようになります。
サンプルを以下に記します。(OSインストール時には行う必要はありません。)
# portversion -l "<"
(バージョンアップの必要なソフトがあると表示される。)
# portupgrade -a
(旧バージョンのソフトのバージョンアップを行う。)
# portsdb -uU
(portupgrade用データベースの更新を行う。時間がかかる。)
# portversion -l "<"
(何も表示されなければ、バージョンアップ完了。)
# portsclean -CDP
(portsからインストールした際にできたワークファイルなどが削除される。)
|
(4)XFree86 4.x(x11/XFree86-4)をインストールします。かなりの長時間を要します。
(5)Webブラウザとして、Mozilla(www/mozilla)をインストールします。これもかなりの長時間を要します。
(6)日本語対応の端末エミュレータとして、kterm(japanese/kterm)をインストールします。
インストールされたktermを起動するには、X Window上で以下のように入力します。
% kterm -km euc &
(EUC-JPモードでktermが起動する。)
%
|
(7)ウィンドウマネージャーとして、fvwm2(x11-wm/fvwm2)をインストールします。
(8)コンソール上でX Windowの設定ファイルの編集を行います。
- /usr/X11R6/lib/X11/xinit/xinitrcを$HOMEにコピーし、さらに.xinitrcとリネームする。
- .xinitrcのパーミッションを644に変更する。
- .xinitrcをエディタで開き、twmをfvwmと書き換える。
(9)コンソール上でキーボードの設定を行います。
/etc/rc.confを開き、以下のように修正・追記します。
以下の記述は日本語106キーボードの場合のものです。
(/stand/sysinstall コマンドでも設定可能。)
(10)X Window上でキーボードの設定を行います。
xinitコマンドでXを起動し、xf86cfgコマンドで設定画面を開き、キーボードを設定します。
設定が終了したら、X Windowを終了します。(「login」という名前のxterm内で、exitと入力します。)
(11)LHA for Unixをインストールします。
以下の記述はVersion 1.14iをインストールするときのものです。
# cd /tmp
# fetch http://www2m.biglobe.ne.jp/~dolphin/lha/prog/lha-114i.tar.gz
# tar xzf ./lha-114i.tar.gz
# cd lha-114i
# make install clean
(コンパイルとインストールが行われる。)
# rehash
# cd ..
# rm -rf ./lha-114i/*
# rmdir lha-114i
# rm lha-114i.tar.gz
|
(12)日本語対応のviエディタとして、xvi(japanese/xvi-euc)をインストールします。
(13)Webページ一括ダウンロードツールとして、wget(ftp/wget)をインストールします。
(14)FreeBSD4.8には最初からPerl 5.005_03が入っているので、msearchのインデックスを作るだけであったら、
このバージョンで差し支えありません。
もしも新しいバージョンのPerlをインストールしたい時には、
Perl5(lang/perl5)かPerl5.8(lang/perl58)からインストールします。
(15)ネットワークの設定を確認・修正します。サンプルを以下に記します。
# view /etc/rc.conf
...
hostname="fbsd48.localdomain"
...
# view /etc/hosts
...
127.0.0.1 localhost fbsd48.localdomain
...
|
(16)シャットダウンして電源を切断するには、以下のように入力します。
# shutdown -p now
Shutdown NOW!
...
The operating system has halted.
Please press any key to reboot.
|
「The operating system has halted.」のメッセージが表示されたのを確認してから、
コンピューターの電源を切ります。
wgetを使って自サイトのWebページをダウンロードしてみました。
備忘録として書いているだけなので、
オプションなどの詳細についてはオンラインマニュアルを読んでください。
ホームページのトップページURLがディレクトリ名を含まない場合(例:www.foo.com)は以下の方法でダウンロードできるはずです。
rオプションはRecursive(再帰的)を意味します。(<a>タグなどで張られたリンクをたどるという意味です。)
% wget -r http://www.foo.com/
...
|
ホームページのトップページURLがディレクトリ名を含んでいる場合(例:www.foo.com/~user1/)は
以下のようになります。プロバイダのホームページスペースを使っているユーザー等多くのユーザーが
これに該当するでしょう。Iオプションで対象ディレクトリを制限します。
% wget -rI/~user1/ http://www.foo.com/~user1/
...
|
上記でIオプションなしでwgetを実行すると、同一ドメイン(FQDN)内の別ユーザー(例:www.foo.com/~user2/)のWebページまで
かっさらってしまう恐れがあります。(リンクを張っている場合)
|