取扱説明書/SSI版
汎用リスト生成スクリプト - Listgen

■もくじ

設定
使用法
トラブルシューティング

■設定

<1.perlのパス>
listgen_s.cgi の一行目のPerlへのパスををお使いのプロバイダに合わせて書き換えます。
もし、perlのパスが /usr/bin/perl だったら、
#!/usr/bin/perl
と書き換えて下さい。 頭の#!は消してはいけません。


<2.Listgen 一式を格納したディレクトリ>
Listgen 一式をインストールしたディレクトリを指定します。
呼び出すHTMLから見た相対パスでも良いですが、ルートからのフルパスが望ましいです。
相対パス指定の場合、呼び出すHTMLが他のディレクトリにあったりすると動作しません。

フルパスは telnet や ftp 等を使い、各自でお調べ下さい。

例えば、listgen_s.cgi へのフルパスが /home/hoge/public_html/cgi-bin/listgen/listgen_s.cgi だったとします。
その場合、
/home/hoge/public_html/cgi-bin/listgen/
と指定します。


<3.データファイルのあるディレクトリ>
データファイルを格納したディレクトリの名前を指定します。 (初期値:data)
データファイルを格納したディレクトリは listgen_s.cgi のあるディレクトリの中(配下)に無ければなりません。
セキュリティなどの関係から他のディレクトリにログファイルを入れた場合はここを変更します。
readme.html の通りにインストールしたのなら変更しないで下さい。


<4.定義ファイルのあるディレクトリ>
定義ファイルを格納したディレクトリの名前を指定します。 (初期値:def)
定義ファイルを格納したディレクトリは listgen_s.cgi のあるディレクトリの中(配下)に無ければなりません。
セキュリティなどの関係から他のディレクトリに定義ファイルを入れた場合はここを変更します。
readme.html の通りにインストールしたのなら変更しないで下さい。


<5.オプション指定ファイルのあるディレクトリ>
オプション指定ファイルを格納したディレクトリの名前を指定します。 (初期値:ssi_opt)
オプション指定ファイルを格納したディレクトリは listgen_s.cgi のあるディレクトリの中(配下)に無ければなりません。
セキュリティなどの関係から他のディレクトリにオプション指定ファイルを入れた場合はここを変更します。
readme.html の通りにインストールしたのなら変更しないで下さい。


<6.jcode.pl のありか>
日本語コード変換ライブラリ・jcode.pl へのパスを示します。 (初期値:./jcode.pl)
既に掲示板など、他に jcode.pl を利用するプログラムを運用している場合、それを使えば容量を節約できます。
説明がよく分からない方は変更しないで下さい。

■使用法
■SSI 版での注意点
SSI 版は機能的にはCGI 版と全く差はありませんが、その特性上、呼び出し方にかなりの癖があります。
  1. CGI 版ではオプションを全て呼び出し時に指定できましたが、SSI 版では「オプション指定ファイル」を別途用意しなければなりません。
  2. この制限から、HTMLフォームとSSI 版を組み合わせて使うことが出来ません。
    HTMLフォームと連携できるのはCGI 版だけです。
オプションの説明についての大まかな説明については Listgen / 取扱説明書 - CGI版 をご覧下さい。
SSI 版ではこれらオプションを別途ファイルで準備しておくという使い方になります。

とりあえず、標準添付のサンプルファイルを使って使い方を掴んでみましょう。
def ディレクトリに link.def 、 data ディレクトリに link.csv , link_sogo.csv がコピーされているという前提で話を進めて行きます。

link.def と link.csv , link_sogo.csv を使って、けもの関係のリンク集を表示させてみましょう。
link.csv 又は link_sogo.csv を見れば分かると思いますが、けもの関係のリンクは区分を kemono に設定しています。
区分の説明は Listgen / 総合説明書 に書いてありますので、そちらをどうぞ。


【書式】
<!--#exec cmd="listgen_s.cgi [表示モード] [定義ファイル名] [オプション指定ファイル名]">
※基本的に、 exec cgi 形式では呼び出せません。 悪しからず。


[表示モード] 指定区分に該当する物を全て表示するか(通常表示)、その中で新着フラグの立った情報のみを表示するかを指定します。
通常表示は 0 、新着のみ表示は 1 を指定します。
[定義ファイル名] 使用する定義ファイルの名前を指定します。
拡張子の .def は省略します。
例では link.def を呼び出すので link と指定します。

[オプション指定ファイル名]
使用するオプション指定ファイルの名前を指定します。
拡張子の .pl は省略します。

オプション指定ファイルには
データファイル(FILE)
区分指定(CLASS)
検索文字(SEARCH)
検索方法(METHOD)
を指定したものを書いておきます。


■オプション指定ファイルの説明
ssi_opt ディレクトリにある link_new.pl ファイルをエディタで開いて下さい。
#=====================================================================
# Listgen SSI版用 オプション指定ファイル
# ※このファイルは Listgen 3.0 以降で有効です。
#=====================================================================
コメント部
### [データファイル]
@FILENAME = (
    'link_sogo',
    'link',
);
データファイル指定部
(CGI 版での"FILE")
### [区分]
@CLASS = (
    'all',
);
区分指定部
(CGI 版での"CLASS")
### [検索単語]
@SEARCH = (
);
検索単語指定部
(CGI 版での"SEARCH")
### [検索方法]
$param{'METHOD'} = 'or';
検索方法指定部
(CGI 版での"METHOD")
# ----- ( 変更ここまで ) --------------------------------------------
1;
フッタ
(必要なおまじない)
おおまかに、6つのブロックに分かれています。

SSI 版では全てのオプションを
'xxx',
'yyy',
という形で指定します。
値を追加するときは
'zzz',
という形で追加してゆきます。

何も指定する物がないときは全て消してしまいます。
ちょうど、検索単語指定部がそうです。

検索方法にはCGI 版と同じく 'or' か 'and' 文字が使えます。
検索単語が無い場合には省略することが出来ます。 (例ではわざと残しています)


■実地訓練
では、以上のルールに則って「けもの関連のリンクのみ」を表示させてみましょう。
オプション定義ファイル link_kemono.pl を作りましょう。
内容は、
#=====================================================================
# Listgen SSI版用 オプション指定ファイル
# ※このファイルは Listgen 3.0 以降で有効です。
#=====================================================================

### [データファイル]
@FILENAME = (
    'link_sogo',
    'link',
);

### [区分]
@CLASS = (
    'kemono',
);

### [検索単語]
@SEARCH = (
);

### [検索方法]
$param{'METHOD'} = 'or';

# ----- ( 変更ここまで ) --------------------------------------------
1;
とします。 これを ssi_opt ディレクトリに放り込んでサーバにアップロードします。
続いて、適当なHTMLファイルを作り、その中に
<!--#exec cmd="internal-path/listgen_s.cgi 0 link link_kemono">
と記述します。 これをまた、サーバにアップロード。
internal-path は呼び出すHTMLファイルから見た listgen_s.cgi への相対パス、又はフルパスです。
ブラウザから適当なHTMLファイルを呼び出します。

けものリンク集は表示されましたか? 上手く行かなかった場合はトラブルシューティングを読んで下さい。

上手く行ったら、ブラウザのソースを表示させてみて下さい。 そして、listgen_s.cgi を埋め込んだ場所まで移動して下さい。
「結果報告」と題して、コメントとして各種情報が書き込まれているはずです。
何かおかしいことがあったときは、ここを一番最初に見る癖を付けるようにして下さい。


あとは、Listgen / 取扱説明書 - CGI版の『実地訓練』よろしく、色々とパラメータを変えて確かめてみて下さい。

■トラブルシューティング

ちなみに、これらのエラーメッセージが表示されるということは、listgen_s.cgi 自体は正しく動作していることを意味します。
  • 「正しい表示モードを入力して下さい」と表示された

    通常表示の場合は 0 、新着表示の場合は 1 を指定しなければなりません。
    それ以外の数値を入力するとこのエラーが表示されます。


  • 「外部からの相対パス指定は許されていません」と表示された

    いたずら(パスワードハックなど)防止のため、 ../ などの相対パスを指定できないようになっています。
    つまり、データファイルと定義ファイルは、listgen_c.cgi で指定したディレクトリ以外におくことは出来ません。


  • 「指定された条件のデータは見つかりませんでした。 〜 」と表示された
    読んでの通りです。

    1. 区分の指定を間違えた(綴りミスなど)
    2. 本当にその区分が無い
    3. 検索条件を絞り込みすぎた


  • 指定したはずのデータファイルが表示されていない 又は
    「指定されたデータファイル○○からは一致する区分が見つかりませんでした 〜 」と表示された

    1. 指定されたデータファイルが本当に無い
    2. データファイルの指定を誤っている(綴りミスなど)
    3. データファイルのパーミッションが読みとり可能になっていない
      (データファイルのパーミッションは少なくとも(604)でなければいけません)

    ブラウザのソースを表示させ、最後の方に移動させて下さい。
    結果報告として、読み込みに失敗したファイルが記載されているはずです。

<その他>
  • 何も表示されない
    Listgenを埋め込んだHTMLのソースをIEやネスケを使って表示させてみて下さい。

    • <!--exec cmd="〜"-->のタグが残っている
      タグが認識されていません(つまり、プログラムは実行されていません)。

      SSI を実行可能にするために HTML ファイルの拡張子を変更する必要があります。
      大抵の場合は .shtml 、 .shtm にすると良いようですが、詳細は各プロバイダへお問い合わせ下さい。 設定に関することは会員ページなどに書いてあることが多いです。

      .htaccess ファイルを自分で書けば設定を変更できるプロバイダもあります。
      ( .html ファイルでも SSI が実行できるようになります。)
      この辺を説明するのは本筋ではありませんので、先人のウェブサイトにて参照するか、ウェブサーバに関する書籍を買って勉強して下さい。

    • <!--exec cmd="〜"-->のタグは残っていないが、ブラウザには何も表示されていない
      タグは認識されていますが、何らかのエラーで異常終了しました。
      1. パスを書き間違えている
      2. listgen_s.cgi のパーミッションは実行可能(705)ですか?
      3. listgen_s.cgi は実行されましたが、プログラムにバグがあり動きませんでした。
        入会しているプロバイダの名前と、Listgen のバージョン番号を添えて、サポート掲示板にてお知らせ下さい。

  • (新着表示モード時)何も表示されない
    Listgenを埋め込んだHTMLのソースをIEやネスケを使って表示させてみて下さい。
    「<!-- 現在、新着はありません。 -->」というタグが残っているはずです。
    表示させたいデータファイルの新着フラグを 1 に設定するのを忘れていませんか?

  • どーしてもダメ。 っていうか作った奴殺す。 時間返せ。
    極力頑張って下さい(⌒ω⌒;
    大概は設置した人のミスです。
    どうしても駄目な場合は、入会しているプロバイダの名前と、Listgen のバージョン番号を添えて、サポート掲示板にてお知らせ下さい。

    正直、このスクリプトは使いこなすのが難しいので、インストールできなかった人は素直に諦めた方が良いかも…。 突き放すようで申し訳ないんですが。


©1999,2000 不可思議絵の具
(http://tech.millto.net/~fuka/)