ホームページ・ビルダーのページ
CGICGI設置 - wiki

サイト内検索

  1. TOP
  2.  > wiki
  3.  :: CGI

Theme Designed by EXTRAFFIC It is 2010-3-10 6:16 that you displayed this page



CGI設置 anchor.png

CGI(Common Gateway Interface)は、ブラウザからの要求に応じて、プログラムを起動するための仕組みです。
代表的なCGIスクリプトは、掲示板、アクセスカウンタ、メールフォーム、アンケートなどがあります。
これらを自分のホームページに設置したい場合は、CGIを導入する必要があります。

Page Top

HPのCGI設置許可の有無 anchor.png

まず、自分の借りているサーバーが、CGIを許可しているかどうかを調べます。
初めは、契約しているプロバイダのホームページ開設サービスを利用している方が多いと思います。
大抵サーバーにはFAQやヘルプがあり、そこにCGIの設置を許可しているかどうか書かれています。
許可していない場合は、CGIは設置出来ません。

次に、自分のサーバーのCGI設置場所を調べます。
設置場所は主に以下の2つに分かれます。

  • どこにでもCGIを置けるサーバー
  • 「cgi-bin」など特定の名前のディレクトリ(フォルダ)にしか置けないサーバー

CGIを設置する→プログラムファイル(cgiスクリプト)をサーバに置いて、サーバで実行させる事です。
大概、フリーのCGIスクリプトを自分でダウンロードして、自分のHP(サーバー)に転送すると思います。
まずは、サーバーのチェックです。サーバーのCGI設置有無は、以下の表でいくつか挙げます。
(詳しくは、各サーバーでご覧下さい)

サーバー名CGI 許可の有無CGI設置場所備考
isweb (ライト)cgi-binCGIに関して
Yahoo!ジオシティーズ×-サービス一覧
@nifty:@homepagecgi-bin自作CGI利用方法
OCN (Page ON)×-自作CGI利用不可(詳細
So-net (U-Page+)×-CGIライブラリのみ設置可
plalacgi??.plala.or.jpオプションサーバぷらら提供CGI
hi-hocgi-binCGIについて
WAKWAKcgi-bin自作CGIの設置
BIGLOBEどこでもOKサーバーの仕様について
interQ (OFFICE)user-cgi-bin
(上記以外も可)
CGIスクリプトの設置について
ASAHIネット×-提供CGI有、ユーザーCGI実験
さくらインターネット (ライト)どこでもOK機能一覧オンラインマニュアル
XREA (XREA Free)どこでもOK仕様

以上は一部のみ抜粋して掲載しました。他にも沢山のサーバーがあります。

Page Top

設置前準備 anchor.png

CGIを設置する上で準備するものを、以下で挙げてみます。大体、Vector でフリーのソフトを使用します。

Page Top

CGIスクリプトを選ぶ anchor.png

設置したいCGIスクリプトを決めます。(自分でCGIプログラムを書ける方は除きます)
Web検索すると、様々なフリーのCGIスクリプトが存在します。
掲示板、チャット、カウンター、投票、アンケート、メール、ゲームなど沢山あります。

手っ取り早くそれらをを探せるサイトが、CGI-Searchです。(もちろん他のサイトも沢山あります。)
いろいろなサイトのCGIから選びたい時は、このサイトが良いと思います。
上記サイトで見つけた有名なサイトは、

この2つのです。もちろん他にも沢山のサイトがあります。
当ページでは「Kent Web」様のCGIで説明していきます。

Page Top

CGIファイルのダウンロード anchor.png

使いたいCGIを探せたら、そのファイルをダウンロードします。
(ここでは、「Kent Web-Day Counter-EX」を例にします)
ダウンロード, CGI1.gif

1をクリックします。「dayx.zip」と書かれている所です。そうすると「ファイルのダウンロード」が出ます。
2をクリックし、ダウンロードします。「ファイルのダウンロード」の保存をクリック。「名前を付けて保存」と出ますので、ご自分のPC内(ローカル内)に保存して下さい。
保存すると、ZIPファイル, CGI-zip.gif こんな形のフォルダで保存されていると思います。

保存したら、次は解凍します。
ZIPファイル, CGI-zip.gif を右クリックして、「全て展開」をすると
解凍フォルダ, CGI-fo.gif こんなファイルの形になったと思います。これで解凍できました。
解凍したら、中身の確認です。
CGIファイルの中身, CGI-in.gif

上の画像の様に、8つのファイルがあります。(もし無い方はもう一度ダウンロードして下さい。)

Page Top

CGIファイルの設定 anchor.png

CGIを使うには、CGIプログラムを修正する必要があります。
この修正には、テキストエディタのソフトを使用します。

まず、ファイルを修正する前に 、解凍したフォルダをコピー(バックアップ)しておきます。
基本的な操作は、テキストエディタでCGIファイルを開き、そのファイルを修正という手順です。
テキストエディタは、TeraPad TeraPad, CGI-TeraPad.gifを使用し説明します。

大抵、この修正には、CGI作者さんからの指示がありますので、それに従って修正します。
Kent Web-Day Counter-EX では、3つのファイルを修正します。

dayx.cgi の修正

テキストエディタをCGIファイルと同じフォルダに持ってきます。
「dayx.cgi」を左クリックで押しながら、TeraPadに当てます。
当てたら、クリックしている指を離します。(ドラッグ & ドロップ)
この操作で、CGIファイルを開きます。
ドラッグ&ドロップ, CGI-dr.gifファイルを開く, perl.gif
「dayx.cgi-TeraPad」という新しいウィンドウが出てきたと思います。
ここから、実際に修正していきます。(CGIファイルに詳細が記述されています)

  • 1行目「#!/usr/local/bin/perl」の確認

    ↑の様なのを、「perlのパスの確認」と言います。
    このような注意書きは必ず、各サーバーに記載してあるので確認しましょう。
    前の「#!」は絶対に変えない事。変えてしまうとエラーになります。
    これが1行目の設定の確認になります。

  • 56行目、総カウンタ桁数の設定

    $digit1 = 6; と書かれている行があります。
    これは、総カウント数の桁数=6桁という事です。
    「6」を「3」にすれば、百の位までのカウンタという事になります。これは好みで変えて下さい。

  • 59行目、今日昨日のカウンタ桁数の設定

    $digit2 = 3; と書かれている行があります。
    これは、今日、昨日のカウント数の桁数=3桁という事です。

  • 80行目、ファイルロック機構

    $lockkey = 0; と書かれている行が見つかると思います。
    0を「1又は2」に変えます。
    ログ消滅防止策としてのファイルロック機構の設定です。
    サーバでsymlink関数が使用可能であれば「1」を、
    使用できない場合、又はよく分からない場合には「2」とします。

dayxmgr.cgi の設定

先程と同じ様に、TeraPad で dayxmgr.cgi を開いて下さい。

  • 1行目、perlのパスの確認

    #!/usr/local/bin/perlという所を先程と同じ様に確認して下さい。
    (dayx.cgi と同じにして下さい。)

  • 32行目、集計一覧からの戻り先の設定

    $home = "../index.html";と書かれていると思います。
    通常は、自分のHPを戻り先とします。例えば私のHPを戻り先とするなら
    $home = "http://homepage-builder.org/"; となります。

dayx.dat の設定
  • 変更前:15<>0<>0<>0<>Mon<><>

    本日の日にち<>昨日のカウント数<>本日のカウント数<>総カウント数<>本日の曜日 を意味します

  • 変更例:20<>0<>0<>3200<>Sat<><>

    例えば、本日が、20日(土曜日) で、総カウント数を3200カウントから始めたい場合には上記のように修正して下さい

Page Top

ディレクトリの作成 anchor.png

ディレクトリ(フォルダ)とは、ファイルを分類・整理するための階層構造(ツリー構造)を持つグループ名。
上のCGI設置の有無で、指定のフォルダ(cgi-bin など)にCGIを置かなければいけない場合は、この指定されたフォルダを作り、そこへCGIファイルを置きます。
これはファイルを転送する前にやっておきます。

 

ディレクトリ構成例Kent Web-Day Counter-EX の場合)

public_html / index.html ... (ここにカウンタを設置)
      |
    cgi-bin---  dayx /   dayx.cgi    [705]
                  |      dayxmgr.cgi [705]
                  |      gifcat.pl   [604]
                  |      dayx.dat    [606]
                  |      day.dat     [606]
                  |      mon.dat     [606]
                  |      blue.gif(月別集計結果のグラフ)
                  |      red.gif(月別集計結果のグラフ)
                  |
                  +-- gif1 / 0.gif .. 9.gif(カウンターの画像)
                  |
                  +-- gif2 / 0.gif .. 9.gif(カウンターの画像)
                  |
                  +-- lock / dayx.lock.txt [777]

「public_html」は、自分のHP(ホームページ)を表します。
これは、ホームページのトップの階層(.index.html など)とします。

「public_html」の下の「cgi-bin」は、自分のサーバーの中に「cgi-bin」フォルダを作ります。
(上で説明したように各サーバーによって変わります。)

「cgi-bin」右横に「dayx」があります。その点線の下には、「gif1」「gif2」「lock」があります。
「dayx」の右横には、dayx.cgi、dayxmgr.cgi などのファイルがあります。
これは、「cgi-bin」フォルダを開くと、「dayx」フォルダがあります。
「dayx」フォルダを開くと、「gif1」「gif2」「lock」の3つのフォルダがあり
さらに、dayx.cgi、dayxmgr.cgi などのファイルもあります。という事です。

「gif1」フォルダの中には、0.gif ~ 9.gif の画像ファイルがあります。
「gif2」フォルダの中には、0.gif ~ 9.gif の画像ファイルがあります。

同様に、「lock」の中には、dayx.lock.txtというテキストファイルがあります。
これが、ディレクトリの説明です。では実際に、このディレクトリを作ります。
ディレクトリは、まずは自分のPC内(ローカル内)で作ります。
では前に解凍した「dayx」というフォルダがあります。フォルダ, CGI-fo.gif
その横に新規作成で、「cgi-bin」フォルダを作って下さい。
(フォルダの名前を変える時は、半角で変えて下さい。全角だとエラーになります。)
「cgi-bin」フォルダに、「dayx」フォルダを入れて下さい。(ドラッグ&ドロップで)
そうすると、「cgi-bin」フォルダの中に「dayx」フォルダが入ります。

次に「dayx」フォルダ内に新規作成で、「gif1」「gif2」「lock」の3つのフォルダを作って下さい。
「gif1」フォルダには、0~9までのカウンタ用の画像を入れます。(総カウンタ用)
「gif2」フォルダにも、0~9までのカウンタ用の画像を入れます。(昨日今日のカウンタ用)
カウンタ用の画像の名前は、「1」のカウンタ画像なら、「1.gif」として下さい。
カウンタ画像は、自分で素材を見つけてくるか、KentWeb様のカウンタ画像例を使って下さい。

最後に、「lock」の中に新規作成で、「dayx.lock」という名前でテキストファイルを作って下さい。
これで、ディレクトリの作成は、完了です。

Page Top

サーバーに転送 anchor.png

実際に自分のサーバーへ転送(アップロード)します。
ここでは、ホームページ・ビルダーのFTPソフトで、説明していきます。
FFFTPをお使いの方は、KentWeb様の解説ページをご覧になって下さい。

まず、転送モードを確認します。
スクリプトとログファイル(dayx.cgi, dayxmgr.cgi, gifcat.pl, dayx.dat, day.dat, mon.dat) は「テキストモード」で転送。
画像ファイル (*.gif) は「バイナリモード」で転送します。

ホームページ・ビルダーのFTPの場合は、自動で判別して転送モードを切り替えてくれるので
先程作成した「cgi-bin」フォルダを丸ごと転送します。
FTP, CGI-ftp1.gif

上図の1→2をクリックすると、赤線のように、サーバー側に「cgi-bin」フォルダが作成されます。
次は、パーミッションの変更です。
KentWeb 様のサイトを参考に、以下の表通り、パーミッション値をその数字にします。
(パーミッション値は、一般サーバーを例にします)

ファイル名パーミッション値
dayx.cgi755 or 705
dayxmgr.cgi755 or 705
dayx.dat666 or 606
day.dat666 or 606
mon.dat666 or 606
gifcat.pl644 or 604
dayx.lock.txt777 or 707
*.gif-

これらのパーミッション値に変更する為に、サーバー側のファイルを指定します。
dayx.cgi を例に説明します。dayx.cgi のパーミッションは「705」です。
(サーバーによっては、755でも良いです)
dayx.cgi を右クリックし、アクセス権の変更をします。
(アクセス権=パーミッション値)
アクセス権の変更, CGI-ftp2.gif

アクセス権を「705」に変更します。

アクセス権705, CGI-ftp705.gif

残りのファイルを同様にパーミッション値を変更していきます。
パーミッションについて、詳しく知りたい方はKentWeb 様のページでご確認下さい。

全て、変更したら、実際にCGIが動作しているか確認します。
方法は、URLを入力して確認します。URLは
http://あなたのURL/cgi-bin/dayx/dayx.cgi?check
(cgi-bin を作っていない方は、cgi-binを抜いて下さい)
これで全てOKと表示されているなら、正常に動作しています。

次は実際にHP上に表示させます。HTMLタグで以下のように記述します。

  • <img src="/cgi-bin/dayx/dayx.cgi?gif">→総カウント
  • <img src="/cgi-bin/dayx/dayx.cgi?today">→今日のカウント
  • <img src="/cgi-bin/dayx/dayx.cgi?yes">→昨日のカウント

カウンタ設置は、これで全て終了です。

Page Top

エラーの対処法 anchor.png

CGIを正しく設置したつもりでも、エラーで動かない事があります。
エラー表示で、大まかなエラーの原因は分かります。(全て原因が分かるわけではありません。)
エラー表示の種類を挙げてみると

  • 404 File Not Found
  • ソースが表示される
  • Forbidden You don't have permission・・・
  • 500 Server Error


大体、この4つが表示されると思います。

  • 404 File Not Foundの場合
    こちらのページで指定したURLの間違いです。そのURLにはCGIがないですよ、という意味。
  • ソースが表示される
    自分のサーバーがCGI設置を許可していない場合に多いです。
  • Forbidden You don't have permission・・・
    パーミッションの設定が自分のサーバーの指定に合っていないと出ます。
    ディレクトリの作成で、パーミッションが「755」か「705」のどちらかにする、で
    もし、「755」にしていたら「705」に変更して試してみて下さい。
  • 500 Server Error
    これが一番厄介です。これは2つの原因が考えられます。

もし、どこを直して良いか分からない場合は、あらかじめコピーしてあるCGIファイルの必要な設定変更部分だけ変えてみて試してみる。
もし自分で解決出来ない場合は作者のサイトの質問掲示板などで尋ねる。


Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 896, today: 1, yesterday: 2
Last-modified: 2009-03-08 (Sun) 17:32:26 (JST) (366d) by hpb

ページ上部へ移動

ログイン

ユーザ名:

パスワード:



パスワード紛失

新規登録


メインメニュー



付箋機能 (wiki)

Fusen(Tag) menu 
Tag Editor
Color: BG:
Name:  Connect line ID:
 

Copyright (c) 2008 ビルダーのページ. All Rights Reserved.  Theme Designed by EXTRAFFIC