テクノート2000フリーウェアーバージョン User's Manual 作成・修正日 2000.01.22
一部商用バージョン向けの説明も含んでいます。
cgiファイル修正 |
|||
このページはCGIプログラム設置に慣れていない方を対象に作成した 序論.. 一般PC用プログラムとは異なり、cgiプログラムは設置前に いろいろなところを修正してからでないと正常に作動しません。 これはcgiプログラムが設置されるサーバーの環境がそれぞれ異なるためです。 主な修正項目はパス設定に関するものです。 ファイルをどのように配置するかによって設置パスも違ってきます。 TECHNOTE-2000の主修正項目はconfig.cgiファイルに入っています。 ファイル内部でも説明してありますが 設置初歩者にはすぐには理解できない点があるようです。 そのためここでは各修正項目の役割と修正方法に関して詳しく説明します。 config.cgiファイルを修正する前に他のファイルの修正から簡単に説明します。 main.cgi, index.cgi, read.cgi, help.cgi, print.cgi , infor.cgi これらのファイルはPERLのパスだけを修正します。 ('PERLパス'とはPERL CGIを実行させるPERLプログラムのパスを言います。) 上記のcgiファイルをエディターで開いて1行目を見ると 現在は<#!/usr/local/bin/perl>となっています。 自分のサーバー環境と異なっている場合のみ修正してください。 大部分のCGIプログラムは上のようになっています。 たまに<#!/usr/bin/perl>のようになっているところもあります。 よく分からない時にはTELNETプロンプトで "whereis perl エンター"または "which perl エンター" と行なうとPERLパスが出力されます。 それでも分からない時にはサーバー管理者に問い合わせてみてください。 一番前にある '#!' は(注釈文ではない)必ず入れてください。 修正が終わったら保存しますが、文字コードは<EUCコード>で改行コードは<LF>で保存します。 一般のメモ帳でEUC漢字コードで作成された文書を開くと文字化けするため、このプログラム修正には 必ずEUCコードが編集できるエディターを使用してください。エディターはフリーウェアーが数多く出回っていますので 自分の好みのエディターをダウンロードして使用してください。エディターは資料室でもダウンロードできます。 このコードを間違えてプログラムが実行されないケースが初心者に多いようです。 次は主修正項目が入っています。 'config.cgi' ファイルの各修正項目に関する説明です。 各項目番号は'config.cgi'の項目の番号と同じです。 以下の説明で'URL'は'http://www.boreal-net.com/~abcd'のような WEBブラウザで呼び出したパス(住所)を言い、 '絶対パス(PATH)'とはコンピュータ(サーバー)での物理的パスをいうもので UNIX系列では' /usr/home/abcd/cgi-bin/.../... ' windowsまたwindows NTの場合は' C:/usr/home/abcd/cgi-bin/.../... 'のように表記される。 'URL'と'絶対パス'を混同しないように... もちろん、 絶対パス(PATH)を相対パスに指定しても問題はない。 相対パス指定時はmain.cgiファイルの位置を基準にして指定すればよい。 参考に、' . ' は現在のディレクトリを意味し、 ' .. 'は一つ上のディレクトリ(上位ディレクトリ)を意味する。 ファイルをダウンロードして、圧縮ファイルを解凍した時 元のファイルの状態と同じように 設置する場合は下の変更項目で'パスとURL'を変更する必要はない。 基本設定状態は全て相対パスと相対URLが指定されていて、 cgi-binディレクトリ以外にもcgi実行が可能である仮定下での設定である。 全体URL、絶対パスを代入しても結果は同じである。 もしcgi-bin下位ディレクトリ内のすべてのファイルを基本配置通りに配置した場合、 cgi-binディレクトリがCGI専用ディレクトリに指定されていればアイコンイメージが表示されない。 この時はイメージ保存ディレクトリ(image)だけcgi-bin以外のパスに配置しておき 下の設定項目で該当ディレクトリのURLを代入するだけである。 パーミッション指定は添付されている<install.shl>を一回実行すれば一回で全て解決される。 <install.shl>を実行指せるためには<install.shl>ファイルを先に chmod 755 に指定しなければならない。 その後TELNETプロンプトで './install.shl エンター' すると全てのパーミッション指定が完了する。 TELNETのシェルプロンプトで手動でパーミッションを指定してもかまわない。 初心者はFTPを利用してパーミッションを指定する方が簡単であろう。(readme2.html参照) technoteはパーミッションを chmod 755 に cgiファイルのパーミッションは chmod 755 に その他のイメージファイルを除くファイルとディレクトリは chmod 777 または 776 または 766 ★★★★★★★一番理想的なファイルの配置は.....★★★★★★★★★★★★★★★★★★★★ ★ 実は修正やファイルの再配置をせずに原本のままアップロードしても ★ 大部分のサーバーシステムで正常作動する。 ★ しかしサーバー環境に合わせて次のように設置すると ★ 標準的で安定的な作動が保証される。 ★ ★ まず cgi-bin ディレクトリ内に 'technote' というディレクトリを作成した後、 ★ その中にイメージファイルディレクトリ(image)を除く全てのファイル、 ★ ディレクトリを原本と同一に配置する。その後、イメージファイルのディレクトリラインである ★ 'image' は cgi-bin ディレクトリでないところに配置する。 ★ この場合、'config.cgi' の修正項目で修正しなければならないのは ★ このイメージディレクトリのURLの再指定である。 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 次は 'config.cgi' ファイルの各修正項目についての詳細説明である。 [1] TECHNOTE-2000の区分因子(必ず任意の文字に変更すること) $scripimport = 'trqvx'; <説明>同じサーバーシステムの中に"TECHNOTE-2000"がいくつか設置されている状況では Aという"テクノート"をBという"テクノート"にすぐ移動する場合、 Javaスクリプトまたはクッキー(訪問者認識)で混線を起こすケースがあり これを防ぐための因子である。 任意のアルファベット8文字以下で変更する。(パスワードとは関係なし) テクノート運営中にこれを変更すると訪問者認識(名前、メール、訪問回数など)が初期化される。 [2] 自動作成されるBOARDの基本管理パスワード(必ず自分だけのパスワードに変更すること) $Automkpass = 'technote'; <説明>テクノートがBOARDを作成する方法は3通りある。 1. 総合管理(ROOT)のツールで作成する方法 2. 圧縮ファイルに基本添付された'FREE_BOARD'ディレクトリの名前を変更して アップロードしその後パーミッションを手動で指定して作成する方法 3. 存在しないBOARDをブラウザからURLで呼び出して自動作成する方法 (例、http://abcd.com/cgi-bin/technote/main.cgi?board=boardname) この修正項目は上の3つの方法の中の3番目の方法と関連がある。 この項目で指定した文字列が3番目の方法で自動作成したBOARDの基本管理パスワードになる。 一方1番目と2番目の方法で作成したBOARDの基本管理者パスワードは 総合管理者パスワードと同一に指定される。 '総合管理者パスワード'と'BOARD管理パスワード'を混同しないように。 総合管理者パスワードはテクノート内の全てのBOARDに対しての権限を持つ ROOT権限パスワードを言い、 BOARD管理パスワードとはそのBOARD内にのみ 権限を持つ管理パスワードをいう。 [3] イメージディレクトリのURL $img_dir_url = './image'; <説明>まず圧縮を解凍すると'technote/image'ディレクトリ(フォルダー)がある。 このディレクトリが位置しているURLを入力する。 現在の状態は相対パスとなっていて、cgi-binディレクトリではない原本と同一の 形態で設置した場合はこのままにしておく。 CGIファイルとその他のディレクトリをcgi-bin下位に設置して imageディレクトリを他の所に設置した場合は 必ずこの項目を修正しなければならない。(例、 http://abcd.com/~myhome/icon/image) [4] 総合管理-ROOTページ(index.cgi)呼び出すときの優先出力ページ $MastersEnter = '1' ; <説明>総合管理(ROOT)ページはindex.cgiを呼び出すと出力される。 上の変数に1を代入すると総合管理ページが表示され、 2を代入すると管理者認証ページが表示され、パスワードを入力すると総合管理ページに入る。 [5] cgiディレクトリの(technote)のURL $cgi_dir_url = '.'; <説明>'technote'ディレクトリのURLを代入する。 現在の状態ではmain.cgi基準相対パスに指定されている。 '.' になっている理由はmain.cgiが'technote'ディレクトリに位置しているため 現在のディレクトリが指定されている。 'technote'ディレクトリの全体URLを指定しても結果は同じである。 (例、http://abcd.net/cgi-bin/technote) もしイメージファイルを添付(アップロード)しても正常にイメージが出力されない場合 この項目を必ず上の例のように全体URLに指定する。 もしシステムでcgiwrapを使用できれば この項目でcgiwrapが含まれるURLを指定する。 cgi実行で作成されるファイルの所有者は'nobody'になるが cgiwrapを使用すると自分のIDで作成することができる。 cgiwrapが使用できる環境であればcgiwrapを使用する方がさらに安定的な作動をする。 cgiwrap設定はサーバー環境によって異なる。 例), 'http://abc.net/cgi-bin/cgiwrap/~myid/technote' 例), 'http://abc.net/cgi-sys/cgiwrap/~myid/technote' [6] BOARD保存ディレクトリの絶対パス $board_dir_path = './board'; <説明>'technote/board'ディレクトリの絶対パス(URLではない)である。 他の所にディレクトリを作成しそのディレクトリの絶対パスを指定すると 新しく作成されるBOARDはその指定先のディレクトリに作成される。 ディレクトリのパーミッションは777に指定する。 現在の状態は相対パスで指定した基本値である。 [7] 'config'ディレクトリの絶対パス $config_dir_path = './config'; <説明>'technote/config'ディレクトリの絶対パス(urlではない)。 他の所に'config'ディレクトリを置いてそのディレクトリの設定パスを指定するとよい。 現在の状態は絶対パスで指定した基本値である。 [8] 総合管理(ROOT)データ保存ファイルの絶対パス $login_file_path = "$config_dir_path/login/log.cgi"; <説明> 'logfile'ファイル(総合管理データ、パスワード保存ファイル)の絶対パス。 訪問者に遮断された別のパスにlogfileを置いて(ファイル名変更可能) そのファイルの絶対パスを指定すれば管理者パスワードが保安上より安全になる。 この共有ファイルのパーミッションは666に指定するようにする。 現在の状態は絶対パスで指定した基本値である。 [9] BOARDの'案内'ボタンを押した時に表示されるファイルのURL $infor_file_url = './infor.cgi'; <説明> 各BOARD内には'案内'ボタンがある。 このボタンをクリックしたとき表示されるページのURLを代入する。 このURLは後で各BOARDの'管理設定'でも指定することができる。 この修正項目ではただ基本値を指定するだけである。 [10] サーバーシステムでの'flock'使用 ' on/off ' $use_flock = 'off'; <説明>BOARDを掲示板またはゲストブックとして使う時、多くの人が同時に書込むと プログラム衝突のためデータがとんでしまうケースがある。 この項目はこれを防ぐためのPERL関数'flock'を使用するか否かを 'on' 'off'で指定する。 しかし、全てのシステムで'flock'が使用できるわけではない。 'flock'を使用する場合にエラーが発生することもある。 '管理設定'のバックアップ機能をうまく使用すれば、不安定な'flock'を使用する必要はない。 はっきりと分からなければ'off'にしておく。 現在は'off'状態になっている。 [11] 自動バックアップ機能使用時の自動バックアップ時間間隔 $backuptime = '3'; <説明> BOARDの'管理設定'項目で'自動バックアップ'指定すると 一定時間単位で登録データを別のファイルに自動コピーして保管される。 その自動バックアップが作動する時間単位を指定する。 [12] CGI'実行ファイル'のファイル名 $maincgorfile= 'main.cgi'; $madecg= 'index.cgi'; $readcg= 'read.cgi'; $helfcg= 'help.cgi'; $imgcg= 'print.cgi'; $inforcg = 'infor.cgi'; <説明>大部分のCGIファイルの拡張子は'cgi'である。 たまに'pl'拡張子を使用しないとcgiが作動しないサーバー環境もある。 この場合'実際のファイル'の拡張子も'pl'に変更し、上のファイル名も変更する。 またファイル名を任意に変更して使う場合も実際のファイル名を変更し 上の変数代入のファイル名も変更する。 [13] BOARDの補助機能ファイル名 $configfile= 'config.cgi'; $indexfile= 'index.cgi'; $backupfile= 'backup.cgi'; $countfile= 'counter.cgi'; $countfile2= 'counter2.cgi'; $inforfile= 'index.html'; $idlistfile= 'idlist.cgi'; $idbackup= 'idbackup.cgi'; $idcount= 'idcount.cgi'; $idcntbackup= 'idcntbackup.cgi'; $idtempfile= 'idtemp.cgi'; $tempfile= 'temp.cgi'; $pointfile= 'point.cgi'; $ptbackup= 'ptback.cgi'; $pointck= 'check.cgi'; $autobackup= 'autobackup.cgi'; $autoread= 'autoread.cgi'; $hitfile= 'hit.cgi'; $hitfile2= 'hit2.cgi'; $lockfile= 'filelock'; $dncount= 'dncount.cgi'; <説明>BOARDの補助機能を行なうファイルである. これらのファイルはBOARDで呼び出した時だけそれぞれ出力される。 韓国語バージョンでは拡張子がtxtになっていてこれらのファイルを ブラウザから直接呼び出すとファイルの内容がそのまま画面に表示される。 韓国語バージョンを使う場合、セキュリティが必要な資料であればこれらのファイルを 外部から遮断しなければならない。(日本語バージョンは基本設定値が'cgi'拡張子になっている。) いろんな方法があるが、一番簡単な方法はファイル名を全て変更することである。 また拡張子を全て'cgi'に変更すればブラウザで直接呼び出すときに エラーメッセージが出力されるため、根本的に無断アクセスを遮断することができる。 次後作成されるBOARDの補助ファイルらはここで指定したファイル名で作成される。 そのためこの指定は最初の設置時に設定しておかなければならない。 運営中に変更するとBOARD内の既存資料は出力されない。 [14] 掲示資料ファイルが作成される時のファイル拡張子 $filename_exp = 'cgi'; <説明>新しいデータがアップロードされるとそれに対する新しいファイルが作成される。 これは作成される新しいファイルの拡張子を指定する項目である。韓国語バージョンを 使用する場合は設定項目[13]のように拡張子を'cgi'に変更するとより安全である。 この項目も運営中に変更してはいけない。 [15] BOARDのデータ保存ディレクトリ名 $textdir= 'text'; $uploaddir= 'upfile'; $upimgdir= 'upimg'; <説明>BOARDの資料が保存されるディレクトリ名である。 ここで名前を変更すると次から作成されるディレクトリは変更された ディレクトリ名となる。やはり運営中に変更できない。 [16]1個のディレクトリに保存される掲示データのファイル数 $text_dir_maximum = '2000'; <説明>登録データが多くなり、1つのディレクトリ内に多くのファイルが作成され 限界数を超えるとファイルアクセスエラーが発生することがある。普通2000までは大丈夫である。 この項目はその限界数を先に指定することによって問題を自動的に解決する。 ここで指定した数字より多いファイルが作成されると自動的に新しいファイル保存ディレクトリが作成され、 それ以後に登録される資料はその新しいファイルに保存される。システムごとにその限界数が異なる。 もし使用中のデータが1500個以上となってから原因不明のエラーがよく発生するというような場合には この項目の数字を少なめに指定して既存登録データをいくつか削除してみる。 [17] 本文内容表示ページの'意見、問合せ'入力フィールド $AddText_title = '...ご意見、お問合せ'; $AddField_size = '40'; $AddField_max = '100'; <説明>掲示板として使用する時、登録された本文記事に対して他の訪問者が 追加メッセージを入力できるように指定することができる。 この指定はBOARDの'管理設定'で指定できる。 この機能を使用する時の入力フィールドの題名、幅、文字数を指定する。 [18] リンクされたファイルの拡張子区分(ダウンロード−保存されるファイルとして認識されるファイル拡張子) @linkfile_type = ('zip','tar','g','arj','rar','zoo','pak','gz','hwp','exe'); <説明>書込みフォームの入力項目中'ファイルリンク'にリンクさせたファイルが上に該当する 拡張子を持つ場合ダウンロード−保存されるファイルとして認識される。 ダウンロード−保存されるファイルの拡張子を追加して入れる。 一方、上に該当しないファイルの拡張子を持つファイルをリンクするとページに対する リンクとして認識し、新しいウィンドウが開き、リンクファイルが出力される。 [19] リンク、またはアップロードされたファイルがAUDIOを支援するファイルかを否か区分するファイル拡張子 @music_type = ('ram','mp3','mp2','mpa','m1v','m3u','rmm','rmi','ra','rm','aif','aifc','aiff', 'au','jpeg','avi','mov','qt','mpg','mpeg','mid','wav','snd','asf',); <説明>上に該当するファイルをアップロード、リンクするとAUDIOファイルとして認識し ダウンロード時にAuto Playerを出力する。 AUDIOファイルとして認識するファイルの拡張子を追加指定または削除する。 [20] '書込み'または'意見挿入'の入力内容で自動除去する単語 @del_x_word = ('fuck','penis','バカヤロウ','チクショウ','キサマ'); <説明>書込み、意見挿入の時、上で指定した単語が入っていれば自動除去される。 自動除去される単語を追加指定する。アルファベットは大/小文字を区分しない。 [21] BOARDのMain indexページの基本フォント、サイズ $fontface ='font size=2 face=MS ゴシック'; $Ft2 ='font size=2'; <説明>BOARD内で本文内容以外の 文字(メインテーブル)に適用される文字フォント、サイズを指定する。 この指定は各BOARDの'管理設定'で再指定できるようになっている。 ここでの指定はただ基本値を指定するだけである。 これをCSS STYLE形式で指定する場合は次のように指定する。 $fontface = " font style='font-family:MS ゴシック; font-size:9pt;' "; [22] アイコンイメージディレクトリのURL $Baseimg_url="$img_dir_url/baseicon"; $Faceimg_url="$img_dir_url/face"; $Backgrimg_url="$img_dir_url/background"; $Buttonimg_url="$img_dir_url/button"; $Subjectimg_url ="$img_dir_url/subjecticon"; $Userimg_url="$img_dir_url/userimage"; [23] デザインテーマ(スキン)ファイル保存ディレクトリの絶対パス $menu_dir_path = "$config_dir_path/menu"; <説明> "テクノート−2000"は各BOARDのデザイン・機能配置を多様に指定することができる。 この多様に指定できるBOARDの設定状態をメニュー形式で保存しておいて いつでもこのメニューを選択してBOARDに適用することができる。 このメニュー形式を"テーマ"と言う。このテーマファイルが保存されるディレクトリ絶対パスである。 [24] 基本言語指定ファイル名(今後サポート予定) $BoardLanguage2 = "Lang-"."$BoardLanguage".".pl"; require ("$config_dir_path/library/$BoardLanguage2"); [25] テクノートバージョン $technoteversion = '2000'; [26] クッキー保存有効期間 $expDate = 'Sunday, 31-Dec-00 23:59:59 GMT'; <説明>訪問者が記事を書込んだりIDを登録するとこの情報は BOARD内の登録ファイルに保存されると同時に訪問者のコンピュータにも保存される。 訪問者のコンピュータに保存された情報は次後の接続時に訪問者を認識する重要な要素である。 これを'クッキー'と言う。上で指定した期間が過ぎるとこの情報は訪問者のコンピュータから 自動削除される。ここでは保存情報の有効期間を指定する。 現在の状態は 2000年, 12月 31日日曜日 23:59:59 まで有効と指定してある。 [27] クッキー適用パス $expPath = '/'; <説明>上の[26]番項目で説明した'クッキー情報'はブラウザが呼び出す URLを基準に、コンピュータに保存された情報を載せて送るか否かを決定する。 この指定はURLの最終パス区分子を指定する。 現在の状態は基本設定としてホスト名によってクッキー情報伝達を区分する。 [28] 訪問者認識、挨拶言葉出力文 <説明>BOARDの'管理設定'で訪問者に挨拶文を出力するか否かを指定することができる。 この時に出力される挨拶言葉を訪問回数によって異なるように指定することもできる。 'elsif'文を追加して訪問回数別にもっと細分化することもできる。 [29] 新しく作成されるファイル、またはディレクトリのパーミッションを指定するルーチン テクノートが新しくBOARDを作成するとそのBOARDに該当する新しいディレクトリが作成され、 新しい記事が登録されるとその記事を保存する新しいファイルが作成される。 新しく作成されるファイルとディレクトリ(フォルダー)のパーミッションを指定する。 必要な場合パーミッションを変更するか他のオプションを追加して入れる。 sub permission { local($filepath,$rest) = @_; chmod(0777,"$filepath"); } END ![]() ![]() TECHNOTE 2000が前バージョン・スーパーボードのアップグレードであるように これからもどんどん使用者の方々が求める方向にアップグレードさせていくつもりです よりよいプログラム機能の充実のために 使用者の皆様のご意見を是非お寄せ下さい。 使ってみて.. 他の方にもお勧め下さるという方は 上記のバナーのうち1つをページに載せて頂ければ幸いです。 もっといいプログラムを製作する大きな力になります。 "テクノート2000"の製作に協力して下さった http://com4u.net http://nanuri.net http://leecom.net http://howmans.co.kr のサイトの方々に心から感謝します。 Copyright 2000- Japan Boreal Network all rights reserved. http://www.boreal-net.com info@boreal-net.com Copyright 1999- Korea |