ArsenoXT Ver1.40 説明書

はじめに




はじめに

ArsenoXTは、自由に投稿できる辞書CGIです。
これの特徴は、

細かいところを上げるときりがありませんが、こんなところですか。

稼動条件は、ホームページスペースにおいて、自作CGIおよびPerl 5.004以上が使用できることです。

それではまず、CGI設置に移る前に、下のすべてのファイルがあることを確認してください。


ファイル名  解説 編集 パーミッション
dl.cgi CGI本体(左フレーム起動用) Perlパスだけ○。

755 or 705

dr.cgi CGI本体(右フレーム起動用) Perlパスだけ○。

755 or 705

dlmain.pl [update!] CGI本体(左フレーム本体) 自信があれば○。

644 or 604

drmain.pl [update!] CGI本体(右フレーム本体) 自信があれば○。

644 or 604

addtag.pl 自動リンクルーチン ×

644 or 604

util.cgi 各種処理部分 ×

644 or 604

item.pl [update!]

項目部分データベース処理

×

644 or 604

defs.pl

投稿部分データベース処理

×

644 or 604

Log_DB.pm [update!]
(Ver1.37でlog.plから変更)

最近の投稿情報記録用処理

×

644 or 604

kanachg.pl

読み→ソート順序変換処理

×

644 or 604

INIT.pm [new!]
(Ver1.40にて、init.cgiをバージョンチェックのためモジュール化)
(Ver1.37でLog_DB.pm用設定が追加された
設定ファイル ○。ただし説明を読んでください。

644 or 604

index.html 親フレームファイル FRAMEタグ以外の部分は○。

644 or 604

top.html 表紙ファイル
(index.htmlにアクセスすると、右側に最初に表示されます)

644 or 604

working.html

作業中表示ファイル(管理モードで作業中の時に、通常モードでアクセスされたときに表示されます)

644 or 604

ie.css Internet Explorer専用スタイルシート

644 or 604

readme.html この説明書。 やりたければどうぞ(笑)

 

lib.zip

ArsenoXTで使用する標準ライブラリパッケージ
pmファイルがないと怒られた場合に解凍して使用(特に@nifty)
内容:vars.pm, Exporter.pm, Carp.pm, strict.pm time/Local.pm, overload.pm,cgi/Carp.pm

 

lib/ ライブラリ用ディレクトリ

755 or 705

lib/cgiheader.pl htmlヘッダ出力・エラー処理ルーチン

644 or 604

lib/printlog.pm
以前のprintlog.plをわずかに変更
表示した情報をデバッグ用にprinted.txtにも出力する

644 or 604

lib/jcode.pl 日本語処理ライブラリ

644 or 604

lib/mylog.pm アクセスログ記録用パッケージ(logfileにスクリプトの起動時刻と終了時刻を記録)

644 or 604

lib/mytime.pm 時刻の変換処理(time::local使用)

644 or 604

付録

 

 

 

revive.cgi

index.txtが破損したときに、他のデータファイルからindex.txtを復旧するスクリプト。

(以前のバージョンを使用していて、index.txtが破壊されてしまった人用)

Perlパスだけ○。

755 or 705



設置方法

1.init.cgi の初期設定

設定ファイル init.cgi をエディタで開いて、最初のほうにある

$INIT::password = 'yourpass';

yourpass の部分を自分の好きなパスワードに変更してください。このパスワードで管理モードへ入れます。パスワードに使う文字はアルファベットと数字だけにしておくのが無難です。

次に、ログファイルを作成するディレクトリ名(「ディレクトリ」が解らない方は、「フォルダ」のようなものだと思って下さい)を決めます。その下の行の

$INIT::logdir = 'log';

log の部分を好きな名前に変更してください。この説明書では mylog としたとします。

最後に、CGIから出るときのリンク先(dl.cgiからみたリンク先)を指定します。さらに下の行の

$INIT::home = '../index.html';

../index.html の部分を自分のホームページの構造に合わせて書き換えてください。そのままだと親ディレクトリの index.html に戻る設定になっています。

どの変更の時にも、両端の ' (単引用符) や ; (セミコロン)は絶対に消さないでください。これは、その他の設定項目でも同じなので、注意してください。




2.Perlの位置の設定

CGIファイル dl.cgi と dr.cgi をエディタで開いて、それぞれの1行目の

#!/usr/local/bin/perl

を、お使いのサーバーの 「Perlのパス」に合わせてください。CGIが使えるのならどこかに書いてあるか、サーバの管理者に訊けばわかるはずです。ほとんどの場合このままか、

#!/usr/bin/perl

でだいじょうぶだと思います。




3.アップロード

この readme.htmlとlib.zip を除くすべてのファイルと、libフォルダをFTPで、この辞書CGI用に使うディレクトリに転送します。転送には、「ASCII(アスキー)モード」 を使ってください。

ここでは、「dic」というディレクトリにアップしたとします。




4.ログファイル用のディレクトリを作る

ログファイル用のディレクトリを作成します。CGIがあるディレクトリ(この説明では、"dic" というディレクトリ)の中に、手順1.の 「 $INIT::logdir = '〜'; 」 で決めた名前の、新しいディレクトリを作ってください。

ここでは 「 mylog 」でした。




5.パーミッションの変更

パーミッション(アクセス権)を変更します。

ログファイル用のディレクトリを 705(または707,755,777のいづれか)に、
dl.cgi、dr.cgi, revive.cgiを 705(または755) に変更してください。

ここまで終わると、大体下のような構成、パーミッションになってます。

ディレクトリ「mylog」は、手順1で名前を決め、手順4で作ったディレクトリです。あなたの設定によっては名前が違います。

また、ディレクトリ「dic」の名前は、手順3でどんな名前のディレクトリにファイルを転送したかによります。

 
└ dic (このCGIを設置する大元のディレクトリ) 705
    ├mylog (ログファイル用ディレクトリ)  707
    ├dl.cgi           705
    ├dr.cgi           705
    ├revive.cgi       705
    ├dlmain.pl        604
    ├drmain.pl        604
    ├addtag.pl        604
    ├init.cgi         604
    ├util.cgi         604
    ├item.pl          604
    ├defs.pl          604
    ├Log_DB.pm        604
    ├addtag.pl        604
    ├kanachg.pl       604
    ├index.html       604
    ├top.html         604
    ├ie.css           604
    └lib              705
       ├jcode.pl      604
       ├printlog.pm   604
       ├cgiheader.pl  604
       ├mylog.pm   604
       └mytime.pm  604






6.設置完了

ブラウザからこのCGIの入ったディレクトリ( ここでは dic )の index.htmlにアクセスしてみます。「新しい単語を追加」というリンクをクリックして、右フレームに単語の追加用のフォームが現れれば、 dr.cgi の設置はうまくいっています。

エラーが出る場合、だいたい下のようなことが原因なのでもう確認してみてください。

たいていの場合はエラーメッセージが表示されますので、参考にしてみてください。

ここまでうまくいったら、最初に表で示した「編集可能なファイル」を編集して、デザインや機能を好きなように変更してください。

init.cgi の中身は、

$(項目名) = (設定);

という文の集まりです。設定を変更するときには、(設定)の部分だけを編集します。


CGIとHTMLが同じサーバに置けない場合の設置方法

自分でテストできる環境にないので、間違いなどがあったらArsenoXTサポート掲示板などで教えてくださると助かります。

1.index.html を書き換え

index.html をエディタで開いて、

<FRAME src="words.html" name="index">

words.html の部分を、dl.cgi(を置く予定)の絶対URL(http://〜 で始まるURL)に変更してください。

たとえばNiftyなら 「 http://hpcgi1.nifty.com/(ユーザ名)/dic/dl.cgi 」のようになると思います。




2.アップロード(HTML用サーバ)

index.html、top.html をFTPで、HTMLファイル用サーバの辞書CGI用に使うディレクトリに転送します。転送には、「ASCII(アスキー)モード」 を使ってください。

ここでは、「 dic 」というディレクトリにアップしたとします。


3.init.cgi の初期設定

設定ファイル init.cgi をエディタで開いて、以下の個所を変更します。

$INIT::password = 'yourpass';

yourpass の部分を自分の好きなパスワードに。このパスワードで管理モードへ入れます。パスワードに使う文字はアルファベットと数字だけにしておくのが無難です。

$INIT::logdir = 'log';

log の部分を好きな名前に。これはログファイルを作成するディレクトリ名(「ディレクトリ」が解らない方は、「フォルダ」のようなものだと思って下さい)です。この説明書では mylog という名前にしたとします。

$INIT::home = '../index.html';

../index.html の部分を、絶対URL( http://〜 で始まる自分のホームページのURL) に。CGIから出るときのリンク先(dl.cgiからみたリンク先)です。ここで説明する構成では http://homepage1.nifty.com/username/ です。

$INIT::top = 'top.html';

top.html の部分を、top.htmlの絶対URL に。CGIから出るときのリンク先(dl.cgiからみたリンク先)です。ここで説明する構成では http://homepage1.nifty.com/username/dic/top.html です。

どの変更の時にも、両端の ' (単引用符) や ; (セミコロン)は絶対に消さないでください。これは、その他の設定項目でも同じなので、注意してください。




4.Perlの位置の設定

CGIファイル dl.cgi と dr.cgi をエディタで開いて、それぞれの1行目の

#!/usr/local/bin/perl

を、お使いのサーバーの 「Perlのパス」に合わせてください。CGIが使えるのならどこかに書いてあるか、サーバの管理者に訊けばわかるはずです。ほとんどの場合このままか、

#!/usr/bin/perl

でだいじょうぶだと思います。




5.アップロード(CGI用サーバ)

拡張子が html またはzip以外のファイル全部( dl.cgi, dr.cgi, util.cgi, init.cgi, dlmain.pl, drmain.pl, addtag.pl, ie.css)とlibフォルダをFTPで、CGI用サーバのこの辞書CGI用に使うディレクトリに転送します。転送には、「ASCII(アスキー)モード」 を使ってください。

ここでは、「 dic 」というディレクトリにアップしたとします。




6.ログファイル用のディレクトリを作る

ログファイル用のディレクトリを作成します。CGI用サーバの、辞書CGIがあるディレクトリ(この説明では、"dic" というディレクトリ)の中に、手順3.の 「 $INIT::logdir = '〜'; 」 で決めた名前の、新しいディレクトリを作ってください。

ここでは 「 mylog 」でした。




7.パーミッションの変更

パーミッション(アクセス権)を変更します。

ログファイル用のディレクトリを 707 に、
dl.cgi、dr.cgi, revive.cgiを 705 に変更してください。

ここまで終わると、大体下のような構成、パーミッションになってます。

ディレクトリ「mylog」は、手順3で名前を決め、手順6で作ったディレクトリです。あなたの設定によっては名前が違います。

また、ディレクトリ「dic」の名前は、手順2手順5でどんな名前のディレクトリにファイルを転送したかによります。

HTML用サーバのホーム( http://homepage1.nifty.com/username/ など )
 └dic (辞書用ディレクトリ)
    ├index.html
    ├top.html
    └ie.css

CGI用サーバのホーム( http://hpcgi1.nifty.com/username/ など )
 └ dic (このCGIを設置する大元のディレクトリ) 705
     ├mylog (ログファイル用ディレクトリ)  707
     ├dl.cgi           705
     ├dr.cgi           705
     ├revive.cgi       705
     ├dlmain.pl        604
     ├drmain.pl        604
     ├item.pl          604
     ├defs.pl          604
     ├Log_DB.pm        604
     ├addtag.pl        604
     ├kanachg.pl       604
     ├init.cgi         604
     ├util.cgi         604
     └lib              705
        ├jcode.pl      604
        ├printlog.pm   604
        ├cgiheader.pl  604
        ├mylog.pm   604
        └mytime.pm  604







8.とりあえず一段落

ブラウザからHTML用サーバの index.html にアクセスしてみます。

ここで左フレームが表示されない場合、以下のことが考えられますので直してください。

左フレームが表示されれば dl.cgi の設置はうまくいっています。

さらに「新しい単語を追加」というリンクをクリックして、右フレームに単語の追加用のフォームが現れれば、 dr.cgi の設置もうまくいっています。

ここまでうまくいったら設置は完了です。最初に表で示した「編集可能なファイル」を編集して、デザインや機能を好きなように変更してください。

init.cgi の中身は、

$(項目名) = (設定);

という文の集まりです。設定を変更するときには、(設定)の部分だけを編集します。


管理モード


わかりづらいと思われるところだけ説明します。

「投稿制限の有効/無効」

$INIT::newword_ontime$INIT::comment_onetime などで設定する「連続投稿制限」や、同じ単語やコメントを連続で投稿できない「二重投稿制限」を一時的に無効にしたり、有効に戻したりするボタンです。

辞典の使い始めで、管理者が大量に投稿したりするときなどに使える…かも知れません。


TIPS

― ソ Ы \ 噂 浬 欺 圭 構 蚕 十 申 曾 箪
貼 能 表 暴 予 禄 兔 喀 媾 彌 拿 杤 歃 濬 畚 秉 綵 臀
藹 觸 軆 鐔 饅 鷭  




更新履歴

Ver1.40(2002-06-16)

  1. 初期設定情報のバージョンチェックを行うために、init.plをINIT.pmに変更。
  2. コメント表示部分の不具合を修正。
  3. 投稿履歴のアクセスに関する不具合を修正。

(thanks for うさみ, ももんが♪, and 秋良)

Ver1.37(2002-06-15)

  1. 最近の投稿の処理部分を内部的に大幅変更。
  2. 一部ライブラリをモジュール化。
  3. lib.zipの内容を修正。

(thanks for tomatoes and 潤)

Ver1.36(2002-06-11)

  1. 管理モード移行時の致命的な不具合を修正

(thanks for 潤 and ツチ)

Ver1.35(2002-06-01)
  1. 項目削除がうまく働かなかった部分を修正

(thanks for ロッシ)

Ver1.34(2002-05-26)

  1. 投稿履歴表示の部分でおかしかったのを修正

(thanks for ツチ and 秋良)

 Ver1.33(2002-05-20)

  1. 管理モードで見出しの修正ができなかったのを修正。
  2. 定義投稿時の不具合を修正。
(thanks for ツチ)

 Ver1.32(2002-05-19)

  1. 時刻処理の部分を全面的に修正。
(thanks for 秋良)

Ver1.31(2002-05-09)

  1. 管理モードで項目削除用のボタンがなかったのを修正。
  2. 管理モードにおいて、辞書のhtml化を行ったときに、作成されたファイルを表示しないようにした(右フレームからリンクをクリックすると、一般モードに戻ってしまうため)
  3. 管理用にリネームされたログディレクトリが、10分以上更新されない場合はログディレクトリの名前を元に戻すようにした。
(thanks for "gath" )

Ver1.30(2002-05-05)

  1. ファイル出力部分を、変更が起こったときに全データを出力する方法から、変更されたデータだけを追記する方法に変更。これにより、ファイル出力にかかる負荷が大幅に低減される(はずだ)が、放って置くとファイルサイズがどんどん大きくなってしまうので、時々管理モードから「データベースの最適化」を実行する必要あり。
  2. 単語の検索機能を追加
  3. lib/mytime.pmのバージョンアップにより、データファイルの時刻部分を数字ではなく文字表記に変更。
  4. 管理モードで辞書のhtml化作業を行い、ユーザーモードでそれを表示するように変更。
  5. 管理モードに入るときにログディレクトリをリネームすることで、管理モードで作業中は、一般ユーザーはデータアクセスができなくした。
  6. スクリプトファイルの細分化など、処理構造の一部修正
Ver1.21.1(2002-03-24)
  1. sjis文字コード環境において、カタカナで「ム」以降(文字コード順)の認識が1文字分ずれる(たとえば「ヨ」が「ラ」として認識される)不具合を修正。
  2. 項目の入力がエラーを起こしたときに、続けて同じ項目を入れようとすると二重投稿になってしまう不具合を修正。
Ver1.21(2001-12-16)
  1. 左フレームの表示オプションの設定をinit.cgiで変えられるようにしました。
  2. 左フレームの表示モードに合わせて、右フレームの表示も一部変更されます。
  3. 「辞書のお持ち帰り」で、今までファイル経由で出力していた部分を直接ブラウザに出力するようにした。
  4. ちょっとしたバグフィックス
Ver1.20(2001-11-25)
  1. エラーメッセージ出力部分を強化
  2. dl.cgiの本体部分をdlmain.plに移動(本体部分のコンパイルエラーをブラウザに出力するため)
  3. dr.cgiの本体部分をdrmain.plに移動(上と同じ理由)
  4. HTMLヘッダ出力部分をcgiheader.plに分離(エラー出力時に自動でHTMLヘッダ出力のため)
  5. init.cgi,util.cgiも上に合わせて修正された。
  6. 項目追加・変更処理を右フレーム(drmain.pl)で行うようにした。
  7. libディレクトリ内部にあるファイルのうち、標準ライブラリに属するものを取り除き、lib.zipファイルにまとめた。pmファイルがないと怒られた場合に、lib.zipを解凍して使ってください。
  8. 単語登録可能な分類がない場合は、左フレームに「新しい単語を登録」を表示しないようにした。
  9. コメント表示のときに、投稿された日時を表示するようにした。
  10. きちんとドキュメントを作った(苦笑)。
Ver1.13(2001/10/28)
  1. パスワードが入力されてない状態でadminボタンを押すと管理モードに入ってしまう不都合を解消。
Ver1.12(2001/10/14)
  1. 管理モードにて索引モード用のかな見出しが削除できなかった不具合を修正。
  2. 同じく管理モードで、索引モードにしてもリロードすると目次モードになってしまうのを修正。
  3. index.txtのファイルサイズが0の時は、バックアップファイルから読み戻す。
  4. *objファイルの入出力は封印(苦笑)
Ver1.10(2001/10/06)
プロバイダによって、ライブラリ周りでエラーを起こして辞書ファイルを出力せずに落ちる状況に対応……できているといいなぁ。
  1. 自前のライブラリを優先的に使用するようにした。
  2. :index.txtを10世代前までバックアップするようにした。
  3. FreezeThawライブラリで、索引情報の内部構造を保ったままindex.objとして出力。(index.txtと併せて2系統で出力)
    cgi起動時はindex.objを優先的に使用するので、それが邪魔な場合はindex.objを削除すること。
  4. ライブラリ関係をlibフォルダに格納。移動したのは以下の通り。
    code.pl
    printLog_DB.pm
    FreezeThaw.pm
    Exporter.pm
    Exporterフォルダ
    cgiフォルダ
Ver1.02beta1(2001/09/16)
  1. 管理モードから最近の投稿を開いてもユーザーモードになってしまう不具合を修正。
  2. 管理モードに入ったときにURLに埋め込まれるパスワードを暗号化するようにした。
  3. 単語登録時にかなの正当性をチェックする前に索引ファイルに単語追加していた部分を、修正した。
Ver1.01bata1(2001/08/26)
  1. 最近の投稿の処理を変更(log.txtというファイルで書きこみ時刻を管理)
  2. 管理モードで、コメントの編集をしたあと、新しいコメントを追加しようとすると、先ほど編集したコメントに上書きしてしまうバグを修正。
  3. $INIT::max_recentを$INIT::min_recentに変更。
Ver1.00bata1(2001/08/08)
  1. 左フレームを目次/索引の形式に切替可能。
  2. 左フレームを全体/分割表示切替可能。
[以下管理モードの機能]
  1. 分類・かな見出しをcgiから追加・編集できるようにした
  2. コメントの表示優先度を設定
  3. 単語投稿・コメント投稿パーミッション
[スクリプトアップロード時の機能]
  1. init.cgi,dl.cgi,dr.cgi,util.cgiをEUCコードでアップロードすることで、EUCコードで(ログファイルも含めて)稼動する
Ver0.93.1(2001/04/29)
  1. $INIT_flameを$INIT_nonflameに変更。フレームを使わない時に1にする。
  2. デフォルトで$INIT_htmlizeを0にした。
  3. 辞書の一括表示を$INIT_htmlizeによって動作モードを変えるようにした。
    (0の場合はcgiから直接出力、1の場合は管理モードでhtmlファイル作成し、ユーザーモードでそれを表示)
  4. URLの自動リンクを修正
  5. >辞書の一括表示時にフレームを無視するようにした
  6. 単語の設定時およびコメント投稿時に半角カナを全角に変換するようにした。
Ver0.93(2001/03/17)
  1. 設定でフレーム非使用及びテーブル非使用に対応
  2. コメント入力欄の行数指定
Ver0.92
  1. 匿名投稿許可/禁止の設定
  2. コメントの新着順/投稿順表示の設定
  3. バナー表示のオン・オフの設定
  4. html化処理の変更
  5. 振り仮名に使える文字に英数字及び記号を追加(副作用としてインデックスファイルの互換性が失われた)
  6. コメントの自動リンク処理(副作用として、同じ単語は読みを変えても追加できない)
  7. ファイルロック機構の変更
  8. 読みの正規化

readme.html version1.30

Copyright (C)2001-2002 by Yutaka.Hoshino as "thermon" (thermon@mindcompass.sfcgi.com )

Copyright (C)1999-2000 by "S.Ohtsuka"( hisoka@ma.vis.ne.jp )