Airemix/HP_CGI/

Intoroduction to Mireille

■■■■■■■

Mireilleの特徴

Mireilleとは

基本的には、レスアイコン掲示板です。CSSを編集すれば楽に色を変えたりでき、記事部分のデザインをそこそこ変更可能です。さらにHTMLの知識があれば管理CGI上からデザインをかなりの部分まで好みどおりにすることが可能で、アイコンを使わなかったり、色を選べなくしたり、ということまで出来るので自由度は高いほうです。他にも重宝するであろう以下の機能を備えています。

Mireilleの持つ機能(利用者から見た場合)

*は初期デザインの場合で、デザインを改造している場合はこの限りではありません。

Mireilleの持つ機能(管理者から見た場合)

Mireille License 1.0

1. Mireilleを使う場合

好きなように使うことができます。このケースに限り、Airemixの著作権表示やリンクを削除しても構いません。

「Mireilleを使う場合」とは、Mireilleがオリジナルのままか改造済みであるかを問いません。Mireilleの直接の利用者以外に、Web経由などでMireilleを使う人がいても構いません。しかし、Mireilleを配布する場合は、第3節が適用されるため、著作権表示を削除することはできません。

2. Mireilleのパッケージを二次配布する場合

Mireilleのパッケージを変更しない限りにおいて、自由に配布することができます。この際、必要以上の利益を得ても構いません。

Mireilleのパッケージを変更した場合は第3節が適用されます。

3. Mireilleを改造したものを配布する場合

以下の条件を満たす限りにおいて、自由に改造し、配布することができます。配布ライセンスに非オープンソースなライセンスを採用しても構いません。

但し、変更を重ねた末に、原型がなくなった場合はこの限りではありません。それでも、ヘルプあたりに「参考にしたところ」としてリンクをはっていただければ幸いです。

4. Mireilleのコードを利用する場合

利用したソフトウェアのソースコードやそのソフトウェアの付属ドキュメントに、Airemixの著作権表記とMireilleのコードを利用した旨が書いてあれば十分です。

5. 商用利用する場合

これまでに表記した通りで、「商用だったら」という特別な制限はありません。

6. 利用の禁止

利用目的や利用者の所属によって、このライセンスで特別に利用を制限することはありません。しかし、何らかの律令格式の類によって、Mireilleの利用が禁じられていることがあるかもしれません。

7. 免責

Mireille及びMireilleの関連・派生物を使って不利益を被ったとしてもわたしは知りません。うちの掲示板を通して実行可能な形で依頼されれば、なんらかの助けはするかもしれませんが、基本的には何もしない、という形で覚悟した上で使ってください。

8. Mireille License自体について

Mireille LicenseはMireille及び、Mireilleの名の下に構成された関連物に対して効力を持ちます。

利用者が使用しているMireilleのバージョンに対応する規定と、最新のライセンスとが異なる場合、利用者はどちらのライセンスを使うか選択することができます。

Mireille LicenseはMireilleの利用を許可する際に用いる唯一の規定ではありません。著作者はMireille License以外のライセンスでMireilleの利用を許可する権利を留保しています。また、Mireille License自体が変更されることもあります。

9. 他のライセンスとの関連

Mireilleの派生物はGNU General Public License (GPL)で配布可能です。つまり、Mireille LicenseはGPLと矛盾することはありません。もし矛盾している条項がある場合、そのGPL下の派生物に対しては、該当するMireille Licenseの条項が継承されることはありません。

Mireilleの派生物はBSD Licenseで配布可能です。つまり、Mireille LicenseはBSD Licenseと矛盾することはありません。もし矛盾している条項がある場合、そのBSD License下の派生物に対しては、該当するMireille Licenseの条項が継承されることはありません。

設置の説明書

0. まずはじめに

この説明ファイルは、HTMLのみで構成されたサイトは作れる方、
とりあえず圧縮解凍、FTPによるアップロードは知っている人に書かれています。
「ホームページって何?どうやって作るの?」という方は想定していません。
そこまで範囲を広げると「設置の説明書」のレベルを越えてしまうため、ご了承ください。

また、このCGIでは漢字コードにEUC-JPを使用しているため、Windows標準のメモ帳では読めません。
TeraPad秀丸エディタさくらエディタなどの、 EUC-JPも読めるエディタをお使いください。
CGI自体を編集する場合は、以上に挙げたエディタに搭載されている、
「色づけ機能」を使うと効率が格段に上がるとおもいます。

ちなみに、以上に挙げたエディタを使っても、文字化けして表示される場合は、
メニューバーの「ファイル」→「漢字指定コード指定再読み込み」→「EUC」(TeraPadの場合)
としたり、「ファイル」→「開く」で、「漢字コード」を「EUC」にして開いたりしてください。

TeraPadの場合には、オプション設定自体を変更して、
「表示」→「 オプション」→「ウィンドウ/漢字コード」タブ→「漢字コード」グループで、
漢字/改行コードを自動認識する にチェックをつけるか、
下の二つで両方「読み込み時の○○コードと同じ」を選ぶか、
すれば、自動で文字化けしないようにしてくれます。

1. DLから解凍まで

まずダウンロードした圧縮ファイル(例えばMirR1233.ZIP)を適当なフォルダ内に解凍します。
この時フォルダ内には

パス備考
/Mireille.txt MireilleのReadme
/Mireille.html Mireilleの説明書
/bbs/log/ ログ保存フォルダ
/bbs/log/0.cgi 記事情報ファイル
/bbs/ 掲示板設置に必要なファイル群
/bbs/index.cgi CGI起動ファイル兼設定
/bbs/icon.txt アイコンリスト
/bbs/iconctlg.cgi アイコン見本
/bbs/style.css スタイルシート
/bbs/core.cgi Mireille本体
/bbs/style.pl Mireilleスタイル設定
/bbs/help.pl ヘルプ
/bbs/artnavi.js 記事ナビJavaScript
/opti/ 設置してもしなくてもいいファイル群
/opti/manage.cgi 管理CGI
/opti/convert12.cgiログファイルを他形式から1.2形式に変換する
/opti/notify.pl メールによるお知らせ機能を使うときに設置する
/opti/.htaccess .htaccessファイル

となっているはずです。

2. 初期設定

まずindex.cgiを開いて一番最初の一行を設定します。
#!/usr/local/bin/perl」か「#!/usr/bin/perl」のどちらかで大部分は動くと思います。

(Biglobeでは #!/usr/local/bin/perl5 です)

設定項目は他にもありますが、とりあえずまずここだけ設定してちゃんと動くか試してください。

3. FTPからアップロード

設置したいサーバーのディレクトリ(例えばbbs/)に

パス属性用途
/bbs 777(755)掲示板のディレクトリ
/bbs/log 777(755)ログ保存ディレクトリ
/bbs/log/0.cgi 666記事情報ファイル
/bbs/index.cgi 755(700)CGI起動ファイル兼設定
/bbs/core.cgi 644Mireille本体
/bbs/style.pl 644Mireilleスタイル設定
/bbs/artnavi.js644記事ナビ
/bbs/icon.txt 666アイコンリスト
/bbs/iconctlg.cgi 666アイコン見本
/bbs/help.pl 644ヘルプ
/bbs/style.css 666スタイルシート

のように設置します。

ちなみに、

さて、これで、おそらく、もう動作する状態になっているはずです。
最初は0.cgiの内容が表示されていますが、これは何か新しい書き込みがあると、
自動的に表示されないようになるのでご安心を。
さっそく、テスト書き込みをしてみましょう。

もし動かないときは Mireilleの設置でつまづいたら を参照してください。

テストがちゃんとできるようになれば、この掲示板を設置するのに最低限必要なことは終わりです。
サイト本体からリンクをはって使用してください♪

4.アイコンの設定方法

Mireilleの設置テストが成功したらアイコンを設定しましょう。
例えばMireilleをhttp://www.server.jp/~username/mireille_directory/index.cgiに設置したとします。
www.server.jpは使っているプロバイダやレンタルサーバーのドメインに、
~usernameはそのサーバーでのユーザー名に、
mireille_directoryは設置したMireilleのディレクトリに、
適宜置き換えてください。(独自ドメインの場合でユーザー名が必要ないときは省略すること)

実際の手順は以下の通りです。

アイコンフォルダの準備

まず自分のコンピュータ上で、アイコンの入ったフォルダを作成します。
どこかに「icon」などと名づけたフォルダを作成し、
その中にアイコンとして使いたい画像ファイル(画像形式は何でもOK)を放り込みましょう。

アイコンフォルダのアップロード

アイコンの入ったフォルダをアップロードします。
場所はどこでも構いませんが、「http://www.server.jp/~username/icon/」に置くのが無難でしょう。

管理CGIをアップロード

自分のコンピュータ内で、エディタを使ってindex.cgiを編集してもよいのですが、
ここでは管理CGIを使ってindex.cgiを編集してみましょう。
(エディタで直接編集する方が楽な人は、管理CGIを使わなくてももちろんOKです)
manage.cgiをFTPクライアントで、Mireilleと同じディレクトリにアップロードしましょう。
このとき必ずmanage.cgiを他の人には予測のつかない名前に変えてください。
管理CGIの管理機能は便利な反面、非常に危険です。

管理CGIについては管理CGIの設置も参照してください

管理CGIでindex.cgiを編集する

http://www.server.jp/~username/mireille_directory/管理CGI.cgi(「管理CGI」の部分は適宜置き換えてください)にアクセスしましょう。
「index.cgi編集」を選択して次へ進みます。
アイコンのディレクトリ」の項目を探し、アイコンフォルダの置いてある場所を書きましょう。
(この時、http://www.server.jp/~username/icon/ の最後の/を書き忘れないで下さい)
書けたら「OK」を押してください。

管理CGIでicon.txtを編集する

「Iconリスト編集(タグ)」を選択して次へ進みます。
Mireilleの圧縮ファイルについてきたicon.txtをアップロードした場合、
大量にいろいろと書かれているので、とりあえず全て削除してしまいましょう。
そうしたら以下のように書き換えます。

<OPTGROUP label="(グループのラベル、例えば「アイコン(モンスター)」とか)">
  <OPTION value="(画像ファイルのパス、例えば「dragon.gif」)">(画像の名前、例えば「ドラゴン」)</OPTION>
  <OPTION value="(何とか.png)">(「スライム」)</OPTION>
</OPTGROUP>

括弧内を自分の設定に合わせて書き換えて下さい。

ただし、ここでいくつか注意することがあります。

OPTION value のところに書く「画像ファイルの置いてある場所」

「index.cgi編集」をしたときに指定した「アイコンディレクトリ」のパスと合わせて、
きちんと画像の在りかを示すURLになっていなくてはなりません。

例えば、アイコンディレクトリのパスが「http://www.A.or.jp/B/icon」で、
アイコンリストのvalueが「D.gif」となっていた場合、
"http://www.A.or.jp/B/icon/" + "D.gif" = 「http://www.A.or.jp/B/icon/D.gif」
となり、このURLに画像ファイルがあればOKです。

もし、アイコンディレクトリのパスが「http://www.A.or.jp/B/icon」となっていた場合、
"http://www.A.or.jp/B/icon" + "D.gif" = 「http://www.A.or.jp/B/iconD.gif」となり、 おかしくなってしまいます。
この時はアイコンディレクトリのパスの末尾に / を加えるか、「D.gif」→「/D.gif」に変更すれば、正しくなります。

<OPTION value="">…</OPTION>を2個以上続ける場合

<OPTION value="">…</OPTION>(注目)<OPTION value="">…</OPTION>
とする場合(注目)の場所は続けず、改行を入れてください。
改行でないと、後でアイコンカタログ(アイコン見本/アイコン一覧)に表示されるアイコンがおかしくなったり、
管理CGIのタグモード以外でアイコンリストを編集できなくなったりします。

一つのグループに何個ものアイコンを使いたい場合

<OPTION value="(画像ファイルの場所)")>(画像ファイルの名前)</OPTION> を必要な数だけ書けばいいです。
また、グループが何個も欲しいという場合は

<OPTGROUP label="(グループのラベル)">
  <OPTION value="(画像ファイルの場所1)">(画像ファイルの名前1)</OPTION>
  <OPTION value="(画像ファイルの場所2)">(画像ファイルの名前2)</OPTION>
</OPTGROUP>

の部分を欲しいグループの数の分だけ増やせばいいです。

COPY1命令やVENDOR命令など、より詳しいアイコンリストの説明は、
Mireilleの注意事項 - アイコンを参照してください。

編集が終わったら、OKを押して完了です。
最後に、管理CGIをWeb上から削除しましょう。
放置しておくとキケンです。

上の操作が上手くいったら、アイコンが無事表示されるはずです。
もし、表示されない場合は、ミスをチェックして、
どうしてもわからない場合は、ソフトウェア関係に詳しい友人に聞くか、成瀬に掲示板で聞いてください。
5時間も悩むのは得策ではありません(爆

※警告!
アイコンの著作権には十分注意を払ってください。
ゲームの画像を切り出して使ったり、Webサイトで使われている画像を勝手に拾ってきた場合、
著作者の権利を侵害してしまうことがあります。

5. もうちょっと細かく設定とか、さらには改造とか

Mireilleをより細かくカスタマイズしたいときは、Mireille.txtの内容も参照してください。
Mireilleでの処理に関する情報などはMireille.txtにしか書いてないものも多いです。

一般的な事例に関しては以下のとおりです。

アイコンまわり

アイコンリスト(icon.txt)に関しては Mireilleの注意事項 - アイコン や、
Mireille.txtを参照してください。
アイコンリスト(icon.txt)からアイコン見本(icon.html)を生成するには、
管理CGIの「アイコン見本の更新」を使います。
(1.2.3.5からはiconctlg.cgiを使うようになったので、icon.htmlを生成する必要はありません)

※警告!
アイコンを調達する際には、必ず製作者のサイトから頂いてきてください。
他の掲示板のアイコンをそのまま拝借するのは好ましいことではありませんし、
その掲示板の管理者さんにも迷惑をかけることになります。
また欲しいアイコンが既に配布が終了されている場合は潔くあきらめてください^^;;

外部CSSまわり

core.cgi,style.pl自体のソースや、Mireilleの生成したHTMLソース、HTMLおよびCSSのリファレンスなどと、
にらめっこしながらがんばってください(ぉ
core.cgiやstyle.plのCSSのクラス構造が不明瞭だったりおかしい、修正するべきだという場合は、
説明を求めるか、改善したものを教えてください。
それを元にこちら側でも修正します。

style.plってなに

MireilleのPerlスクリプトの中で、デザインに関連するものを抽出したファイルです。
お好みに合わせて改造し、配布することができます。
また、index.cgi内でcore.cgiより後に読み込んでいるため、
core.cgiのサブルーチンを上書き(オーバーライド)することも可能なため、
応用次第で全く違う掲示板のようににしてしまうこともできます。

index.cgi後半の処理部、core.cgi、help.pl、manage.cgiなど

改造するのは自由ですし、規定の範囲内で改造したものを配布することもできます。
ただ、多くの利用者がこれらのCGIを変更したいと思う、という状態は、
「バグだ」と判断しているので、変更点を教えてくだされば、標準で変更するかもしれません。

Mireilleのコアファイル群を複数の掲示板で共有する

一つのcore.cgi, style.pl, style.css, help.pl, artnavi.jsを複数の掲示板で共有することが出来ます。

パス属性用途
/bbs 755(777)掲示板のディレクトリ
/bbs/log 755(777)ログ保存ディレクトリ
/bbs/log/0.cgi 666記事情報ファイル
/bbs/index.cgi 755(700)CGI起動ファイル兼設定
/bbs/core.cgi 644Mireille本体
/bbs/style.pl 644Mireilleスタイル設定
/bbs/artnavi.js644記事ナビ
/bbs/icon.txt 666アイコンリスト
/bbs/iconctlg.cgi 666アイコン見本
/bbs/help.pl 644ヘルプ
/bbs/style.css 666スタイルシート
/bbs2 755(777)掲示板のディレクトリ
/bbs2/log 755(777)ログ保存ディレクトリ
/bbs2/log/0.cgi666 記事情報ファイル
/bbs2/index.cgi755(700)CGI起動ファイル兼設定

例えば上のように設置した上で、/bbs2/index.cgi内の設定を

use lib '../bbs/';
#アイコンリスト
$CF{'icls'}='../bbs/icon.txt';
#スタイルシート
$CF{'style'}='../bbs/style.css';
#記事ナビJavaScript
$CF{'navjs'}='../bbs/artnavi.js';

などとすれば、CGIバージョンアップ時には/bbs/にあるcore.cgiなどを入れ替えればいいだけになります。
実際にAiremixでも/bbs/にあるCGIをサイト内の何ヶ所かで、この方法によって共有して使っています。

6. 管理CGIの設置

よりMireilleを有効に使うためのCGI、Manage.cgiの説明です。
必須ではないので、使いたい人だけ設置しましょう。

まずmanage.cgiを開いて、一行目を設定します。
その後21行目の$AT{'pass'}を設定してください。
設定したらFTPで以下のように設置します。
この際必ずファイル名を変更してアップロードしてください。

/bbs/E36Vj4tGiHQ.cgi 755(700) 管理CGI('E36Vj4tGiHQ.cgi'にファイル名を変更した場合)

使用法は表示にしたがってください。
わかりにくいところがあれば、言ってください。
表記を変えるなり、これに書き加えるなりします。

ちなみに、管理CGIの設定機能を使っていて「Can't write...」というエラーが出た場合は、
該当するファイルのパーミッションを、上のほうの説明の、括弧内のものに変えみてください。
ちゃんと書き込めれば設定があっていると断定してよいでしょう。

※警告!
アップロードする際には、ファイルの名前を予測のつかない名前、
(例えばE36Vj4tGiHQ.cgiのような)に変更してからアップロードしてください。
このCGIは破壊的な機能(index.cgiの設定やログの削除など)持っているので、
悪意を持った人に場所を知られると非常に危険です。

ちなみに、ファイル名を変えると動かなくなるのではないか、と思う方もいるでしょうが、
管理CGIはファイル名を変えても大丈夫なように作っているので、ご安心ください。

設置した後の運用

Mireilleをバージョンアップする時

基本的には、core.cgi, style.pl, artnavi.js, iconctlg.cgiを上書きすればOKです。

style.cssを自分で改造していないのなら、style.cssも上書きした方が良いですが、
style.cssは多少古いものでも動作するように作ってあるので、上書きしなくても大丈夫です。
ただ、style.cssの変更はブラウザの表示をより綺麗にするため、のものが多いので、
OperaやMozillaを使う人が多い掲示板では、まめにstyle.cssをバージョンアップした方がよいかもしれません。
また、style.cssを改造している方も、時々は新しいバージョンをベースに、style.cssを改造しなおした方がよいとは思います。

index.cgiは後方互換性に気を使っているので、かなり古いものでも動作するはずです。
確認した限りでは1.2.2.8以降のindex.cgiなら、それ以降に追加された新機能はつかえませんが、とりあえず動作はします。

もしindex.cgiやstyle.cssに、それまでのバージョンと著しく互換性を損なう変更場行われた時は、
Mireille.txtの更新履歴の部分にそのことが書かれるので、対応策はそこを参照してください。
特別に注意することが書いてない場合は、互換性があると考えてよいです。

バージョンアップについては以上の通りですが、上の説明はindex.cgiとstyle.css以外は改造していない場合の話です。
core.cgiやstyle.plなどに手を入れている場合は、現在考慮に入れてません。
もしindex.cgiとstyle.css以外を改造している方は名乗り出てくだされば、考慮して開発するようにします。

過去ログの扱い

Mireilleでは過去ログを圧縮して保存するようにしているので、ファイルスペースへの負担は比較的軽いのですが、
それでも長い間ほったらかしにしていると、思わぬサイズになってしまうことがあります。
なので、定期的に整理するようにしましょう。(過去ログが100ファイルを超えたら、くらいかな)

整理するには二通りあるかと思います。
未練を残さず削除してしまうのと、ローカルにダウンロードした上でサーバー上のファイルを削除するのと、になるのですが、
後者ではダウンロード時に注意すべき点が一点あります。

Mireilleでは、1.cgiをGZIP圧縮で削除した場合、「1.cgi-(GZIP圧縮)→1.gz」とした後に、
このままだと管理者以外でも過去ログをダウンロードできてしまうため、「1.gz-(ファイル名変更)→1.gz.cgi」とします。
.htaccessのようにlogディレクトリからのダウンロードを不許可にできれば、こんな小細工も必要ないのですが、
色々なサーバーで動くようにすると、.htaccessに頼りきりになるわけにも行かないため、このような仕様になっています。

で、このファイル名変更処理は所詮小手先の業なため副作用が出ます。
Windows向けFTPソフトにはファイルの転送モードが「テキスト/ASCIIモード」と「バイナリモードが」あります。
二つの違いは、ASCIIモードだとファイル転送時にs/\x0a/\x0d\x0a/gし、バイナリモードではしません。

テキストファイルとは文字情報を保存しているファイル。
バイナリファイルは絵や音、プログラムなどのファイル。
テキストファイルでは、OSごとに改行文字が異なるため、改行文字を変換する必要があります。

で、ちょっと気の利いたFTPソフトは、ファイルの拡張子によってこの転送モードを自動的に切り替えてくれるのです。
拡張子cgiは普通テキストなので、「ASCIIモード」でファイル転送が行われます。
1.gz.cgiはGZIP圧縮しているので実はバイナリファイルなのに・・・
「ASCIIモード」で転送された1.gz.cgiは、哀れ、トンチンカンな改行処理をくらって、ファイルが破壊されます。

で、対策ですが簡単です。ダウンロード前に1.gzに戻してダウンロードすれば、
FTPソフトはgzはバイナリファイルだと知っているので、破壊されることはないです。
(転送モードの自動判定をOFFにして、バイナリモードを強制して、ダウンロードしてもOKです。)

荒らしが来たら

「荒らしになりそうな人にはサイトのURLを教えない」、「荒らされそうなコンテンツを扱わない」、
といった事前策があるのですが、来てしまったものは仕方がありません。
早速撃退策を練りましょう。

心に余裕のある方だったら、荒らしをからかって暇つぶし、飽きたらポイ捨て、というのも趣があり、おもしろいのですが、
みながそんな気分なはずもないので、まじめにいきます。
世の荒らし対策ページ、というので紹介される対策は、主に以下の三種類でしょう。

  1. 荒されても無視しよう
  2. 荒らし対策BBSを導入しよう
  3. 荒らした人のIPをみて追跡しよう

一つ目は定石中の定石、基本中の基本です。
世の荒らしの8割以上は愉快犯という統計もある(ほんとか?)通り、荒らしはおもしろくなければ止みます。
なので「荒らしている人のことを罵倒しよう」というのは、荒らしを止めさせたいのであれば絶対にやってはいけません。
(逆に暇ならちゃんと相手をしてあげないとダメです。)

二つ目も定石といえば定石なのですが、今となってはあまり効果がないように思えます。
荒らし対策BBSの「荒らし対策」とは機械化された自動の荒らしを指すことが多く、自動化荒らしへの対策がなされています。
しかし、今時の技術的レベルの低い荒らしには逆に無力です。
「騙り(他の人の名前を偽って発言し、場を混乱させること)」への対策として導入された「トリップ」機能は、
ある程度有効かもしれませんが、荒らし対策BBSで今時の荒らしを止めさせることは困難だと思われます。

三つ目は確実ではありますが、高い技術を持っていないとできませんし、Proxyを使える人相手では技術戦になりがちですが、
時によっては一発で荒らしに止めをさせるので確実です。
具体的な手法についてはgoogleで「荒らし対策」「追跡」などのキーワードで検索してください。

とは言っても、やはり自分で荒らしのISPを突き止めるのは大変です。
大手プロバイダの「ホームページスペース」を使っていたり、一部の有料レンタルサーバーを使っているなどで、
サーバーが面倒のいいところの場合は、サーバーに泣きつくのも一つの手段です。
基本的に大手はスペースの値段が割高なのですが、それはこういうときのサポートのために割高になっているのだ、
と自分勝手な解釈をして助けを求めれば、それなりの対応をとってくれるかもしれません。
その際は荒らされたログをとっておき、見せることを忘れずに。
こちら側のプロバイダが、荒らし側のプロバイダを責めるときに、荒らされたログが必要ですので、必ずとっておきましょう。

また、自分の側のサーバーが頼りない時でも、荒らされ方によっては、他を頼ることができます。
荒らしの文言に「殺してやる」とかそれに類する言葉があった場合、脅迫として警察に駆け込めるかもしれません。
一昔前では「民事不介入」などとのたまうばかりで頼りにならなかったようですが、
近頃は何件か「脅迫として逮捕した」と報道もされているなので、結構頼りになるようです。
この場合でもログが絶対に必要です。

荒らされることと、それに打ち勝つことはは、有名ページへと上り詰めるためには必要不可欠なステップです。
Webの星を目指すため、重いコンダラをひきひき、試練の道を行って、ど根性を見せてください。(謎

Mireilleの注意事項

漢字コード

Mireilleは、このMireille.txtとそのほか一部のファイルを除いて全て、
EUC-JPという漢字コードで書かれています。
そのため、メモ帳を筆頭とする、EUC-JP非対応のエディタでは編集することが出来ません。
EUC-JP対応のエディタをご使用ください以下は推奨するエディタです。
TeraPad http://www2s.biglobe.ne.jp/~t-susumu/toclip/
秀丸エディタ http://hidemaru.xaxon.co.jp/
さくらエディタ http://sakura-editor.sourceforge.net/
他にもEmEditorやWZEdiotrなどが対応しています。
特に本格的にやるならば、色分けをしてくれるエディタだと格段に、
効率が上がり、かつミスも減ると思います。

ちなみに成瀬は2001年中ごろから、 アンカーシステムズ株式会社のPeggyProを使っています。
Perl言語の色付けの精度では、トップクラスの正確さでしょう。
PeggyProは有料ですが、PeggyPadは無料です。

他にもAiremix/info.からいろいろなテキストエディタの配布サイトへ飛ぶことができます。

アイコン

アイコンリスト

基本的にはOPTGROUP要素とOPTION要素をあわせて使うことをお勧めします。
具体的な形式としては、

<OPTGROUP label="グループ1">
 <OPTION value="11.png">アイコン1</option>
 <OPTION value="12.png">アイコン2</option>
</OPTGROUP>
<OPTGROUP label="グループ二">
 <OPTION value="21.png">アイコン一</option>
 <OPTION value="22.png">アイコン二</option>
</OPTGROUP>
<OPTION value="1.png">アイコン壱</option>
<OPTION value="2.png">アイコン弐</option>

のような形になります。

OPTGOUPタグ外のOPTIONは全体の末尾に存在しないといけません。
できればこうするよりも、OPTGROUPに属さないようなOPTIONは、
グループ名を「その他」などにして、何らかの形でOPTROUPタグ内に入れてしまったほうがいいです。
(具体的に言えば、icon.txtの内容が丸ごとSELECTタグの中身となります)

ちなみにOPTGROUP要素はHTML4で新しく追加された要素で、
InternetExplorer6forWindows、InternetExplorer5forMacintosh、Netscape6、Mozilla、Opera7などが対応しています。
これら以外では無視されますが、見易さ・分類のしやすさをを考慮すると、
今のうちからつけておいたほうがいいと思います。
ちなみに、OPTGROUPはHTML4の規格上入れ子にできないようになっています。

index.cgiのアイコンディレクトリの設定とアイコンリストの使い分け

例えば、http://www.airemix.com/の下に、設置し、
FTPサーバーでのディレクトリの構造が、

パス属性用途
/ 755FTPのルートディレクトリ
/public_html/ 755FTPのHTTPに公開するルート
/public_html/icon/755アイコンディレクトリ
/public_html/icon/hoe/icon1.png644アイコン1
/public_html/icon/hoe/icon2.png644アイコン2
/public_html/icon/icon3.png644アイコン3
/public_html/bbs777(755)掲示板のディレクトリ
/public_html/bbs/index.cgi755(700)CGI起動ファイル兼設定
/public_html/bbs/icon.txt666アイコンリスト
/public_html/bbs/icon.html666アイコン見本

のような状態になっている時(掲示板のほかのファイルは省略)には、

  • アイコンディレクトリにHTTP相対パス
    アイコンディレクトリは $CF{'icon'}='../icon/'; とし、
    icon.txtでは <OPTION value="hoe/icon1.png"> などとする
    → アイコンは <IMG src="../icon/hoe/icon1.png"> になる
  • アイコンディレクトリにHTTPサーバー内絶対パス
    アイコンディレクトリは $CF{'icon'}='/icon/'; とし、
    icon.txtでは <OPTION value="hoe/icon1.png"> などとする
    → アイコンは <IMG src="/icon/hoe/icon1.png"> になる
  • アイコンディレクトリにHTTP絶対パス
    アイコンディレクトリは $CF{'icon'}='http://www.airemix.com/icon/'; とし、
    icon.txtでは <OPTION value="hoe/icon1.png"> などとする
    → アイコンは <IMG src="http://www.airemix.com/icon/hoe/icon1.png"> になる
  • アイコンリストだけでHTTP相対パス
    アイコンディレクトリは $CF{'icon'}=''; とし、
    icon.txtでは <OPTION value="../icon/hoe/icon1.png"> などとする
    → アイコンは <IMG src="../icon/hoe/icon1.png"> になる
  • アイコンリストだけでHTTPサーバー内絶対パス
    アイコンディレクトリは $CF{'icon'}=''; とし、
    icon.txtでは <OPTION value="/icon/hoe/icon1.png"> などとする
    → アイコンは <IMG src="/icon/hoe/icon1.png"> になる
  • アイコンリストだけでHTTP絶対パス
    アイコンディレクトリは $CF{'icon'}=''; とし、
    icon.txtでは <OPTION value="http://www.airemix.com/icon/hoe/icon1.png"> などとする
    → アイコンは <IMG src="http://www.airemix.com/icon/hoe/icon1.png"> になる

のような指定の仕方があります。

結局は、「アイコンディレクトリの指定+アイコンリストの指定」→きちんとした「相対/絶対URL」
となっていればいいわけです。

この理由から、
アイコンディレクトリを$CF{'icon'}='../icon/';とし、
icon.txtを<OPTION value="/hoe/icon1.png">などとする場合は、
足すと<IMG src="../icon//hoe/icon1.png">となってしまい、おかしいわけです。

アイコンリストの著作権表示機構

Mireilleのアイコンリスト形式は、基本的にはOPTGROUPとOPTIONを使って、SELECTタグの中身を書く、
といったものですが、HTMLのコメントを使って拡張情報を埋め込むことができます。
この項ではその拡張情報の一つ、著作権表示機構を説明します。

著作権表示機構用の拡張命令には、一次著作権者を指定するためのCOPY1と、製作者を指定するVENDORがあります。
一次著作権者はアイコンに使われている画像のそもそものオリジナルを書いた人または団体であり、
製作者はそのアイコンを配布している人または団体です。

例えば、成瀬がDRAGON QUESTのスライムをアイコンにして配布していたとします。
その場合、一次著作権者(COPY1)はDRAGON QUESTの発売元であるENIXになり、
製作者(VENDOR)は成瀬になります。

さて、COPY1命令とVENDOR命令にはNAME,URL,LNKというオプションがあります。
NAMEではCOPY1やVENDORの名前を、URLではサイトのURLを指定します。
LINKについてはここでは省略します。

さて、実際に使ってみましょう。

<!-- %BEGIN_VENDOR --> #VENDOR設定を始める
<!-- %VENDOR_NAME 成瀬 --> #VENDORの名前は「成瀬」

<!-- %BEGIN_COPY1 --> #COPY1設定を始める
<!-- %COPY1_NAME ENIX --> #COPY1の名前は「ENIX」
<!-- %COPY1_URL http://www.enix.co.jp/ --> ENIXのURLは「http://www.enix.co.jp/」

<OPTGROUP label="DRAGON QUEST"> アイコングループ「DRAGON QUEST」開始
  <OPTION value="dq/suraimu.png">スライム</OPTION> スライムのアイコン
</OPTGROUP> アイコングループ終了
<!-- %END_COPY1 --> COPY1設定の終了
<!-- %END_VENDOR --> VENDOR設定の終了

以上のような具合になります。

HTMLでいうと、BEGIN_VENDORが開始タグ、END_VENDORが終了タグにあたる、と言えばわかりやすいかもしれません。

上の例の%BEGIN_COPY1との二行に注目してください、ここは以下のように一行で書き換えることができます。

<!-- %BEGIN_COPY1 ENIX --> #COPY1の設定を始める、COPY1の名前は「ENIX」

このような省略記法を使うと、多少アイコンリストが見やすくなるかもしれません。

アイコンの最大数

理論上は無限になっています。
ただ、CGI処理の負荷やHTTP転送の負荷を考えると、
ほどほどの数にしておいたほうがいいかもしれません。
わたしの側ではアイコン数800でそこそこのスピードで動作することを確認しています。
アイコン見本(icon.html)を見る時は一度に全てのアイコンを表示させる、ということも留意する必要があるでしょう。

専用アイコン

管理CGIの「CONFIG設定」で設定できます。
または、
$CF{'cmic'}='1';
としたうえで直接設定ファイルを編集しても設定可能です。

設定の形式は

$IC{'hae'}='mae.png'; #苗
$IC{'hie'}='mie.png'; #贄
$IC{'hue'}='mue.png'; #鵺
$IC{'hee'}='mee.png'; #姐
$IC{'hoe'}='moe.png'; #乃絵

このようになっています。
実際に使う場合は「コマンド」欄を使用します。

上の例のように設定されているとすると、 コマンド欄に「icon=hoe」と入力すればアイコンに"moe.png"が設定されます。
注意:アイコンパスワードには =; は使用できません。
なるべくアイコンパスワードは [-_a-zA-Z0-9] な文字で構成されているほうがいいと思います。

意味の混同しやすい語の定義

Mireilleやその説明で意味がわかりにくいと思われる語の解説です。
基本的に以下のように表記しているはずです。

記事情報ファイル ArticleInformationFile, ZeroFile
ログ管理ファイルなどとも言っていて、0.cgiのことです。
このファイルに最終投稿者の情報や「最終投稿日時順」の情報を保存しているので、
利用中の0.cgiが破損してしまうと大変です。
といっても、Rev:1.2.0.7以降の管理CGIには「記事情報ファイル回復」がついているので、
これでほどほどに復旧することができます。
(今までに投稿されたスレッドの並び順が記事番号順になってしまうけど)
(最近のMireilleだと適当に自動復旧します)
記事スレッド ArticleThread
親記事と子記事を含めた一つのスレッド全体を指します。
「記事」とは別の意味で使っているので注意してください。
記事スレッドファイル ArticleThreadFile
記事スレッドを保存しているファイルのことです。
一つの記事スレッドに対して、一つの記事スレッドファイルが対応します。
例えば記事スレッド番号が123だったら、123.cgiが対応する記事スレッドファイルです。
親記事 ParentArticle
スレッド内記事番号0、新規投稿で投稿された記事のことです。
子記事 ChildArticle, Response, Follow-up, Reply
返信として投稿された記事で、「返信」や「レス記事」と同じ意味です。
スレッド内記事番号が1,2,3,・・のものです。
記事 Article
単独で「記事」といったら、前述の親記事や子記事の一つのことです。
「投稿」という言葉を使ったりもしています。
専用アイコン ExclusiveIcon
普通にSELECTで選べないアイコンのことで、アイコンパスワードを入力することで使うことができます。
パスワードなどで利用できる人を制限、多くの場合個人に対し専用とするので、
「専用アイコン」という語を用いています。
専用=管理人専用
が必ずしも成り立つわけではありませんので、念のため。
PrivateでなくExclusiveを使っているのも必ずしも個人では無いからです。
ログ Log
漠然と、今までに投稿された記事の集合、という形で使っています。
「ログファイル」は「記事スレッドファイル」と同じ意味で、1.cgiや59.cgiのことです。
フォルダ Folder / ディレクトリ Directory
フォルダはWindows用語、ディレクトリはUNIX用語というだけで、実際にあらわす意味はほぼ同じ物です。
この説明書では「フォルダ」と言ったら設置者のコンピュータでのフォルダ、
ディレクトリといったらサーバー上のディレクトリを指します。
アイコンリスト IconList
icon.txtのことです。
「アイコン一覧」を英語にすれば「アイコンリスト」になりそうですが、
これはアイコン見本の意味で使っていることがことが多いのです、まぎらわしいですね。
アイコンカタログ・アイコン見本 IconSample, IconCatalog
iconctlg.cgiが生成するHTMLやicon.htmlのことです。
アイコンリストと紛らわしいので言わない様にしているつもりなのですが、「アイコン一覧」も同じ意味です。
アイコンプレビュー IconPreview
投稿フォームにある、使うアイコンをJavaScriptによって前もって見れる機能の事です。
ARTEMISさんの掲示板を参考にして取り付けました。
パス PATH
主にファイルの場所を指定する際に用いますが、パスには二つの種類が存在します。
一つはコンピュータ内のパスで、自分のコンピュータ内のファイルを指定するときや、サーバー上のCGIが直接ファイルを読み込む場合に使います。
もう一つがInternet上でのパスです。
これはブラウザで読み込むWebページを指定したり、HTMLからIMGタグやLINKタグを使って、画像ファイルやCSSファイルを読み込む際に用います。
普段はこの二つを別々に意識する必要はありませんが、Mireilleのコアファイル群を複数の掲示板で共有する場合には、
この二つの違いを意識してindex.cgiを設定する必要があります。

とりあえずこのような感じでしょうか
他にも意味の明確でない語があれば、掲示板でおっしゃってくださいまし、追加します。

Mireilleの設置でつまづいたら

動かない!とき

「500 Internal Server Error」と表示される場合

パーミッションが正しくない
FTPからアップロード」に書いたパーミッションは一般的な場合で、
場所によってはこれで動かない場合があります。
プロバイダーやレンタルサーバー側から、CGIのパーミッションを○○にすること、
と言われている場合はそれに従ってください。
ちなみに「500」か、「Mireille Error Screen」で「write/read error」が出る場合以外のエラーでは、
まずパーミッションが原因の可能性はありません。
アップロードの失敗によるファイルの破損
アップロード時にファイルの一部が欠損したかもしれません。
アップロードしなおしてみてください。
「最初の一行」が正しくない
いわゆる「最初の一行」が正しくない可能性があります。
とりあえず#!/usr/local/bin/perl#!/usr/bin/perlを両方試してみて、
だめだった場合は、プロバイダーやレンタルサーバーに聞いてみてください。

「Mireille Error Screen」が表示される場合

・・・そのエラースクリーンに表示される情報を参照してください。

もともと成瀬がサポートするときのためにつけたものなので説明が不親切な場合があり、
解決策がわからないかもしれませんが・・・。

その場合はAiremixの掲示板で、そのエラースクリーンの情報と共に聞いてくだされば、サポートできるかもしれません(曖昧

成瀬に聞く際は「ERROR:...」だけでなく、エラースクリーンで表示される情報全てを教えてください。
わたしのサポート用に必要な情報はエラースクリーンでほとんど集まるようにしているので、
一部だけでは情報が集まらないのです。

文字はまったく表示されずただ画面が真っ白になったり、広告と共に化けた文字が表示される場合

たいてい、GZIP圧縮転送機能と無料サーバーによくある強制広告挿入機構のコンボが原因でしょう。
対策としては、index.cgiの $CF{'conenc'}='|gzip -cfq9';$CF{'conenc'}=''; と変えて下さい。

以上の三つ以外の症状で動作しない場合

原因が特定できないのでAiremixの掲示板で成瀬に聞いてください。
まだ確認できていないバグが原因の可能性があります。

文字化けする

書き込んだ内容はちゃんと表示されるのに、メニューとかが文字化けしている、
またはその逆に、メニューとかはちゃんと表示されるのに、書き込んだ内容が文字化けしている、
という場合は、CGIをエディタで編集する際にEUC-JP以外の漢字コードで保存してしまっています
一番多い原因は、エディタの設定で、「保存時に漢字コードをShift_JISにして保存する」
というような意味の設定が ON になっていて、EUC-JP以外の漢字コード(この場合はShift_JIS)で
保存してしまっている、という場合が多いと思います

この場合は前述のエディタの設定を「読み込んだときの漢字コードと同じもので保存する」
というようにしたうえで、「漢字コードを指定して保存する」という項目を探し、
EUC-JPで保存しなおした上で、再度サーバーにアップロードすれば、文字化けが解消されていると思います
これでも文字化けしている場合はAiremixの掲示板に書き込んでください
できるだけ善処します

ちなみに、TeraPadではこの問題に陥ることがあると思いますが、
TeraPadで一つ一つのファイルを開いて、
 表示 → オプション → ウィンドウ/漢字コード タブ → 漢字コード グループ
  → □漢字/改行コードを自動認識する にチェックをつける
  → 下の二つは両方「読み込み時の○○コードと同じ」を選ぶ
とすることで解決すると思います

エディタで保存時にShift_JISにしてしまう以外に、
FTPソフトでアップロードするときにEUC-JPからShift_JISに変換してしまう場合もあります
「アップロード時に漢字コードを変換しない」というような意味の設定をしておきましょう
EUC-JPのファイルをアップロードして、ダウンロードして、エディタで見てみて、
Shift_JISになっていたら、FTPソフトが原因の可能性が高いです。

Netscape6以降やMozilla系ブラウザでCSSが適用されない

Netscape6を始めとしたMozilla系のブラウザでは、
あるバージョン以降からMIME-TYPEにtext/cssが指定されていないCSSファイルを、CSSファイルとして扱ってくれません。
そのため、CSSのMIME-TYPEが正しく設定されていないサーバーでは、
個々人で.htaccessを指定することによって、MIME-TYPEを指定しなければなりません。

.htaccessの設置を許可しているサーバーなら、Mireilleの圧縮ファイルに入っている.htaccessを、
そのままstyle.cssのあるディレクトリにアップロードすればOKです。

.htaccessの設置を許可していないサーバーの場合は、サーバーのサポートに対して、
http://www.mozilla.gr.jp/standards/webtips0016.htmlで言及されていることが起きている」
と相談してください。

この問題についてはMireille側で対処することはできず、サーバー側で対処する必要があります。

パーミッション(属性)について

無料サーバーなどだと、セキュリティ確保のために、サーバー側から、
「CGIスクリプトのパーミッションは 700 にしてください」
と言われることがあると思います。
この場合は、この説明書の記述に関わらず、サーバー側の指示に従ってください。
基本的に、パーミッションは多少動作がおかしくても、動いてさえいればあっています。
パーミッションが原因のエラーは基本的に「500 Internal Server Error」か、「Can't write...」系のエラーのみです。

説明書に書いていないファイルが圧縮ファイルの中に入ってた

おそらくわたしのミスです。
申し訳ありませんが、無い物と思ってください。

なんだかMireilleの動作がおかしい

設定ミスかMireilleのバグが五分五分です。
一通り説明を見て、設定を確認して、間違いないようでしたら、バグだと報告してください。
ちなみに自分ひとりで悩む時間は1時間が目安です。
何時間も悩むような状況が発生したら、説明書がわかりにくいのも「バグ」のうちなので、それも「Mireilleのバグ」です。

お世話になったところ

Academic HTML <http://www.tg.rim.or.jp/~hexane/ach/>
HTML/CSSに関する的確な情報がたくさんあります。
HTML/CSSを一通り学びたい場合はここを見るだけで事足りてしまいます。
Another HTML-lint <http://openlab.ring.gr.jp/k16/htmllint/>
HTMLの検証に際し利用しました。
初めてチェックすると、ほとんどの人がショックを受けることでしょう。
ARTEMIS <http://www.artemis.ac/arrange/>
IconPreviewはここからです、便利なので頂きました。
新しい投稿があると教えてくれる〜もここのを見て、です。
他にもいろいろと参考にしています。
管理機能でここを見習う点は数多くあります。
HTML鳩丸倶楽部 <http://www.ne.jp/asahi/minazuki/bakera/html/hatomaru>
ツッコミメインなHTML解説サイト、にわたしは見えました。
「HTML 4.01 のみを、純粋に学問的な興味から研究」しているそうです。
HTMLの構成に際して参考にしました。
jcode.pl <http://www.srekcah.org/jcode/>
漢字コード変換用のライブラリです。
Mireille本体では横着しているので使っていません。
管理CGIでは一部を切り出して使っています。
Jcode.pm <http://openlab.ring.gr.jp/Jcode/index-j.html>
jcode.plの後継でPerl5用PerlModuleとなっています。
jcode.plの機能にUnicodeを扱う機能が追加されています。
Perl5.8ではEncodeモジュールに置換されているようです。
KENT-WEB <http://www.kent-web.com/>
なにはともあれ日本のCGI/Perl界に与えた影響は少なくはないはずです。
私個人では特にYYBOARD,YYCHATにはお世話になりました。
きわめてとっつき易いCGIが多いです。
Perlメモ <http://www.din.or.jp/~ohzaki/perl.htm>
URI自動リンク機能をつけるに際し参考に・・・むしろ丸写しです。
Perlの正規表現に関してとても有用な情報があります。
W3C HTML Validation Service <http://validator.w3.org/>
HTML規格の策定を行う団体、W3CによるHTML検証サービスです。
Another HTML-lintよりチェック項目は少なめです。
とほほのWWW入門 <http://tohoho.wakusei.ne.jp/>
HTML部、Perl部ともに時々リファレンス代わりにしました。
なかなか載っていて便利です。
彼の野原 <http://kano.feena.jp/>
LastPostはここのealisの真似です。
また1.2.2の記事ナビは神乃さんのものベースに作りました。
最近ではPHPに移ってあるべき姿というものを模索していらっしゃるようです。
SWORD AND COMMERCE <http://www10.plala.or.jp/ryokufuudou/kijindou.html>
retroさんにはMireilleでつまづく所No.1と思われるアイコン設定の解説を書いていただきました。
他にもMireilleの解説の不備な点を多数してもらいました。
ちなみに、retroさんのサイト自体はRagnarkOnline系雑談サイトです。
Snowish Hills <http://snowish.cside8.com/>
Mireilleを作りこむにあたって、半ばオンサイト顧客として、数々の有用なアドバイスを頂きました。
特に管理CGIは西名さんに言われなければ、かなり貧弱なものになっていたでしょう。
現在の初期状態のデザインも西名さんのデザインをベースにしています。
ちなみに、西名さんのサイト自体はKey系CGサイトです。

他にも意見を下さった方々、参考にしたサイト・CGIの作者さんに感謝します。

この説明では™や®や©マークは省略しています。
それぞれのサイト名やソフトウェア名などは各々の商標や登録商標などです。

■■■■■■■

BACK to INDEX

[ $Id: Mireille.html,v 1.12 2005/03/02 18:20:34 naruse Exp $ ]
- Airemix Mireille -