CGI・SSIが動作しない...そんな方のページです。





はじめようCGI
  1.CGIとは?
2.SSIとは?
3.プロバイダに確認しよう

設置前のサポート
  1.ダウンロード〜解凍
2.初期設定
3.Perlのパスって?
4.絶対・相対パスって?
5.16進数ってなに?
6.ファイルの転送
7.パーミッションの設定

設置後のサポート
  1.サーバエラーになる
2.エラーメッセージ一覧
3.書き込みが出来ない
4.SSIが動作しない
5.同じCGIを2つ設置したい

1 ダウンロード〜解凍

  • まずはGROOWEBのオリジナルCGI/SSIをゲットしましょう!
    ダウンロードしたファイルは書庫ファイルという圧縮された状態になっています。
    このままでは使えないので、まず解凍作業を行います。
    解凍作業には解凍ソフトというものを使います。
    解凍ソフトをお持ちで無い方は、こちらを参考にして下さい。

    さて、解凍作業が終わると、ファイルが出てきます。
    ここでは「CGIはじめの一歩」で使用したFirstCGIを例にとって見ていくとします。

    以下はFirstCGIの圧縮ファイルを解凍した場合。

    firstcgi.cgi
    count.log

    このようにふたつのファイルが出てきました!


2 初期設定

  • ファイルの設定をしよう!

    とりあえず手始めに、firstcgi.cgiをテキストエディタ(メモ帳でOK)で開きます。
    firstcgi.cgiは、FirstCGIのメインプログラムファイルです。

    以下は初期設定部分、冒頭の引用。


    # Hello World!!の文字色(16進数) $color = '#000000'; # 追加するメッセージ $msg = ''; # カウンタを表示する(yes='1' no='0') $countflag = '0'; # カウンタのログ保存ファイルまでのパス $countfile = './count.log';

    これを見て、なんだか難しそうと思った方もいると思います。
    ですが、実はとっても簡単です(^_^)

    ところでこのファイルはどういう構造になっているのかというと、
    黒字の部分は設定に関する説明です。(直前にシャープがあるのが特徴)
    で、青色の部分が肝心な設定項目です。

    設定するといっても、実際に書き換えを行う部分は、赤字の部分だけです。
    うっかりその他の部分も書き換えてしまわないよう、注意しましょう。
    また、 これはFirstCGIに限らず、他のスクリプトでも同じことなのです。

    ここまでで、おおまかな設定の仕方はわかっていただけたと思います。
    スクリプト内の説明を見ながら設定していけば問題はないでしょう。


  • Perlのパスに注意しよう!

    Perlには、基本として最も大切な設定項目があります。
    それは「Perlのパス」です。詳しくは次項で説明します。


3 Perlのパスって?

  • Perlの実行プログラムはどこにある?

    「Perlのパス」とは、CGIが呼び出された際にCGIファイルを処理する実行プログラム、
    いわゆるPerl処理系がどこにあるかを示すものです。
    「Perlのパス」は、具体的には以下のようにスクリプト中に記述します。
    #!/usr/local/bin/perl
    すでにスクリプトをダウンロードした方なら気づくと思いますが、
    この「Perlのパス」はスクリプト中に初めから書いてあります。
    読み方としては、上記の場合だと「ユーザ・ローカル・ビン・パール」 となります。

    Windowsユーザーにはこのパスは馴染みの無いものですが、
    Windows風に書くとするなら、C:\usr\local\bin\perlと同じ意味を持ってます。

    そして、この「Perlのパス」には以下の重要な注意事項があります。

    • 「Perlのパス」は、必ずスクリプト一行目に書かなくてはならない。
    • 「Perlのパス」が間違っているとCGI/SSIは絶対に動作しない。
    • 「Perlのパス」の前後、途中には空白を入れてはいけない。


  • どこにPerl処理系が置いてあるのか調べよう!

    自分の利用しているプロバイダがどこにPerl処理系を置いているか調べましょう。
    たいていの場合は、上記のパスであると考えられますが、
    違う場合も十分考えられますので、必ず調べるようにしてください。
    ホームページや契約書に書いてない場合は直接問い合わせましょう。


4 絶対・相対パスって?

  • そもそもパスとは?

    パスとはあるファイルまでの道順を記したもののことです。
    プログラムの中で言う「住所」みたいなものです 。これが上手く指定できていないと、
    プログラムはどこへ行けばいいのかわからずエラーとなってしまいます。

    パスには絶対パス相対パスの2通りの指定の仕方があります。
    詳しくは次のようになります。 焦らずゆっくり見ていってください。


  • 絶対パス

    絶対パスとは、すべての元となる地点からのファイルまでの道のりを示します。
    具体的な絶対パスの例は次のようになります。

    • Windowsの場合
      C:\Program File\Perl\hoge.pl
    • UNIXの場合
      /usr/local/bin/hoge.pl


  • 相対パス

    相対パスとは、現時点からのファイルまでの道のりを示します。
    具体的な相対パスの例は次のようになります。

    • 同じディレクトリの場合
      ./hoge.pl
    • ひとつ上のディレクトリの場合
      ../hoge.pl
    • 同じディレクトリの[cgifile]というディレクトリにある場合
      ./cgifile/hoge.pl 

  • 実践で使ってみよう!

    実践として、以下のようなディレクトリ構造があったとします。

    [www]┐
         ├ index.html
         |
         └ [cgi-bin] ┐
    ├ hoge.pl | └ [command]┐ └ hoge2.pl

    この場合、index.htmlからみたhoge.plまでの相対パスはどうなるのでしょうか?
    もうお分かりですね。答えは次のようになります。

    ./cgi-bin/hoge.pl
    それでは逆に、 hoge.plから見たindex.htmlはどうなるのでしょう。答えは次の通りです。
    ../index.html
    最後に、hoge2.plから見たindex.htmlはどうなるのでしょう。
    この場合は、上にディレクトリが2つ入るので、
    ../../index.html 
    となります。


5 16進数ってなに?

  • 16進数とはHTMLでもおなじみの色の指定の仕方です。

    主な記述の仕方は、次のようになります。
    各文字カラーは記述のままの16進数で指定してあります。
    #FF0000
    #00FF00
    #0000FF
    16進数は普通「#RRGGBB」という形になります。 R = Red G = Green B = Blue。
    この3つの各要素を、2桁の16進数で指定します。

    16進数には00〜FFまでの16個の要素が使えます。
    00に近いほど、表現力は弱まり、FFに近いほど強くなっていきます。
    この16進数では、 それぞれの組み合わせにより256段階の色表現が可能です。


6 ファイルの転送

  • FTPソフトを使おう!

    FTPとはFile Transfer Protocol(ファイル・トランスファー・プロトコル)の略です。
    ホームページを制作したことのある方なら、馴染みのあるものだと思います。

    FTPソフトを使うことで、HTMLやCGIファイルをサーバ側に簡単にアップロード出来ます。
    FTPソフトをまだお持ちで無い方はこちらを参考にしてください。


  • ファイル転送の際に注意すること。

    HTMLやGIF/JPEGファイルと違い、CGIの面倒な部分として、
    サーバ側が、CGIを配置する場所などを制限している場合があります。
    プロバイダによって考えられる制限を次にあげてみました。

    • CGIのファイル名は「.cgi」でなければならない。(.plは使えない)
    • 「cgi-bin」というディレクトリでしかCGIが動かない。
    • SSIは拡張子が「.shtml」でなければ動作しない。
    • CGIは使えるがSSIが使えない。


7 パーミッションの設定

  • UNIXなどでは、複数ユーザでの利用を前提としているため、
    「他の人」に自分のファイルやディレクトリを見られたり、
    あるいは書き換えられたりすることを防ぐために、アクセス権という概念があります。
    アクセス権は、普通パーミッション(属性ともいう)と呼ばれています。

    アクセス権の設定は、ユーザ・グループ・その他の3つを対象に設定します。
    それぞれの意味合いは次の通りです。

    • ユーザ(u)
      ファイルやディレクトリの所有者を示します。

    • グループ(g)
      ファイルやディレクトリの所有者と同じグループに属するユーザ。

    • その他(o)
      上記以外のユーザ。



  • それぞれのユーザになんの権限をあたえるか設定する。

    権限を与える対象は、上記の3つのユーザであることが解りました。
    では実際にはどのような権限をあたえるのでしょうか?それは次の3つです。

    • r(Read) 読む
    • w(Write) 書く
    • x(eXecute) 実行する


  • 実際にパーミッションはどのように設定するのか?

    パーミッション(アクセス権)はFTPソフトを使うことで簡単に設定できます。
    FTPでの操作の仕方はソフトのマニュアルを見てもらうとして、
    実際のパーミッションは次のように示されます。
    -rwxr-xr-x 
    紺色の部分のrwxは、所有者のそれぞれの権限を示す部分です。
    この場合は、r:読む w:書く x:実行するの権限を与えていることになります。

    紫色の部分のr-xは、同じグループに属するユーザのそれぞれの権限を示す部分です。
    この場合は、r:読む x:実行するの権限を与えていることになります。

    緑色の部分は、その他のユーザのそれぞれの権限を示す部分です。
    この場合は、 r:読む x:実行するの権限を与えていることになります。