知識無用のステップアップ実践講座

著者：KENT
1959 年生まれ。自作 CGI スクリプトの配布をメインとするインタラクティブページ制
作の支援サイト「KENT WEB」管理者。静
www.kent-web.com
岡県静岡市在住。
illustration : Ebisu Yoshikazu

第1回 CGIの設置方法をマスターする
今月からスタートする「CGI 道場」は、初心者でも CGI が楽しく習得できる連載記事である。第 1 回の課題は、CGI の「使い方＝設置方法」をマスターすることだ。これは次回以降の連載でも必要になる「基本中の基本」なので、ていねいに解説したい。

1 CGIに挑戦しよう

目指せ黒帯、基礎から学べばマスターできる)プログラムに何らかの処理をさせ、その結果を返すという仕組みになっている。HTML のように決まった結果だけを表示させるのではなく、いろいろなバリエーションのある表示が可能になるわけだ。

らかの処理をさせて、その結果を返すというCGIとは何か仕組みになっている。

CGIならここまでできる

CGIとは「Common Gateway Interface」

たとえば、ブラウザーが通常のHTML を表の略である。通常のウェブページは、あらか示する場合は、図 1 のような流れになる。これ

CGI の魅力は何だろうか。それは「ブラウじめ用意されたHTMLを表示させるだけだが、に対して、CGIでは図2 のような流れになる。

ザーを選ばない」「初心者でも比較的扱いやCGI はサーバー上にあるCGI プログラムに何

このように、CGIはサーバーに置かれたCGIすく、設置や改造が簡単」「自由度が高い」などが重要な要素として考えられる。では、

図1

CGIができることを具体的に紹介しよう。

HTML処理の流れ

HTMLファイルを要求

サーバーは要求されたHTMLをブラウザーへWW
Wサーバー
ブラウザー

HT

ML

ブラウザーは受け取ったHTMLを表示する

WW
Wサーバー
ブラウザー

HTML

WW
Wサーバー

ブラウザー

HT

ML

掲示板やチャットのような定番プログラムのほか、検索エンジンやアンケート集計、アクセス制限ページも、CGI をうまく利用することで設置できる。ホームページの作りに幅ができ、他のページとは違ったクールなペー

HTTP://www.abc.def/file.html

ジ作成できるのだ。
今回は「占い」CGI をサンプルに、「CGI

図2

CGI処理の流れ

CGIプログラムへデータを送信

サーバーは送られたデータをCGIで実行し結果を返す

WW
Wサーバー
ブラウザー

プロ CGIグラム

http://www.abc.def/bbs.cgi

228 INTERNET magazine 2001/7

ブラウザー

結果

ブラウザーは受け取った結果を表示する

WW
Wサーバー

結
結果
果ブラウザー

プロ CGIグラム
CGIプログラムを実行の設置方法」を解説しよう。

設置に必要なソフトウェア

WWWサーバープロ CGI
グラム

まず、CGI の設置に必要なソフトウェアを解説しよう。
「テキストエディター」と「FTPクライアント」というソフトが必要だ。

インターネットマガジン／株式会社インプレスR&D

FTP（エフ・ティー・ピー／ File Transfer Protocol）クライアント：ファイル転送用プロトコルの「FTPプロトコル」を使い、ファイルのダウンロードやアップロードをするためのアプリケーション。
©1994-2007 Impress R&D

「テキストエディター」は簡易ワープロソフ

誌付録CD-ROMに入っている。

いプロバイダーも多い。また単に「CGI許可」

トのようなもので、この連載ではCGI の編集に使う。ウィンドウズ付属の「メモ帳」などでも問題ないが、あまり使いやすいとは言えない。今月の作業は簡単なのでメモ帳を使っとしていても、自作CGIの使用を禁止してい秀丸エディタ Å Win→ HIDEMARU+CD-ROM FFFTP Å Win→ FFFTP
NextFTP Å Win→ NEXTFTPFetch-J Å Mac→ Fetch-J

ることもある。
こういったプロバイダーでも心配は無用だ。
自作CGIが設置できるフリー（無料）のサーたが、本誌付録CD-ROM にも収録されていバーにホームページを置けばCGI のパワーをる「秀丸エディタ」などの高機能なテキストエディター使うことをおすすめする。
一方の「FTPクライアント」は、CGIプロ満喫できる。ただし、CGI 利用のためだけに加入プロバイダーをチェックしよう

グラムをプロバイダーのサーバー（ホームペー

CGI を使うときには、自分が加入しているジ領域）へ転送するときと、後述する「パープロバイダーが「ユーザーが自作したCGI のミッション」を設定するときに使う。

使用を許可しているか」を確認しよう。

フリープロバイダーを使うことは、利用規定で禁止されていることが多いので注意したい。
下にCGI が使えるフリーサーバーをリストアップしたので参考にしてほしい。
また、これからの解説内容は、個人のホー

おすすめのFTP クライアントは、ウィンドCGI を使うと、サーバーに負荷がかかったムページで使うCGIの「事実上標準」である

ウズでは「FFFTP」「NextFTP」、マッキン

り、セキュリティー面で問題になったりする「Perl」というプログラミング言語で書かれたトッシュでは「Fetch-J」。これらはすべて本ことがあるので、CGI の使用を許可していな

CGIスクリプトの設置に関するものだ。

2 「Perlのパス」を指定する )まず、おのれを知り、相手を知るべしになってしまう。
なお、このパスは「#!/usr/local/bin/perl」か「#!/usr/bin/perl」のことが多い。
今回の作業は、CD-ROM に収録されていCGI を使うためには、CGI ファイルの先頭ものだが、このパスはプロバイダーごとに異なるテキストファイルの1 行を少々書き換える

行で「Perl のパス」を指定しなければならなるため、必ずプロバイダーが用意するCGI のだけだ（ 画面 2-2 ）。今回はプロバイダーはい。
「Perlのパス」とは、プロバイダーのサー設置手順ページを確認しよう。これを間違え「@nifty」、テキストエディターは「メモ帳」

バーにあるPerl のソフトウェアの場所を指す

ると、CGI プログラムを呼び出せずにエラーを前提に解説しよう。

CGIが使えるフリーサーバー
プロバイダー名トウトク

tok2.com

freewebwww.freeweb.ne.jp

Cyber Space Community www.csc.ne.jp
ミルトクラブwww.millto.net

TkCtiywww.tkcity.com

2-1 ： 「メモ帳」を起動し、「ファイル」→「開く」を選択。
「ファイルの種類」を「すべてのファイル（*.*）
」にする。
「CD-ROM Å」をドライブに入 れ、メモ帳 を起 動 する。メニューバーより「ファイル→開く」を選択し、「Magnavi→ Ip0107→ Cgi」から「uranai.cgi」を開く。

おもなプロバイダーのパス
プロバイダー名

パス@nifty#!/usr/local/bin/perl

BIGLOBE#/usr/local/bin/perl5 ※1

Panasonic Hi-HO#!/usr/local/bin/perl

BiG-NET#!/usr/local/bin/perl+CD-ROM

uranai.cgi Å
Magnavi→ Ip0107→ Cgi

2-2：まず、スクリプトの先頭行にある「Perlのパドルフィンインターネット #!/usr/local/bin/perl ※2ス」を確認しよう。そのうえで、利用しているプ

INTERLINK#!/usr/local/bin/perl

ロバイダーのパスに合わせて、1行目を書きかえる。

インタードットネット#!/usr/local/bin/perl

interQ#!/usr/local/bin/perl ※3

freeweb#!/usr/local/bin/perl

117NET#!/usr/bin/perl

トクトク#!/usr/bin/perl

U-netSURF#!/usr/bin/perl※ 1：サーバーによって異なる

2-3 ： メニューバーより「ファイル」→「名前を付け※ 2：プランA、プランB、プランCのみて保存」を選択して、ハードディスク上の任意の場所※ 3： MEMBERS会員のみに保存する（「www」というフォルダーに保存した）。

インターネットマガジン／株式会社インプレスR&D

Perl（パール）：ラリー・ウォールによって開発されたプログラミング言語。当初、テキスト処理に重点を置いた言語として開発されたが、言語仕様の拡張がなされ、ファイル操作やネットワークプログラミングなども可能となっている。最近ではウェブページに双方向性をもたらすために、CGIに利用されることも多い。
©1994-2007 Impress R&D

INTERNET magazine 2001/7

229

3 CGIファイルをアップロード)
たかがファイルとあなどるべからず「Perl のパス」の設定が終わったら、次は3-2 ： 「接続」→「接続」を選択し、設定このファイルをサーバーへアップロードする。

した「ホスト名」（ここでは@nifty）を選択

ここでは「FFFTP」というFTPソフトを例にして、「接続」をクリック。ログインすると、左画面にローカル（パソコン側）、右画面に解説しよう。アップロード作業はHTMLとあリモート（プロバイダーのホームページ領域）が表示される。

まり変わらないが、プロバイダーによってはアップロード先のディレクトリーが指定されていたり、転送モードの設定が必要だったりす。
るので注意しよう（右下の囲み参照）
CGI ファイルの置き場所を専用ディレクト

3-1 ： FFFTP を起動して「新規ホスト」ボタンをリーに限定するプロバイダーの場合は、所定押し、「ホストの設定」ウィンドウを表示させる。のディレクトリーを作らなくてはならない。プ

ホスト名など、必要な情報を入力する。

ロバイダーの用意するCGI設置手順のページなどを確認しよう。

プロバイダー

CGI を置くディレクトリー@niftycgi-bin3-3：アップロード作業は、転送先のディレクトリー（フォルダー）に移動して、BIGLOBE(www5* サーバ） 制限なし
Panasonic Hi-HO

cgi-bin

BiG-NET

制限なし

インタードットネット

制限なし

interQ

制限なし

トクトク

制限なし

freeweb

cgi-bin

アップロードするファイルをローカルからリモートへドラッグ＆ドロップする。

注意！
アップロードにはFTP転送を使うが、これには、テキストファイルを転送する「アスキーモード」（またはテキストモードともいう）と、画像などのバイナリーファイルを転送する「バイナリーモード」の2種類がある。CGIスクリプトは、必ず「アスキーモード」で転送しなくてはならない。本連載で使うFFFTPの場
合は、CGIファイルは自動的に「アスキーモード」に切り替えて転送するため、この操作を意識的に行う必要はない。

4 「パーミッション」を設定する)
自己管理もまた修行なり「グループ」と「その他」は、「読む」と「実行」ができる。サンプルの場合は、「オーナー」は「読む」「書く」「実行」ができるので「4+2+1」になり「7」。
「グループ」と「その他」は「読む」「実行」ができるので、「4+1」

アップロードが終わったら、「パーミッショパーミッションは、「読む（呼出）」「書くン」を設定しよう。パーミッションとはアク（読込）」「実行」の3つの実行権と、「オーナセス権のことで、CGI ファイルには、CGI とー」「グループ」「その他」の3 つの所有権のして実行可能な権限を与えておかなければ動。
組み合わせからなる（画面4-2 参照）

ウィンドウズなどのOSでは、「アクセス権」「実行」は「x」の記号で表される。ほか、という概念はあまりない。しかし、1つのコン「読む」は「4」、「書く」は「2」、「実行」ピュータを複数のユーザーで共用することをは「1」の数字で表すこともでき、それぞれ前提にしたUNIX では、セキュリティー上すの数字を足したものが属性として表示される。

べてのファイルにアクセス権を設定して管理

たとえばパーミッションが「rwxr-xr-x」の230 INTERNET magazine 2001/7と「755」となるわけだ。

一般に、「読む」は「r」、「書く」は「w」、作しないのだ。

している。になり「5」。それぞれの足した数字を並べる

とき、「オーナー」にはすべての権限があり、インターネットマガジン／株式会社インプレスR&D

UNIX（ユニックス）：1969 年に米AT ＆T ベル研究所で開発されたマルチタスク、マルチユーザー使用のOS。特にインターネットに接続されている多くのサーバーでUNIX が使われており、UNIXを前提とした仕組みや作法がインターネットに色濃く反映されている。
©1994-2007 Impress R&D

パーミッションの表し方

r （読むことができる）= 4w （書くことができる）= 2x （実行できる）= 1

4-2 ： 「現在の属性」に「755」と入力しrwx

r-x

r-x

オーナー

グループ

その他

4+2+44+1

4+1

75

5て「OK」ボタンを押す（上のチェックボッ

今回のパーミッション「755」はこのようになっている。

クスでも設定できる）。

詳しい話は以降の連載で。

4-1 ： リモート側 の

4-1 ： FFFTP でアップロードした「uranai.cgi」「uranai.cgi」の「属性」がを右クリックして、「属性変更」を選択する。

「rwxr-xr-x」となっているかを確認する。

5 CGIの設置完了

基礎はマスター、次からは実戦に突入だ！

動作テストのため、アップロードしたCGIファイルにブラウザーでアクセスしよう。
CGIの参照URLについては、プロバイダーによって特殊なURL となるので注意する。

CGI の参照 URL 例（@nifty の場合）
http://hpcgi?.nifty.com/(自分のユーザーID)/uranai.cgi?はホームページで登録したURL(http://homepage?.nifty.com/〜)の?部分と同じ数字を入力。

プロバイダー

CGI の参照 URL 例

BIGLOBE（www5* サーバー）

http://cgi.www5?.biglobe.ne.jp/˜****/uranai.cgi （?にはアルファベットが入る。****部分はユーザーID）

Panasonic Hi-HO/cgi-bin/user/****/uranai.cgi（**** 部分はメールアカウント名）

BiG-NET

http://www?.big.or.jp/˜****/uranai.cgi （?には数字が入る。**** 部分はユーザーID）

インタードットネット

http://www.??.rim.or.jp/˜****/uranai.cgi（??は登録ドメイン2 文字が入る。**** 部分はユーザーID）

interQ

http://cgi.members.interq.or.jp/????/****/uranai.cgi（????はサブドメイン名、****部分はユーザーID）

トクトク

http://www?.tok2.com/home/****/uranai.cgi（?には数字が入る。**** 部分はユーザーID）

freeweb

http://www?.freeweb.ne.jp/**/****/cgi-bin/uranai.cgi（?には数字が入る。** 部分はメインディレクトリ名、**** 部分はユーザーID）@nifty の場合と各プロバイダーの例を右に挙げておいた。
テストして動作に問題がないなら、自分のホームページのトップページのHTML などからリンクを追加する。もし、正常に動作しない場合は、アップロード先のディレクトリーが正しいかどうかチェックしよう。
今回はCGIスクリプトの設置の方法を重点)的に解説したが、次回以降はCGIファイルのカスタマイズ方法などを学ぶため、Perl を前提にしたCGI スクリプトの中身についてわかりやすく解説したい。

サンプルスクリプト「uranai.cgi」
についての注意
・このCGIスクリプトはフリーソフトとして使うことができます。
・詳細な利用規定については下記の「利用規定」を読んでください。
www.kent-web.com/pubc/kitei.html

完成
これが完 成 した「占 い」の CGI。「404Not Found」などが表 示 される場 合 は、URL やアップロード手順、パーミッションを再確認しよう。

今回はほとんど CGI スクリプトをいじらなかったが、次回からはどんどんカスタマイズして、オリジナルの CGI 作りを始めよう。読者参加企画も準備中だ！

次回は「アクセスカウンター」に挑戦だ!
インターネットマガジン／株式会社インプレスR&D

リモート：ネットワークの先にある、離れた場所のコンピュータのこと。実際に使用しているコンピュータは「ローカル」と呼ぶ。

©1994-2007 Impress R&D

つづくうううINTERNET magazine 2001/7231

［インターネットマガジン バックナンバーアーカイブ］ ご利用上の注意
この PDF ファイルは、株式会社インプレス R&D（株式会社インプレスから分割）が 1994 年～2006 年まで発行した月刊誌『インターネットマガジン』の誌面を PDF 化し、「インターネットマガジン バックナンバーアーカイブ」として以下のウェブサイト「All-in-One INTERNET magazine 2.0」で公開しているものです。

http://i.impressRD.jp/bn
このファイルをご利用いただくにあたり、下記の注意事項を必ずお読みください。
z 記載されている内容（技術解説、URL、団体・企業名、商品名、価格、プレゼント募集、アンケートなど）は発行当時のものです。
z 収録されている内容は著作権法上の保護を受けています。著作権はそれぞれの記事の著作者（執筆者、写真の撮影者、イラストの作成者、編集部など）が保持しています。
z 著作者から許諾が得られなかった著作物は収録されていない場合があります。
z このファイルやその内容を改変したり、商用を目的として再利用することはできません。あくまで個人や企業の非商用利用での閲覧、複製、送信に限られます。
z 収録されている内容を何らかの媒体に引用としてご利用する際は、出典として媒体名および月号、該当ページ番号、発行元（株式会社インプレス R&D）、コピーライトなどの情報をご明記ください。
z オリジナルの雑誌の発行時点では、株式会社インプレス R&D（当時は株式会社インプレス）と著作権者は内容が正確なものであるように最大限に努めましたが、すべての情報が完全に正確であることは保証できません。このファイルの内容に起因する直接的および間接的な損害に対して、一切の責任を負いません。お客様個人の責任においてご利用ください。

このファイルに関するお問い合わせ先
All-in-One INTERNET magazine 編集部
im-info@impress.co.jp
Copyright © 1994-2007 Impress R&D, an Impress Group company. All rights reserved.