homeホームHTMLに役立つヒントマニュアルに書いてないきのぼず > きのぼずを設置する

きのぼずを設置する

■■目次■■
■便利TOOL編 ●チェックプログラム ●設定プログラム kbconf ●その他の便利ツール 
■基礎知識編 ●ファイルモード=パーミッション ●漢字コードと改行コード ●telnet ●FTP
■小技編 ●.tar.gzの展開 ●Perlの位置を知る ●パスの取得 
■ヒント編 ●cgi設定時のエラーについて

■便利TOOL編
●チェックプログラムkbTst.cgi R6.x ▲このページのトップへ  ▲▲目次ページへ
 綾之介さんが開発したきのぼず実行環境テストプログラム。これを使うとパーミッションエラー、シンタックスエラー、フルパス名の取得などなどチェックしてくれますので、cgiの設定・間違いの発見が非常に素早くできます。バージョンアップされるたびに、ここのパーミッションが違ってるとか、どんどん細かい情報が表示されるようになってきてます。すごいじょ(^_^)
 使い方:ダウンロードしたら、最初の1行目でperl環境の指定をしてください(EUC/LFもチェックしてね)。次にこれをFTPでアップして、ブラウザでkbTst.cgiにアクセスすると実行されます。これだけで設定ミスなどさまざまなチェックをしてくれます。
 ダウンロードはここから。http://www5.big.or.jp/~aya/c_cgi/dl/dl.cgi?kbTst.txt

 なお、R6.9からはきのぼずに付属してパッケージされています。


●設定プログラム kbconf R6.x ▲このページのトップへ  ▲▲目次ページへ
 きのぼずチェックプログラムkbconfという便利ツールを綾之介さんが開発しました。きのぼずホームページからいけますが、こちらがご本家。きのぼずは高機能な掲示板ですので、設定項目も数が多いです。なれないとその設定も一苦労ですが、kbconfを使うとらくらくラクチン設定できます。


●そのほかの便利ツール R6.x ▲このページのトップへ  ▲▲目次ページへ

 きのぼずに惚れ込んだ方々によって、様々なツールが開発されています。これらの便利ツールの置き場所は、「ぺーるあります」から「きのぼず関連ユーティリティサイト」としてリンクされていますので、そちらからジャンプしてください。

 この他、アイコンコレクションにもリンクされています。一度のぞいてみましょう。


■基礎知識編
●ファイルモード=パーミッション R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ
 ファイルやディレクトリ(フォルダ)にはモード=パーミッション=権限を設定できます。
 これは、「そのファイル/ディレクトリの読み込み/書き込み/実行を許可するかどうか」を表します。CGIやplファイルは、実行権限が与えられないと実行できませんし、書き込み権限のないディレクトリには誰も書き込みをすることができません。これらの権限を与えるのがパーミッションです。

 きのぼずというより、cgiはこのモード=パーミッション=権限が正しく設定されていないと動作しません。ディレクトリやファイルのパーミッションはきのぼずのインストールマニュアルに書いてあります。

 ◆telnetで設定する場合
   chmod 777 [ファイル名] で設定できます。「chmod 777 filename」って感じ。777の部分がパーミッションです。この数字はきのぼずのマニュアルに書いてありますので、そちらを見てください。

 ◆FTPで設定する場合
   FTPソフトにはパーミッションの設定ができるものがあります。下の図はMAC版Fetchの例です。どの権限を与えるのか、一目瞭然ですね。

 左から「読む4点」「書込2点」「検索実行1点」とポイントがあると考えてください。このポイントの合計がパーミッションの数字になります。
 例:741の場合(フツー、こんなパーミッションはあり得ないです)

読む/4点 書き込み/2点 検索/1点 合計ポイント
オーナー 7
グループ 4
全員 1

 こんな感じです。では突然クイズ。上のFetchの図ではパーミッションはいくつでしょう?(正解は644)

 以上の説明でよく判らなかったら、「役立つページ」から「とほほのwww入門」にいくとさらに詳しく解説されています。


●漢字コードと改行コード R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

1.漢字コード
 EUC/SJISは漢字コードの設定です。cgiはEUCコードでないと動きませんから、必ずEUCコードにしましょう。sjisで動かすように言っているcgiもありますが、perlはEUCでないとパターンマッチング処理がうまくいきません。

2.改行コード
 CR+LF/CR/LFは改行コードです。CR+LFはウインドウズの改行コード、CRはMACの改行コード、LFはUNIXの改行コードです。
 .cgi/.plなどのファイルはLFでないと正常に動作しませんので、これも要チェックです。.htmlの場合はムシされるのでどーでもいいです。

 Windowsなら秀丸、MACならJEdit(残念ながらシェアウェアになった)やミミカキエディット(フリーウェア)などのエディタで漢字コード/改行コードの変換ができます。これらのテキストエディタで作業するとよいでしょう。

 漢字コード/改行コードは「EUC/LF」と覚えてください。

 以上の説明でよく判らなかったら、「役立つページ」から「とほほのwww入門」にいくとさらに詳しく解説されています。


●telnet R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

 telnetというのは、サーバにアクセスして、そのサーバの外部端末になることを言います。難しいか(^^; えーと、「telnetというTOOLを使ってサーバにログインして、サーバの中味をいじる」ことです。上記のようにパーミッションの設定などを行う時に便利です。
 きのぼずを設置するには必ずしも必要というわけではありませんが、FTPではできないことがtelnetではいろいろできます。
 telnetソフトはVectorあたりで「telnet」で検索するといろいろでてくると思います。
 なお、プロバイダによってはユーザーにtelnetを許可していないところもあります。自分のプロバイダのサポートに行って、確認してみてください。

 telnetではUNIXコマンドを使います。「UNIXの基本的なコマンド」で最低限のコマンドを紹介しています。 ただし、このあたりのコマンドはシェルによってちがいます。方言があるってことです。


●FTP R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

 FTPはファイル・トランスファー・プロトコルのことで、よーするにサーバ上にファイルをアップロード/ダウンロードすることです。みなさんも自分のホームページを設置するときに使っているはずです。
 FTPソフトはVectorあたりで「FTP」で検索するといろいろでてくると思います。
 FTPを許していないプロバイダは多分ないと思います。


■小技編
●.tar.gzの展開 R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ
 きのぼずは最初kb.tar.gzとかいう名前で固められて(圧縮されて)います。
 tarはテープにバックアップするために複数のファイルを一つにまとめるソフトであり、それによって作られたファイルです。gzはUNIX標準でインストールされている圧縮ソフト。.tar.gzファイルはtarで一つにまとめられた上にgzで圧縮されているファイルです。
 tarの利点は、パーミッション情報ごと保存されているので、UNIX上で展開するとパーミッションの設定の必要がない点です。手元のパソコンで解凍してしまったら(zipやStuffIt Expanderで解凍できる)、パーミッション情報がなくなるので、FTPでアップロードした後に手動で設定しなくてはなりません。

zcat ファイル名.tar.gz | tar xpf -

 これでUNIX上で解凍できるはず。ラクチンラクチン。なんか、このあたり、サーバーによって(とゆーか、シェルによるらしい)ちょっとずつ違うみたいなので、これで解凍できなかったら勘弁してね。


●Perlの位置を知る(kb.cgiの先頭で設定の必要あり)R6.x/R7.x  ▲このページのトップへ  ▲▲目次ページへ

 telnetして「which perl」を実行してください。バージョンを知りたければ「perl -v」。


●パスの取得 R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ
 kb.cgiの最初の設定部分で、kb.cgiのおいてあるフルパス($KBDIR_PATH)を指定します。ところが、サーバーのフルパスってよく判んないんですよね。で、フルパスを取得する方法です。この情報はきのぼず掲示板からの転載です(きのぼずのサポート掲示板にはこんな役立つ情報が満載なのだ)

 以下のスクリプトを、きのぼずのディレクトリにおいて,ブラウザでアクセスしてみてください。
 そのファイルの絶対パスが表示されます。
 そのパスから、ファイル名を除いたものが、きのぼずのPATHになります。

#!/usr/local/bin/perl
# dir.cgi aya@big.or.jp

print "Content-type: text/html\n\n";
print <<"_HTML_";
<HTML>
<HEAD>
<TITLE>Now Dir Path</TITLE>
</head>

<BODY>
<P>
$0
</P>
</BODY>
</HTML>
_HTML_

 そんなことするのは面倒だというものぐさなあなた。大丈夫。このページのトップで紹介したkbTst.cgiならこの情報も一発で取得できるぞ。


■ヒント編
●cgi設定時のエラーについて R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ
 この話題については僕の手には余るので、なひさんのサポートボードを参照してください。自分の経験に基づいて、ちょこっとだけ書きます。
1.悪名高き500エラーの場合

 たぶんパーミッションが違っています。ファイル数が多くて大変ですが、パーミッションを確認してみましょう。
 また、きのぼず付属のインストールマニュアルにあるように、telnetで「perl -c ./kb.cgi」してみるのも一つの手。これでkb.cgiの単純なsyntaxエラーの箇所を教えてもらえます。kb.cgiを改造している場合は威力あり。

 パーミッション以外でこのエラーの原因は、経験からすると次の3つです。
1.ファイルの漢字コードが間違っている(EUCにする)。
2.ファイルの改行コードが間違っている(LFにする)。
3.ファイルのシンタックス(構文)が間違っている。ファイルの中味をいじっていなければまず発生しないエラーですが、一応telnetで「perl -c ./kb.cgi」などとやってみましょう。

 上の3つをチェックして、さらにパーミッションがO.K.なら原因は僕には分かりません。kbTst.cgiを使うか、なひさんにご相談ください<(_ _)>

2.cgiは動いたけど「ファイルが存在しないかパーミッションが間違っています」とでた場合  パーミッションが違っています。ファイル数が多いので大変ですが、チェックしてみてください。
 パーミッションを確認して問題ないようなら、漢字コードと改行コードをチェックしてみてください。
 僕は改行コードがMAC(CR)になっていてこのエラーにぶつかりました(前述のようにLFでなくては動作しない)。
 手元では確かにEUCだったのですが、FTPソフトが改行コードを勝手にMAC(CR)に変換してアップしたせいでした。FTPソフトのアップロード・ダウンロードの設定も確認してみましょう。意外と盲点です。
3.cgiは動いたけど「管理人のメンテ中」とでた場合  「.lock」ファイルが何らかの原因で作成できないとこのエラーがでます。おそらくディレクトリのパーミッションが間違っています。その掲示板ディレクトリのパーミッションは「777」になってますか?
 kb(R6.x)あるいはkbdata(R7.x)ディレクトリが777になっていない場合もこれがでるようです。チェックしてみてください。
4.メール送信機能が動かない kb.phの以下の設定を見ましょう。
1.OSがあっているか確認する。
2. $SMTP_SERVER = 'ドメイン名'; があっているか確認する。
   $SMTP_SERVER = 'IPアドレス'; を試してみる。
   $SMTP_SERVER = '127.0.0.1'; を試してみる。
   $SMTP_SERVER = 'localhost'; を試してみる。←これでウチは動いた

▲このページのトップへ  ▲▲目次ページへ