ビギナーズ CGI

 初歩から始める初心者向けPerl-CGI講座  

| トップページ | CGI設置 | CGI作成 | 作成事例 | 設置用語 | 作成用語 | 関数リファレンス | FAQ | お問合せ |
  
CGIの設置方法
フリーで配布されているCGIを設置する際の手順や注意事項などの説明です。

CGI作成の初歩
初めてCGIを作る方向けの手順を簡単な例で説明しています。

CGI作成ヒント集
こういう事をする時は、どのように行えばいいのか?など具体的な事例を紹介します。

CGIの設置に関する用語
CGIの作成に関する用語
CGIの設置や作成時に使われている用語や関連知識を掲載しています。

設置に関するFAQ
作成に関するFAQ
設置や作成をする際に起こりがちなトラブルの説明と、よくある質問とその回答を掲載しています。



 
 




ここでは KENT-WEB さんが配布されている掲示板 Joyful Note の設定項目の説明をしています。
初めのうちは、複数の項目を一気に修正せず、一項目修正したらアップして確認という手順にしましょう。
一度に複数の項目を修正してエラーが出てしまった場合、問題の箇所が分からなくなる可能性があります。




  Joyful Note で設定できる項目


・ 記事削除用のマスターパスワード
・ 掲示板ログ保護の為のロック設定
・ 掲示板からの戻り先URLの設定



・ タイトル文字の設定
・ タイトル画像の設定
・ 背景画像(壁紙)の設定
・ 各種色の設定
・ 記事の最大保持数の設定
・ 画像の表示許可設定
・ その他の設定項目一覧





投稿された記事を管理者権限で削除する為のマスターパスワードを設定する項目です。
初期設定では 0123 になっている為、簡単に推測出来る為、他の方に勝手に記事を削除されてしまう可能性があります。
joyful.cgi をテキストエディタで開き、以下の行を半角英数字で特殊記号などを含まない文字列を指定します。



修正箇所
# 管理者用マスタパスワード (英数字で8文字以内)
$pass = '0123';


修正例 (例えば abcdefg に変更する場合)
# 管理者用マスタパスワード (英数字で8文字以内)
$pass = 'abcdefg';



修正を行う場合、前後の ' など余分な文字列を消したり修正しないようにし、0123 の部分のみを修正します。
別の箇所を間違って修正してしまった場合、エラーとなりますのでご注意下さい。






掲示板でファイルロックが必要なのは、同時書込みの際に掲示板ログが破損してしまうのを防ぐ為です。
例えば、下のような流れで書込み処理は行われており、Aさんのみの流れであれば正常に記事の書込みが行われますが、Aさんがファイル読み込みから書出しまでの処理を行っている間に別の方 Bさんが書き込み処理を行おうとすると、したのような状態になります。
Aさんが書き込み処理を始め、完全に書込みを行うまでの間、ファイルは空もしくは不完全な状態になっており、この間にBさんが読み込みを行うと、空の状態のファイルを読み込んでしまい、Bさんは手順に従って追加処理を行いますので、空のファイルにBさんの書込みのみを追記するといった状態になる事があります。
このような事にならないように、Aさんが書き込みをおこなっている間、Bさんが書込みを行えないようにする 排他処理 が必要になり、この設定が ロック設定です。





修正箇所
# ファイルロック形式
# → 0=no 1=symlink関数 2=mkdir関数
$lockkey = 0;


修正例
# ファイルロック形式
# → 0=no 1=symlink関数 2=mkdir関数
$lockkey = 2;



修正を行う場合、前後の ' など余分な文字列を消したり修正しないよう数字の部分のみを修正し、別の箇所を間違って修正してしまった場合、エラーとなりますのでご注意下さい。
symlink と mkdir についての説明は省きますが、 mkdir は汎用性が高く大抵の環境で使えるので、よく分からない場合はこちらを選択しましょう。




掲示板中央左の 「トップへ戻る」 のリンクからご自分のホームページへ戻れるようにURLを指定します。



修正箇所
# 戻り先のURL (index.htmlなど)
$homepage = "../index.html";


修正例 (例えば https://aimix.jp/beginnerscgi/ に変更する場合)
# 戻り先のURL (index.htmlなど)
$homepage = "https://aimix.jp/beginnerscgi/";



修正を行う場合、前後の ' など余分な文字列を消したり修正しないようにし、別の箇所を間違って修正してしまった場合、エラーとなりますのでご注意下さい。
正しく戻れない場合はURLを再度ご確認下さい。



この項目は任意設定となっている項目で、タイトル画像を使わない場合上部に表示されるタイトル文字、その色、サイズを設定します。


修正箇所
# タイトル名
$title = "Joyful Note";

# タイトルの文字色
$t_color = "#804040";

# タイトルの文字サイズ
$t_size = '26px';



修正例
タイトルを 画像貼り付け掲示板 に
タイトルの文字色を blue に
文字サイズを 17 ピクセルに

# タイトル名
$title = "画像貼り付け掲示板";

# タイトルの文字色
$t_color = "blue";

# タイトルの文字サイズ
$t_size = '17px';



修正を行う場合、前後の ' など余分な文字列を消したり修正しないよう数字の部分のみを修正し、別の箇所を間違って修正してしまった場合、エラーとなりますのでご注意下さい。
文字色は # から始まるカラーコードで指定するか、 blue や red などの文字列で指定するか、どちらでも構いません。
カラーコードは 16進 カラーコード などをキーワードに検索すると多くのサイトで紹介されていますので、それらを参考にして下さい。



この項目も任意ですが、掲示板上部のタイトルが表示される位置にタイトル画像を使用する場合は設定を修正します。
この項目を修正しない場合、タイトルの位置にはタイトル文字で設定した文字列が表示されます。


修正箇所
# タイトルにGIF画像を使用する時 (https://から記述)
$t_img = "";
$t_w = 180; # GIF画像の幅 (ピクセル)
$t_h = 40; # 〃 高さ (ピクセル)



修正例
# タイトルにGIF画像を使用する時 (https://から記述)
$t_img = "https://aimix.jp/beginners/ca.gif";
$t_w = 72; # GIF画像の幅 (ピクセル)
$t_h = 18; # 〃 高さ (ピクセル)



修正を行う場合、前後の ' など余分な文字列を消したり修正しないよう数字の部分のみを修正し、別の箇所を間違って修正してしまった場合、エラーとなりますのでご注意下さい。

タイトル用の画像は https:// から記述となっていますが、プログラムと同じディレクトリにおく場合は、ファイル名のみでも正常に動作します。
また、さは画像ファイルを右クリックしてプロパティ概要から確認する事ができます。


掲示板の背景に壁紙を使用したい場合のみ設定します。


修正箇所
# 壁紙を指定する場合(https://から指定)
$bg = "";



修正例
# 壁紙を指定する場合(https://から指定)
$bg = "https://aimix.jp/beginners/ca.gif";



修正を行う場合、前後の ' など余分な文字列を消したり修正しないよう数字の部分のみを修正し、別の箇所を間違って修正してしまった場合、エラーとなりますのでご注意下さい。

タイトル用の画像は https:// から記述となっていますが、プログラムと同じディレクトリにおく場合は、ファイル名のみでも正常に動作します。


掲示板の色々な部分の色を設定する事ができます。
色のカラーコードは検索エンジンで カラーコード 16進 などをキーワードに検索してみて下さい。
複数の色設定項目を同時に紹介していますので、 joyful.cgi 内では離れた位置に設定項目があります。


修正箇所
# 背景色を指定
$bc = "#FEF5DA";

# 文字色を指定
$tx = "#000000";

# リンク色を指定
$lk = "#0000FF"; # 未訪問
$vl = "#800080"; # 訪問済
$al = "#FF0000"; # 訪問中

# 記事の [タイトル] 部の色
$sub_color = "#880000";

# 記事表示部の下地の色
$tbl_color = "#FFFFFF";

# 文字色の設定(半角スペースで区切る)
$colors = '#800000 #DF0000 #008040 #0000FF #C100C1 #FF80C0 #FF8040 #000080';



修正例
# 背景色を指定
$bc = "blue";

# 文字色を指定
$tx = "black";

# リンク色を指定
$lk = "blue"; # 未訪問
$vl = "green"; # 訪問済
$al = "red"; # 訪問中

# 記事の [タイトル] 部の色
$sub_color = "blue";

# 記事表示部の下地の色
$tbl_color = "white";

# 文字色の設定(半角スペースで区切る)
$colors = '#800000 #DF0000 #008040 #0000FF #C100C1 #FF80C0 #FF8040 #000080';



修正を行う場合、前後の ' など余分な文字列を消したり修正しないよう数字の部分のみを修正し、別の箇所を間違って修正してしまった場合、エラーとなりますのでご注意下さい。

文字色は # から始まるカラーコードで指定するか、 blue や red などの文字列で指定するか、どちらでも構いません。
カラーコードは 16進 カラーコード などをキーワードに検索すると多くのサイトで紹介されていますので、それらを参考にして下さい。


最大記事数は現行のログを何件まで保持するかの設定で、設定件数を超えた記事は削除又、過去ログ設定をしている場合は超えた記事から順に過去ログへと移動していきます。


修正箇所
# 最大記事数 (親記事+レス記事も含めた数)
$max = 50;



修正例
# 最大記事数 (親記事+レス記事も含めた数)
$max = 250;



修正を行う場合、前後の ' など余分な文字列を消したり修正しないよう数字の部分のみを修正し、別の箇所を間違って修正してしまった場合、エラーとなりますのでご注意下さい。

このタイプの掲示板は、画像を投稿する事ができるので、あまり多くするとホームページスペースを圧迫し容量不足となりますので、使える容量と比較しながら修正しましょう。


投稿された画像を、そのまま表示するか、管理者が許可してから表示するかを選択する項目です。
この項目を 1 に修正した場合、管理者が許可するまで COMMING SOON という画像が表示されます。
表示設定を行うには、管理者モードに入って許可する画像を選択します。


修正箇所
# 画像管理者チェック機能 (0=no 1=yes)
# → アップロード「画像」は管理者がチェックしないと表示されない機能です
# → チェックされるまで「画像」は「COMMING SOON」のアイコンが表示されます
$ImageCheck = 0;



修正例
# 画像管理者チェック機能 (0=no 1=yes)
# → アップロード「画像」は管理者がチェックしないと表示されない機能です
# → チェックされるまで「画像」は「COMMING SOON」のアイコンが表示されます
$ImageCheck = 1;



修正を行う場合、前後の ' など余分な文字列を消したり修正しないよう数字の部分のみを修正し、別の箇所を間違って修正してしまった場合、エラーとなりますのでご注意下さい。

特に理由がなければ、この項目はデフォルト設定で良いと思います。


Joyful Note で上記以外に設定できる項目を簡単にご説明します。
設定を修正する際は 緑色 で記載された部分を修正して下さい。

# 本文の文字サイズ
$b_size = '13px';
本文に表示される文字のサイズを指定します。
数字の部分のみを指定して下さい。
# 返信がつくと親記事をトップへ移動 (0=no 1=yes)
$topsort = 1;
投稿があった最新記事を上部に持ってくるかどうかの設定で、デフォルトでは1(有効)ですが、0にすると新たに投稿があっても親記事の位置は変わりません。
# 返信にも添付機能を許可する (0=no 1=yes)
$res_clip = 1;
親記事に対して返信をする場合にも添付を許可するかどうかの設定で、0にすると返信時に添付が出来なくなります。
# 画像と記事の位置
# 1 : 画像が左。記事は右から回り込む
# 2 : 画像が下。記事は画像の上に表示。
$imgpoint = 1;
画像と記事の表示位置設定で、デフォルトでは1(画像の右に記事)となっていますが、2にすると記事の下に画像が表示されます。
# ミニカウンタの設置
# → 0=no 1=テキスト 2=GIF画像
$counter = 1;

# ミニカウンタの桁数
$mini_fig = 6;

# テキストのとき:ミニカウンタの色
$cnt_color = "#BB0000";

# GIFカウンタのとき:画像までのディレクトリ
# → 最後は必ず / で閉じる
$mini_w = 8; # 画像の横サイズ
$mini_h = 12; # 画像の縦サイズ
カウンタに関する設定ですが、画像カウンタを使う場合、別途カウンタ用の画像を用意する必要があります。

テキストカウンタであれば、桁数、ミニカウンタの色の設定のみすれば動作します。

カウンタが正しく動作しない場合は、count.dat のアクセス権、GIFカウンタの場合は画像が正しくアップロードされているかなどを確認して下さい。
# 添付ファイルのアップロードに失敗したとき
# 0 : 添付ファイルは無視し、記事は受理する
# 1 : エラー表示して処理を中断する
$clip_err = 1;
許可しているファイル形式以外のファイルをアップロードしようとした時、記事のみ受理するか、エラーを表示するかの設定です。
デフォルトでは 1(エラー表示)ですが、0にすると記事のみ受理します。
# 記事 [タイトル] 部の長さ (全角文字換算)
$sub_len = 15;
記事のタイトル長さを指定する項目で、ここで指定した長さ以上の記事タイトルを付けた場合、それ以降が ・・・・ と省略されます。
# メールアドレスの入力必須 (0=no 1=yes)
$in_email = 0;
メールアドレスの項目を必須項目とするか、任意とするかを設定します。
デフォルトでは0(任意)ですが、1にすると投稿時入力が無い場合エラーを表示します。
# 同一IPアドレスからの連続投稿時間(秒数)
# → 連続投稿などの荒らし対策
# → 値を 0 にするとこの機能は無効になります
$wait = 120;
連続で記事を投稿できる間隔を設定します。
単位は秒で、デフォルトでは120(2分)以上間隔を空けないとエラーを表示し受理しません。
# 1ページ当たりの記事表示数 (親記事)
$p_log = 5;
1ページ当りにどれだけの記事を表示するかを設定します。
あまり多くの数値を入れると、掲示板の読み込みに時間がかかり、重くなってしまいます。
7〜8くらいが良いと思います。
# 投稿があるとメール通知する (sendmail必須)
# 0 : 通知しない
# 1 : 通知するが、自分の投稿記事はメールしない。
# 2 : 通知する。自分の投稿記事も通知する。
$mailing = 0;

# メールアドレス(メール通知する時)
$mailto = 'xxx@xxx.xxx';

# sendmailパス(メール通知する時)
$sendmail = '/usr/lib/sendmail';
掲示板に投稿があった時、メールで通知するかどうかの設定です。
この機能はお使いのホームページスペースで sendmail が利用できる場合に限ります。

ホームページスペースの仕様に合わせて修正して下さい。

投稿した際にエラーが出る場合、sendmail のパス、もしくはメールアドレスの表記が間違っている、sendmail が許可されていないなどの可能性があります。
# 他サイトから投稿排除時に指定 (https://から書く)
$base_url = "";
掲示板の書込みフォームを利用せず、別のフォームからこの掲示板に書込みを行う動作を許可するかどうかの設定で、未記入の場合は許可します。

設置した場所のURLを記載します。
# タグ広告挿入オプション
# → <!-- 上部 --> <!-- 下部 --> の代わりに「広告タグ」を挿入する。
# → 広告タグ以外に、MIDIタグ や LimeCounter等のタグにも使用可能です。
$banner1 = '<!-- 上部 -->'; # 掲示板上部に挿入
$banner2 = '<!-- 下部 -->'; # 掲示板下部に挿入
<!-- 上部 --> などと表記されている場所に任意のソースを入れ、掲示板に表示する事ができます。

例えばアフィリエイトなどの広告タグや、HTMLの知識がある方であれば好きなものを表示できます。
# アクセス制限(半角スペースで区切る)
# → 拒否するホスト名又はIPアドレスを記述(アスタリスク可)
# → 記述例 $deny = '*.anonymizer.com *.denyhost.xx.jp 211.154.120.*';
$deny = '';
アクセスを制限したいホストをここに記載すると、そのホストからアクセスした際に、アクセスを許可されていません。 と表示され、アクセス出来ません。

ホスト名は記事削除画面に入室すると、記事に対応したホスト名が表示されますので、それをコピーするのが良いと思います。

複数指定する場合は、ホストとホストの間を半角スペースで区切って指定します。
# アップロードを許可するファイル形式
# 0:no 1:yes
$gif = 1; # GIFファイル
$jpeg = 1; # JPEGファイル
$png = 1; # PNGファイル
$text = 1; # TEXTファイル
$lha = 0; # LHAファイル
$zip = 0; # ZIPファイル
$pdf = 1; # PDFファイル
$midi = 1; # MIDIファイル
$word = 0; # WORDファイル
$excel = 0; # EXCELファイル
$ppt = 0; # POWERPOINTファイル
$ram = 0; # RAMファイル
$rm = 0; # RMファイル
$mpeg = 0; # MPEGファイル
$mp3 = 0; # MP3ファイル
アップロードを許可するファイル形式を指定する項目で、1が許可、0にするとアップロードを拒否します。
# 投稿受理最大サイズ (bytes)
# → 例 : 102400 = 100KB
$cgi_lib'maxdata = 102400;
投稿記事の最大サイズを指定する項目で、添付ファイルも含めたサイズを指定します。
# 画像ファイルの最大表示の大きさ(単位:ピクセル)
# → これを超える画像は縮小表示します
$MaxW = 300; # 横幅
$MaxH = 150; # 縦幅
指定サイズ以上のサイズの画像を貼り付けた場合、縮小して表示します。
# 過去ログ生成 (0=no 1=yes)
$pastkey = 0;

# 過去ログ1ファイルの行数
# → この行数を超えると次ページを自動生成します
$log_line = 600;
最大記事保持数を超えた場合、過去ログとして残すかどうかの設定で、デフォルトではOFFになっています。

関連項目

・ CGI の設置
・ Joyful Note の設置


Beginner's CGI  - Copyright (C) 2003 aimix. All Rights Reserved -