ニフティユーザーの為のCGI設置初級講座 最終更新日 2001/04/23(Mon)

CGI設置でお困りの方へ、ニフティの自作CGIの代行設置もおまかせ下さい!
 

目 次
1.CGIって何でしょう?
2.必要な予備知識
3.CGIを設置する手順
3−1.CGIのダウンロード
3−2.圧縮ファイルの解凍
3−3.テキストエディタで設定変更
3−4.FTPソフトで転送する。
3−5.パーミッションを変更する。
4.設置したCGIを動かしてみる
5.エラーが出たら?
6.そして設置本番へ…

※本稿は、Windows95/98を中心とした解説になっています。
 作者(Season)はMacを持ってませんので、Macについては詳しい説明がありません。


1.CGIって何でしょう?
 CGIとは「Common Gateway Interface」の略です。
 簡単に言うと、PerlやC言語で作られたWeb上で動く一種のプログラムです。
 色々なホームページに設置されている掲示板やチャット等は殆どCGIで動いてます。
 CGIを使えば訪問者と双方向で会話できるインタラクティブなページが作成できます。
 @niftyでも、標準で使えるCGI(アクセスカウンタ、メールデコード、掲示板、
 チャット等)が準備されており、これらを使えば何の苦労も無く上記のサービスを利用
 出来ます。しかし自分の好みのデザインや機能が欲しいという場合はやはり自作のCGI
 を設置するのが一番です。ニフティでは自作CGIが使えるのですから、是非自分好みの
 CGIの設置に挑戦してみましょう。


2.必要な予備知識
 CGIの設置をする前に最低限、以下の予備知識はあった方が良いです。

(1)ホームページを作成したことがある、ホームページを持っている。
   これは当たり前ですね(笑)
   自分のホームページを持ってないとCGIは設置できません。

(2)ファイルとディレクトリ(又はフォルダ)の意味が分かる。
   Windows95/98なら「マイコンピュータ」や「エクスプローラー」でハードディスクの中を
   覗くと色々なファイルやディレクトリ(又はフォルダと呼ぶ)の一覧が見えますよね。
   ※そんなの見たことが無いという方はまずWindowsの操作方法を勉強をする事をお勧めします。
   簡単に言うと、例えばワード等のワープロソフトで作成したファイルを保存した場合、その
   ファイルがパソコンの何処に保存されているか分かる程度の知識は必要ということです。

(3)ファイルの拡張子の意味を知っている。
   CGIを設置するなら、ファイルの拡張子の意味を理解しておく必要があります。
   拡張子は、そのファイルの種類をあらわすためにつけるものです。
   たとえば、ワードで作成したファイルには、"hogehoge.doc" の様に「ファイル名.doc」
   という様になっています。この ".doc"の部分を拡張子といいます。
  <CGIで使用する主な拡張子名の種類>
   テキストファイルの場合 … *.txt       (例:readme.txt)
   HTMLファイルの場合 … *.htm 又は *.html (例:index.html)
   画像ファイルの場合   … *.gif 又は *.jpg等(例:title.gif)
   CGIファイルの場合  … *.cgi 又は *.pl  (例:yybbs.cgi)
   データファイルの場合  … *.dat 又は *.log (例:yybbs.log)

   Windows95/98ではファイルの拡張子は、初期設定では表示されないようになっています。
   しかしCGIの設置に挑戦するならファイルの拡張子を表示する様にしておきましょう。
   (1) マイコンピュータを開いて
「表示」→「オプション」を選択します。
   (2) オプションウィンドウの「表示」タブをクリックします。
   (3) 「登録されているファイルの拡張子は表示しない」という項目のチェックを外して「OK」をクリックします。


3.CGIを設置する手順
 CGIを設置するおおまかな手順は以下の通りです。
(1)設置したいCGIをダウンロードする。
(2)ダウンロードした圧縮ファイルを
解凍ソフトで復元する。
(3)テキスト
エディタで設定を変更する。
(4)
FTPソフトソフトでサーバーへアップロードする。
(5)パーミッション(アクセス権)を変更する。
(6)動かしてみる。
 CGIを設置するには、
エディタ、圧縮ファイルの解凍ソフトFTPソフトが必要です。
 パーミッション等の用語についてはこれから順番に説明していきます。
 上記のツール(エディタ、解凍ソフト、FTPソフト)は、それぞれのキーワードのリンク
 から説明と入手方法が参照出来ますので、まずは必要なツールを揃えて下さい。
 ※必要なツールが揃ったら、簡単な練習用CGIの設置に挑戦してみましょう。

 ■コンピュータ用語集
 ニフティが、初心者向けの基本用語集のページを解説しています。
 このページで分からない用語があれば、索引から調べてみるのも良いでしょう。
 初心者の為の基本用語集>
http://www.nifty.com/guide/yougo/index.htm


3−1.CGIをダウンロードする
 自作CGIといっても、自分で作る必要はありません。インターネットでは色々な方が
 自作したCGIをフリーで公開されているホームページが沢山あります。
 Yahooで検索するだけでも、沢山の
CGI関連のページがヒットします。
 CGIを実際に入手するには、各サイトのCGI配布ページに行って「ダウンロード」と
 記されたアイコンやリンク文字をクリックすると、以下の様な画面が表示されるはずです。
 
 ここでOKボタンを押してパソコンに保存する場所を指定してダウンロードします。

 それではまず、練習用の簡単なCGIを準備しましたのでこれを設置してみましょう。
 以下のリンクをクリックしてtest.lzhという圧縮ファイルをダウンロードして下さい。
 
練習用CGIのダウンロード


3−2.圧縮ファイルの解凍
 ダウンロードは無事にできましたか?
 次は、test.lzhを
解凍ソフトで元の形に復元します。
 lhasaを使用する場合は、test.lzhをlhasaのアイコンにドラッグ&ドロップするだけです。
 その他の
解凍ソフトを使用している場合は、それぞれのソフトのヘルプを参照して下さい。
 test.lzhを解凍すると、以下の2つのファイルが取り出せるはずです。
 test.cgi(練習用CGIファイル)
 jcode.pl(日本語ライブラリ)

 上記のtest.cgiが、練習用のCGIファイルです。
 jcode.plというのは、日本語を表示する為に必要なファイルです。


3−3.テキストエディタで設定変更
 通常、CGIは設置する前に設定を変更しなければならない箇所があります。
 例えば、CGIファイルの1行目に必ず登場する「
#!/usr/local/bin/perl」というのは、
 CGIのプログラム言語perlの場所を表す文字列ですが、プロパイダによっては指定が
 違う場合があります。ちなみにニフティでは「
#!/usr/local/bin/perl」のままでOKです。
 他にもタイトルや色など設定で任意に変更できる項目が用意されてる場合が多いのです。
 これらの設定をニフティ用に又は自分好みに変更する為にCGIファイルをテキスト
エディタ
 で開いて編集する必要があります。

 test.cgiは画面に以下の文字列を表示するだけの簡単なスクリプトです。


CGI設置に初挑戦!

Seasonさん、こんにちは。


 それでは、test.cgiをテキストエディタで開きましょう。
 以下の様に全部で21行のテキストファイルが見えるはずです。
 このまま何も変更しなくても動きますが、1箇所だけ変更してみましょう。
 7行目の「$name」の所に書かれている
赤い文字を自分の名前に変えて下さい。
 それ以外は一切変更しないで下さい。変更が終了したら上書き保存します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/local/bin/perl #←ニフティでは変更不用です。

# 文字コードライブラリ取込
require './jcode.pl';

# 名前の設定
$name = "
Season";

print "Content-type: text/html\n\n";
print "<html>\n<head>\n";
print "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=x-sjis\">\n";
print "<title>TEST</title></head>\n";
print "<body>";
print "<center>\n";
print "<hr width=75%><P><h3>\n";
print "CGI設置に初挑戦!<P>\n";
print "$nameさん、こんにちは。\n";
print "</h3><P><hr width=75%>\n";
print "</center>\n";
print "</body></html>\n";
exit;

 


3−4.FTPソフトで転送する。
 test.cgiの編集作業が終了したら、FTPで必要なファイルをサーバーに転送します。
 ここでは、FFFTPを例にソフトの設定から転送までの手順を説明します。
 その他の
FTPソフトの設定については以下のページを参考にして下さい。
 FTPの設定>
http://homepage.nifty.com/manual/002/05.htm

(1)FFFTPを起動して[接続(F)]→[ホスト設定(H)..]と操作します。
(2)ホスト一覧ウィンドゥの「新規ホスト(N)..」をクリックします。
(3)以下の様にホストの情報を入力して「OK」ボタンを押します。
 ■ホストの設定名   …『ニフティ』   (
任意の名称をつけてください
 ■ホスト名(アドレス) …『ftp?.nifty.com』
?部分は半角数字です。取得したFTPアカウントによって数字は異なります)
 ■ユーザー名     …『hpxxxxxx』   (自分のFTPアカウント、※@niftyのIDではありません)
 ■パスワード     …『********』   (自分のFTPパスワード ※@niftyのパスワードではありません)
 ■ホストの初期フォルダ…『./』


(4)メニューアイコンのホスト漢字コードは[Euc][Jis][無し]の中から「無し」を選択しておきます。
   ※test.cgiの様に漢字コードがShift-JISの場合は、ホスト漢字コードは「無し」を選択します。

(5)メニューアイコンの転送モードは[A][B][AB]の中から「AB」を選択しておきます。
   ※CGIファイルはアスキーモードで転送します。[AB]は転送モードをファイル名で判断します。

(6)設定が完了したら「ニフティ」を選択して「接続」ボタンを押します。
(5)サーバーに接続したら、サーバー側の「cgi-bin」というフォルダを開きます。
(6)パソコン側(左)のウィンドからサーバー側(右)へtest.cgiとjcode.plをドラッグ&ドロップします。
(7)ファイル転送が完了したら[接続(F)]→[切断(R)]と操作して接続を切ります。

※注意:CGIファイルは、テキストファイルです。
    FTPでは必ずアスキーモード(テキストモードとも呼ぶ)で転送して下さい。
    誤ってバイナリモード[B]で転送するとCGIは実行エラーになります。


3−5.パーミッションを変更する。
 パーミッションとは、簡単に言うとファイルに対するアクセス権のことです。
 パーミッションは、以下の様に3桁の数字で表記されます。
 644… ホームページのHTMLファイルや画像ファイル等に設定される。
 666… 掲示板のデータファイルの様に他人が読み書きするファイルに設定される。
 755… CGIファイルの様に、サーバーで実行されるファイルに設定される。
 777… 新規のファイルを生成するディレクトリに設定される。
 
※パーミッションの事をもう少し詳しく知りたい方はこちら。

 CGIファイルはプログラムとしてサーバー側で実行されるので、パーミッションを755にします。
 先ほどサーバーに転送したtest.cgiを実行する為にはパーミッションを755に設定する訳です。

 Windows95/98でFFFTPを使ったパーミッションの変更方法は次の通りです。
(1)FFFTPのホスト一覧から「ニフティ」を選択して「接続」ボタンを押します。
(2)サーバーに接続したら、サーバー側の「cgi-bin」というフォルダを開きます。
(3)cgi-binフォルダの中にあるtest.cgiを選択します。
(4)[コマンド(C)]→[属性の変更(R)]と操作します。
(5)属性の変更ウィンドの「現在の属性」欄を644から755に変更してOKボタンを押します。


(6)属性の変更が完了したら[接続(F)]→[切断(R)]と操作して接続を切ります。


4.設置したCGIを動かしてみる。
 今までの一連の作業で、test.cgiは下記の様に設定されているはずです。

 root/
  |
  +--cgi-bin/  ←URLは、http://hpcgi
.nifty.com/■■■■■■/
  |  
test.cgi パーミッション[755]
  |  
jcode.pl パーミッション[644]
  |
  +--homepage/ ←URLは、http://homepage
.nifty.com/■■■■■■/    index.html ←ホームページのトップページ

 cgi-bin/ディレクトリは、http://hpcgi.nifty.com/■■■■■■/というアドレス、
 homepage/ディレクトリは、http://homepage
.nifty.com/■■■■■■/という
 アドレスでブラウザから参照します。
■■■■■■の部分は、自分のニフティのアドレスに読み替えて下さい。

FTPソフトで見るとtest.cgiの位置(絶対パス)は/cgi-bin/test.cgiです。
このCGIを実行するには、ブラウザのアドレス欄に次の様に入力します。
http://hpcgi
.nifty.com/■■■■■■/test.cgi

画面に「CGI設置に初挑戦!」という文字と自分の名前が表示されたら練習は成功です。


5.エラーが出たら?

練習用のtest.cgiは、FTPソフトでアスキーモードで転送してパーミッションの変更さえ正しく出来れば
何も変更しなくてもニフティで間違い無く動きます。
それでもエラーメッセージが出るという場合は、以下の説明を参考にして下さい。

<エラーメッセージの種類と対処方法>
 ■
NotFound:ページがみつかりません
  これは、ブラウザから入力したアドレスに該当する
ページが存在しないというメッセージです。
  URLの入力ミスがないか?ファイル名を間違えてないか?転送先を間違えてないか?
  上記の点をもう一度良く確認して下さい。

 ■
Forbidden閲覧できません
  これは、ページは見つかったけれど
閲覧する権限が無いという意味です。
  良くある原因としては、CGIファイルのパーミッションの変更を忘れたケースです。
  CGIファイルのパーミッションを755に設定していないと上記のエラーが出ます。

 ■
Server Error:サーバエラー
  これは、homepage/ディレクトリにCGIファイルを置いて実行しようとした場合に出る様です。
  ニフティではCGIファイルはcgi-bin/以下のディレクトリに配置しないと実行できません。
  FTPソフトでtest.cgiがちゃんとcgi-bin/の中にあるか確認して下さい。

 ■
実行エラーCGIの実行時にエラーが発生しました。
  これは、CGIを実行したが
異常終了(エラー)したという意味です。
  このエラーには色々な原因がありますが、以下の理由が多い様です。
  ●CGIファイルをテキストファイル以外の形式(例えばHTMLエディタ)で編集した。
  ●CGIファイルをFTPのバイナリーモードで転送してしまった。
  ●jcode.pl等の外部参照ファイルの転送を忘れた、又は転送先を間違えている。
  ●CGIスクリプトに文法エラーがある。
   ・例えば、誤って1行目の「#!/usr/local/bin/perl」を変更してしまった。
   ・例えば「$name="Season";」を「$name="お名前"」と変更して行末の;を削ってしまった。
   ・例えば「$name="Season";」を「$name="お名前"; 」と変更して行末に全角スペースを付けた。

   ※エラーの理由が良く分からなければもう一度、test.cgiを何も変更せずにアスキーモードで
    転送の後パーミッションを755に変更してから動かして見て下さい。
    ちゃんと動けば(必ず動きます)CGIファイルの編集で何かミスをしたという事になります。


6.そして設置本番へ…
以上で、ニフティ用のCGI設置初級講座は終りです。
練習用