total yesterday today  Since 2000.12.19  


CGIの設置方法(体験より)

一言感想を「情報交換室」書いて頂くと嬉しいです
リンク先などから来た方でフレームが表示されていない方は>こちら

2000.12.19
  誰しもHPを作成してしばらくすると、掲示板やゲストブック・アクセス解析・アクセスランキング・
  カウンター等を、設置したくなります。私も掲示板を設置して、カウンターやアクセス解析・
  アクセスランキングのテストをしました。

  設置しても動作しなかったり、機能が全て正常に動作しない等の、トラブルに出会い試行錯誤ました。
  「トラブルNote」の項目とダブル所が有りますが、ここにまとめてみました。
  全てが正しいかどうかは不明ですが、私の経験した事を記述します。参考になれば幸いです。

  私の場合は幸いにして、契約プロバイダーが「CGI」に対応していたので、フリーソフトを
  色々試す事が出来ました。CGIに対応していないロバイダーの場合は、諦めるしかないようです。
  自分の契約プロバイダーに確認して下さい。
  使える場合でも,プロバイダで用意したプログラム以外は使用不可の所もあるようです。
  (無料掲示板・無料アクセスランキング等は、サービスHPが対応しているので、
  HPジャンプすればOKです。)

 *もし読んで違っているところが、有ったら指摘して下さい。あくまでも私個人の体験を記述したものです。

プロバイダーに確認すると書きましたが、大抵はCGI設置の説明が契約プロバイダーHPに有りますので
  読んで下さい。


     ***********************************************************************************
     CGI(Commom Gateway Interface)
     HTMLではできなかったWeb上でのインタラクティブ性を実現しWebの可能性を様々に
     活用するための機能

     ***********************************************************************************
     参考書には上記のように記述してあります。

CGIファイルの設置場所
    アップするサーバーの、どこにCGIファイルを置けば良いのかプロバイダに確認して下さい。
    プロバイダによっては、cgi-bin と云う、ディレクトリの下に置かなくてはダメな所や、
    どこ置いても良いと云う所も有ります。
    プロバイダーが、CGI専用のサーバーを別に設置して、そこに置く場合も有るようです。

ダウンロードした設定説明&CGIスクリプトを、良くながめて下さい。
    CGIファイルの初期設定をする場所を探して、変更箇所を環境に合わせて設定します。
    設定の説明を良く読んで、変更箇所を探して下さい。設定する場合の注意点を、下記に記述します。

プロバイダーの環境に合わせてPerlのパスを指定する
    CGIを使用する時に、一番最初に出てきます。
    大抵はCGIスクリプトに初めに記述されています。
    #!/usr/local/bin/perl
    普通は変更しなくても、上記の記述でOKのようですが、ブロバイダーに確認して下さい。

日本語コード変換ライブラリーの設定( jcode.pl )
    jcode.pl は、歌代 和正氏が作成された物が、通常使用されているようです。
    (私は他にあるかどうかは知りません)
    (通常はダウンロードしたファイルの中に含まれていると思います)
    このjcode.plの設定で何度か失敗しました。
    このファイルはCGIを複数使用した場合に、各CGIで共通で使用出来ます。
    (CGIが一つの時は指示に従えば問題ない)

    例を書いて説明します。  [  ] はディレクトリです。

     [cgi-bin]--------------[lib]
             |         |
             |        jcode.pl
             |        gifcat.pl
             |
             |----------[bbs]
             |         |
             |        freebbs.cgi
             |        freebbs.dat
             |        freebbs.log
             |
            count.cgi
            count.dat


    スクリプトをながめていると下記のように設定や変更する所が有ると思います。

     #------各種設定------
     $jcode = './jcode.pl';   # jcode.pl のある場所(パーミッションは 755 )

     #------初期設定------
     require './jcode.pl';    #環境に合わせて変更してください

    ここで count.cgifreebbs.cgi では、jcode.pl のパスが違います。
    count.cgiで使用する   jcode.pl のパス設定は './lib/jcode.pl' と記述します。
    freebbs.cgiで使用する jcode.pl のパス設定は '../lib/jcode.pl' と記述します。
    設置場所や環境に合わせて、良く確認して下さい。これで何度か痛い目に遭いました。(;^_^A アセアセ・・・

GIFファイル連結ライブラリーの設定( gifcat.pl )
    gifcat.pl  は、とほほさんが作成された物です。カウンターなどの数字が、
    GIFファイルの場合にGIF画像を    表示するためのライブラリーです。
    (とほほさんのHPは、私のリンクの中に有ります。CGIを設置する方は一読を勧めます)
    設定はjcode.plと同様に、パスに注意して設定して下さい。

    count.cgiで使用する   gifcat.pl のパス設定は './lib/gifcat.pl' と記述します。
    freebbs.cgiで使用する gifcat.pl のパス設定は '../lib/gifcat.pl' と記述します。

パスについて!!
    実際に記述する時は英数半角文字で記述しますか、文字が小さいため大文字で書きます。
    
      ./     ・・・・・・は現在のディレクトリです
      ../    ・・・・・・は現在のディレクトリの一つ上のディレクトリです
      ./lib/  ・・・・・・はディレクトリの指定をします。


CGIファイルの変更
    Windowsであればメモ帳を開いて修正すればOKです。
    テキストエディターは 「EUCコードを扱える事か必要です」 と、参考書に書いて有ったので、
    私はフリーソフトのテキストエディターを、使用させて頂いています。(文字列の検索に便利です)

     ・CGIスクリプト作成エディタ PerlEditor
     『川千原千』さん :http://village.infoweb.ne.jp/~ckawa/index.htm から、頂いてきました。

ファイルのアップロード
    FTPソフトでアップロードします。
    私の使用している、FTPソフトは自動判別してくれるので、気にした事は無いのですが、
    ***.gif ファイルはバイナリーモード
    ***.pl ***.cgi ***.log ファイルは、アスキーモード
    で、アップロードするように指定されています。(これで結構トラブル人がいるようです)

パーミッションの意味
    CGIプログラムは、HTMLファイルと違って読むだけじゃなく、実行しなければなりません。
    そのため、実行をするファイルで有る事をサーバーに認識させる為に、
    パーミッションを設定するわけです。
    CGIファイルの中にファイルごとのパーミッション設定の説明が有るので、
    指示に従って設定して下さい。
    下記は一般的に云われている事を記します。

    ・パーミッション644
     HTMLファイルはパーミッションが644になっています。644は読み出し専用ファイルという意味です。

    ・パーミッション755
     CGIファイルは実行ファイルですから。外からの指示で実行仕事をするので,
     パーミッションを755にします。     755は実行ファイルという意味です。

    ・パーミッション666
     CGIファイルから,書き込まれるファイルのパーミッションです。掲示板の書き込み記事や、
     カウンターの数字などを記録するファイルなどです。
     666という数字は書き換えが可能なファイルという意味です。

パーミッションの設定方法
   サーバーにアップロードしてから、各ディレクトリーや、ファイルのパーミッションを変更して下さい。
   ご自分で使用しているFTPソフトのマニュアルを読んで、パーミッションの変更をして下さい。
   パーミッションの変更項目が有ると思います。

   ちなみに、私の使用しているFTPソフトは「NextFTP」(シェアウエアー)です。
   URLは http://www.toxsoft.com/index.html です

CGIの実行
    掲示板やゲストブック等の実行と、アクセスカウンターやアクセスランキング等の実行では、
    書き込み方違います。
    掲示板やゲストブックはCGIを実行させて、書き込みをした時に、ログに書き込み保存しますが、
    アクセスカウンターやアクセスランキング等は、設置したページにアクセスが有った時に、
    ログに書き込みます。

    掲示板やゲストブック等の実行する例です。
               http://www.*****.***.jp/~*****/cgi-bin/aaaaa.cgi


    アクセスカウンターやアクセスランキング等の実行には、下記の3種類を体験しました。
    (まだ、有ると思います?)
    SSIを使用してCGIを実行してログを取る例です
              <!--#exec cmd="./cgi-bin/*******/*******.pl"-->
    ***********************************************************************************
     SSI(Server Side Iincludes)
     CGIをむずかしいスクリプトを書かずに簡単にやってしまうWebサーバー固有の機能
    ***********************************************************************************
     参考書には上記のように記述してあります。


    Javaを使用してCGIを実行してログを取る例です。
      カウントをしたいページに、スクリプトを書き込みます。
      設置マニュアルに従って設定して下さい。
       <SCRIPT language="JavaScript">
       <!--
         document.write("<img src=\"http://***.***.ne.jp/~*****/******/****.cgi?");
         document.write(parent.document.referrer+"\" border=0 width=1 height=1>");
       // -->
       </SCRIPT>


    .htaccessを使用してCGIを実行してログを取る例です。
    .htaccessと云うファイルをindex.htmlと同じ場所に作成します。
     設置マニュアルに従って設定して下さい。
     アクセスが有った時に.htaccessが一番初めに読まれ、
     次に.htaccessに書かれている所を読むようです。
    .htaccessの中身の例ですが、私は詳しくないので、不明点は各自調べて下さい。m(_ _)m スイマセン
                   DirectoryIndex *****.cgi index.html
                   AddType application/x-httpd-cgi .cgi      

以上が、私自信がCGIを実際に設置して、経験した事です。何かあったら「情報交換室」に書いて下さい。
  全ての質問にお答え出来るか解りませんが、知りうる事はお答えします。


  「情報交換室」にあった質問です。

    Java script の置き方は出来たのですが、NOSCRIPTてなんですか?
    Java scriptの後に NOSCRIPTから/NOSCRIPT で記述してありますが?
    そてから、HEAD から /HEAD に書いて保存すると、
    NOSCRIPTから/NOSCRIPTまで書いた物が無くなってしまいます。
    ソフトはホームページビルダーを使ってます。

   ・NOSCRIPTは、SCRIPTタグに対応していないブラウザへのメッセージを記述する時に使用します。
    スクリプトに対応するブラウザはNOSCRIPT〜/NOSCRIPTの間を無視し、
    未対応ブラウザはNOSCRIPT〜/NOSCRIPTの間の文書を表示します。

    >NOSCRIPTから/NOSCRIPTまで書いた物が無くなってしまいます。
    無くなっていませんよ。これは、私も経験しました。HEAD〜/HEADの間に記述すると、
    ホームページビルダーが文法違反として、
    BODY〜/BODYの間に移動してしまいます。HTMLをよく見て下さい。