ビギナーズ CGI

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

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

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

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

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

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



 
 




ここでは KENT-WEB さんが配布されている日計タイプのカウンター DayCounter を例にダウンロードから実際の設置までを説明しています。
カウンタはCGI 設置でも、かなり簡単な方ですので、初めて設置される方はまずカウンタからチャレンジしてみるのが良いと思います。





設置手順 1
今回の例で設置する KENT-WEB さんが配布されている掲示板 DayCounter をダウンロードします。
配布先のページに移動すると、下のようなアイコンがありますので、ここでは ZIP形式 と記載された方をクリックしてダウンロードします。
内容はどちらも同じで、圧縮されている形式が違うだけなので、ZIP形式が解凍できない方はLHA形式をダウンロードして下さい。
クリックすると、開くか保存するかを選択するダイアログが出ますので 【保存】を選択し、デスクトップなど分かりやすい場所を指定します。

【KENT-WEB DayCounter 配布ページ】
https://www.kent-web.com/count/daycount.html





ダウンロードしたファイルは複数のファイルをまとめて圧縮してありますので、これを解凍して元の状態に戻します。
ここでは Windows に付属している解凍ツールを使って行いますが、別にインストールされている場合はそちらで行って頂いても結構です。

1.
ダウンロードしたファイルを右クリックし、【全て展開(A)】 を押します。

2.
解凍先などを聞かれますが、デスクトップ上にダウンロードした場合は、デフォルトでデスクトップ上にフォルダを作って解凍しますので、次へを押して進め、最後に完了を押して下さい。



次にプログラムをお使いのホームページスペースなどの環境に合わせて修正します。
修正はテキストエディタ (Windowsに標準で付いているメモ帳など) を使って行い、テキストエディタであれば良いので他に使いやすいソフトがあればそれを使った方が修正しやすいと思います。


とりあえず、最低限動作する状態にしますので、細かな設定は後で行います。
設置になれていない場合は、必ず最低限必要な設定のみをして始めに動作確認を行い、その後修正を行う際も一度に多くの箇所を修正するのではなく、一部分修正したら確認、一部分修正したら確認 といった感じで作業をすると間違った箇所が特定しやすいです。
逆に多くの部分を一度に修正してからエラーなどが出てしまった場合、間違い部分が特定できずに、どうしようもなくなり初めからやり直す事になってしまう可能性がありますので十分ご注意下さい。


1.
この DayCounter で設定が必要なファイルは daycount.cgi のみです。
解凍したフォルダの中に上記ファイルがありますので、右クリックし【編集】を押してください。

2.
Perl のパスを修正する。
最上部に #!/usr/local/bin/perl と記載された部分がありますので、この部分をご自分のホームページスペースに記載の指示に合わせて修正します。
例えばPerl のパスが /usr/bin/perl と指示されていたら上記の行を #!/usr/bin/perl と修正します。


修正する際は必ず半角で入力して下さい。 (全角で入力するとエラーになります)
先頭についている #! は絶対に消さないで下さい。 (こちらも消すとエラーになります)

3.
ロックの設定と、カウンタの動作設定を行う。
以下のような部分を探し、$lockkey = 0; と書かれている部分を $lockkey = 2; として下さい。

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

総カウントや本/昨日 の設定項目も、上記と同じく数字部分を修正して下さい。

その後、以下の部分で同一IPの連続カウントをするかどうかの設定を行います。
これは好みですが、デフォルトの状態だと、同じ人がブラウザの更新ボタンを押したり、違うページから戻ってきた場合カウントされ、これを 1(チェックする)にした場合、同じIPの人が連続で更新してもカウントされません。

修正前
# IPアドレスの二重カウントチェック
# 0 : チェックしない
# 1 : チェックする
$ip_check = 0;
修正後
# IPアドレスの二重カウントチェック
# 0 : チェックしない
# 1 : チェックする
$ip_check = 1;


今回の説明は標準の指定ディレクトリなどに画像を置きますので、設定するべき項目はこれで終わりです。
CGI を置くディレクトリで画像の読み出しが出来ない場合、画像のディレクトリなどの修正が必要となりますが、それらの詳細についてはFAQでご説明させて頂きますので、そちらをご参照下さい。







以上で掲示板が動くだけの最低限の設定が完了しましたので、ホームページスペースにアップロードしてみます。
ページなどは通常アップロードすれば見えますが、CGI の場合はアクセス権限の設定や、この CGI の場合は画像を保存するディレクトリの作成なども必要となりますので順に説明していき、ここではFTPツール自体の操作方法については割合させて頂きます。


KENT-WEB さんで指示されているディレクトリ構成例は以下の通りです。
色が付いているものは、それ以降の説明の色と対応しています。

【ディレクトリ構成例】
public_html / index.html (トップページ等)
  |
  +-- daycount / daycount.cgi [755]
      |     daycount.dat  [666]
      |     gifcat.pl   [644]
      |
      +-- gif1 / 0.gif, 1.gif, ..... 9.gif
      |
      +-- gif1 / 0.gif, 1.gif, ..... 9.gif
      |
      +-- lock [777] /



これは アップロードするディレクトリに daycount というディレクトリを作成し、その中にアップロードする場合の例で、同じように行う場合は次のような手順で行い、特に表記が無い場合、転送モードはテキストモードで行います。

1.
FTP ツールで接続し、daycount というディレクトリを作成する


2.
作成した daycount というディレクトリの中に daycount.cgi 、 daycount.dat 、 gifcat.pl というファイルをアップロードする。


3.
上記でアップロードしたファイルのアクセス権限を、【ディレクトリ構成例】で記載されているものにする。
daycount.cgi は 755に、daycount.dat は 666 に、 gifcat.pl は 666にという感じで、アクセス権限を【ディレクトリ構成例】 のファイル名右側の数字に修正していきます。

4.
daycountディレクトリの中に gif1 というディレクトリ、gif2 というディレクトリ、 lock というディレクトリを作成します。
lockディレクトリのみ アクセス権を 777 に設定します。


5.
作成した gif1 と gif2 ディレクトリの中にそれぞれカウンタ用の画像ファイルをアップロードします。
カウンタ用の画像は 0という数字の画像が 0.gif 、 1という数字の画像が1.gif ・・・・ となっており、一般の素材配布サイトでカウンタ用画像をダウンロードしても良いですし、自分で作成しても結構です。

とりあえず動作させたい場合は、以下のカウンタ用画像をダウンロード利用して下さい。
お粗末な素材ですが、私の作ったものなので、自由に使って頂いて結構です。
ZIP形式で圧縮されていますので、解凍後それぞれのフォルダにアップロードして下さい。

カウンタ用画像のダウンロード


カウンタ用画像を作成する場合の注意

1. サイズを0〜9まで同じにする
2. 必ずGIF形式の画像にする
3. 数字に対応した名前を付ける








この CGI にはチェックモードが付いていますので、設定や設置に問題が無いかをチェックモードで確認してみましょう。
チェックモードはブラウザのアドレス欄で URLの末尾に ?mode=check を付けて CGI にアクセスします。
例えば https://aimix.jp/beginnerscgi/daycount/ にアップロードした場合は、 https://aimix.jp/beginnerscgi/daycount/daycount.cgi?mode=check とブラウザのアドレス欄に打ち込み、【Enter】 を押してください。
「404 ファイル又はディレクトリが見つかりません」 などと表示された場合は、URL指定が間違っていますので、再度確認しながら入力して下さい。


NG が出てしまった場合、それぞれ次の項目を確認して下さい。
※手順以外の項目を修正した場合は、これら以外の項目も確認する必要があります。

500のエラー → Perl のパスが正しく設定されているかを確認する
500のエラー → daycount.cgi のアクセス権が 755に設定されているかを確認する
500のエラー → gifcat.pl などが正しくアップロードされているか確認
500のエラー → テキストモードで転送するべきものをバイナリモードで転送していないか確認
500のエラー → 改行コードを LF で保存したものをテキストモードで転送してしまっていないか確認
ログファイルのパス → daycount.dat が正しくアップロードされているかを確認する
ログファイルのパーミッション → daycount.dat のアクセス権が 666になっているか確認する
画像ディレクトリのパス → gif1 gif2 ディレクトリが正しい位置に作成されているかを確認する

上記の他に、ホームページスペースによってはアクセス権の設定が指定されている場合もありますので、その場合はマニュアルやWEBサイトの指示に従って修正を行って下さい。


特にNGが表示されなかったら、実際にカウンタを表示してみます。
カウンタは表示させたいページにHTMLソースを挿入します。
例えば https://aimix.jp/beginnerscgi/daycount/ にアップロードした場合、

総合計のカウンタを表示したい位置に、下のソースをHTMLソースに挿入します。
<img src="https://aimix.jp/beginnerscgi/daycount/daycount.cgi?gif">

昨日のカウンタ数を表示させたい位置に、下のソースを挿入します。
<img src="https://aimix.jp/beginnerscgi/daycount/daycount.cgi?yes">

今日のカウンタ数を表示させたい位置に、下のソースを挿入します。
<img src="https://aimix.jp/beginnerscgi/daycount/daycount.cgi?today">



カウンタを設置したディレクトリをカウンタ表示させたいページと同じディレクトリに作成した場合、https:// からの絶対パスでなく、相対パスで記載しても結構です。
その場合下のようになります。

総合計のカウンタを表示したい位置に、下のソースをHTMLソースに挿入します。
<img src="./daycount/daycount.cgi?gif">

昨日のカウンタ数を表示させたい位置に、下のソースを挿入します。
<img src="./daycount/daycount.cgi?yes">

今日のカウンタ数を表示させたい位置に、下のソースを挿入します。
<img src="./daycount/daycount.cgi?today">


ホームページビルダーでページ作成を行っている場合、挿入したい位置をクリックした後、【HTMLソース】ボタンをおし、カーソルが表示されている位置に貼り付けを行えば挿入が出来ます。



上手く表示されない場合は、チェックモードでNGが出ていなかったか、ソースの貼り付けは正しく行われているかを確認して下さい。





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