CGIとは?言語や活用事例と併せて設置方法・注意点なども解説!
CGIとは、「Common Gateway Interface」の略で、WebサーバーがWebブラウザなどからの要求に応じてプログラムを実行する仕組みのひとつです。Webサーバーが独立したCGIプログラムでWebページを生成できます。 今回はCGIに焦点を当て、その概要や活用事例、メリット・デメリット、設置方法、注意点などをご紹介します。気になるポイントを一挙確認してしまいましょう。
CGIとは?
CGIとは、「Common Gateway Interface」の略で、WebサーバーがWebブラウザなどからの要求に応じてプログラムを実行する仕組みのひとつで、Webサーバーが独立したCGIプログラムでWebページを生成できます。
通常のWebページの場合、Webサーバーはあらかじめ用意されたページを要求に応じて返すだけですが、CGIを活用すると新たにWebページを作り出すことができます。
CGIの処理プロセス
ウェブサーバーとブラウザ、CGIプログラムが協働して動作するプロセスを説明します。
1.ブラウザからの要求
ユーザーがブラウザを通じて特定の操作を行うと、ブラウザはWebサーバーに対してWebページの内容を要求します。
2.Webサーバーの処理
Webサーバーはこの要求を受け取ると、適切なCGIプログラムを起動します。
3.CGIプログラムの実行
起動されたCGIプログラムは、要求された処理を実行し、その結果をWebサーバーに返します。
4.結果のブラウザへの返送
CGIプログラムから結果を受け取ったWebサーバーは、それをブラウザに返します。これにより、ユーザーは要求したWebページの内容を見ることができます。
以上のステップにより、CGIを使用したコンテンツの提供が行われます。この一連の流れは、ユーザーのリクエストに対する動的なレスポンスを生成するための基本的なプロセスです。
CGIで具体的にできること
CGIを活用することで、HTMLなどによる静的な情報だけでなく、プログラムの処理結果に基づいた動的な情報を扱うことができます。
例えば、データファイルを読み込んだり、書き込んだり、削除したり、修正したりできます。
またメールを送信したり、データベースにアクセスし膨大なデータを検索したりすることもできます。
【CGIの活用例】
|
CGIのメリット
Webページを作成する技術には、FlashやJavaScriptなど様々なものがあります。
しかし、それらには、Webブラウザの標準サポート機能ではないという致命的な欠点があります。
つまり、利用者自身が機能の設定をOFFにしていたり、利用者のデバイスに必要なソフトが組み込まれていないと正常に機能しないのです。
しかし、CGIの場合、処理はWebサーバー側で行われ、Webブラウザに渡されるのはHTMLテキストです。
つまり、Webサーバーさえ機能していれば、どのブラウザソフトでも表示することができます。
また、CGIはWebサーバーそのものにデータを保存するため、複数人でデータを共有することも可能です。
CGIのデメリット
CGIは、HTMLテキストと比較すると、プログラムが実行される分、実行に時間がかかり、Webサーバーに負荷がかかりやすいというデメリットがあります。
そのため、CGIの設置を禁止しているプロバイダがある点に注意しましょう。
CGIを設置する際の注意点
プロバイダによってはCGIの設置が禁止・制限事項があります。
例えば以下のような情報です。
|
もし設置が許可されて入ればPerlのパスと何か独自の制限事項がないか調べましょう。
代表的な事項には以下のようなものがあります。
|
特に無料のWebサーバーを使用している場合は、CGIの設置が許可されていても上記のような制限が厳しい場合が多いため、注意しましょう。
CGIの設置方法
ここでは、CGIの設置方法について解説します。
【設置の流れ】
|
1.CGIプログラムのダウンロード
CGIの設置が許可されている場合、早速、設置するためのCGIプログラムを手に入れましょう。
プログラムは自分で作成することもできますが、やや敷居が高いです。
CGIプログラムを無料で配布しているWebサイトがたくさんあるので、その中からダウンロードして利用すると良いでしょう。
無料フリーCGI一覧については以下のサイトがおすすめです。
【フリーソフト100|無料フリーCGI一覧】
2.ダウンロードしたファイルを解凍
配布されているCGIファイルは、スピーディにダウンロードできるようにするため、圧縮されています。
そのため、圧縮されたファイルを使用できる状態に戻すため、専用ソフトで解凍しましょう。
解凍にはフリーソフトの Lhasa がおすすめです。
3.エディタで開いて設定を変更
各種設定を変更するため、CGIファイルをエディタで開きます。
Windowsに付属しているメモ帳で改造・編集する事も可能ですが、行番号が表示されていなかったり、大きいファイルサイズを開くことができなかったりなど、機能が乏しいため、CGIの編集には向いていません。
もし、何を使用したら良いかわからない方は、TeraPadという無料エディタが初心者にも使用しやすく、おすすめです。
4.Perlのパスを設定
CGIスクリプトの1行目には「Perlを実行するためのプログラムがどこにあるか」を記述します。
基本的に「#!/usr/local/bin/perl」のままで動作しますが、Webサーバーによっては正常に動作しないことがあるため、書き換えが必要になる場合があります。
書き換えが必要な場合は、使用中のWebサーバーに直接問い合わせてみましょう。
なお代表的なPerlのパスは以下です。
|
5.FTPソフトを使用してファイルをアップロード
FTPソフトとは、FTP(File Transfer Protocol)と呼ばれるプロトコルを用いて、接続相手のサーバーからファイルをダウンロードしたり、アップロードしたりできるツールです。
ただし、CGIの設置を行う場合は、通常の転送機能のほかにアスキーモードでのアップロードとパーミッションの設定に対応している必要があります。
特にソフトに対してこだわりがなければ、FFFTPというフリーソフトを活用すれば問題ありません。
6.パーミッションを変更
パーミッションとは、ファイルの読み込み、書き込み、実行の権限のことです。
Webサーバーにあるデータは様々な人がアクセスできるため、勝手にファイルを変更・削除されないように権限を設定する必要があります。
パーミッションを正しく設定しないとエラーになってしまいます。
パーミッションは以下の3つを設定しましょう。
|
7.CGIにアクセス
CGIの設置と設定の完了後、CGIを呼び出しましょう。
通常、<a href=”http://www.your.page.addr/~account/board/board.cgi”>掲示板へ</a>というようにCGIにリンクすることでアクセスができるようになります。
ここまでの説明で、全てを理解することは難しいでしょう。
具体的なコードの書き方などについて知りたい方は、ぜひ弊社にお問い合わせください。
【株式会社ipe|問い合わせフォーム】
CGIが動作しない時の対処法
ここでは、CGIが動作しない時の対処法について解説します。
主に以下の原因が考えられます。
1.CGIの修正ミス
2.CGIを格納するフォルダやCGIのパーミッションが間違っている 3.CGIが文字化けもしくはHTMLに変換されている |
1.CGIの修正ミス
CGIの初期設定パラメータを修正すると、修正行の最後のシングルコーテーション(’)や、セミコロン(:) などが同時に削除されてしまうケースがあります。
CGIが動作しない場合、まずは記述したコードに誤りがないか確認しましょう。
2.CGIを格納するフォルダやCGIのパーミッションが誤っている
CGIを格納するフォルダやCGIのパーミッションが誤っていることが原因で、CGIが動作しないケースもあります。
3.CGIが文字化けもしくはHTMLに変換されている
CGIファイルをバイナリーモードでFTP転送を行うと、CGIが文字化けもしくはHTMLに変換され、正常に動作しない場合があります。その場合は、テキストモードで再度FTP転送してみてください。
また、CGIをHTMLソフトで編集すると、HTMLタグが自動的に追加される場合があります。
HTMLタグを削除するか、初めからテキストエディタで編集してください。
CGIによく活用されるプログラミング言語
CGIのプログラムは、Webサーバーと同じサーバー上で実行でき、標準入力と標準出力ができれば、言語は問いません。例えばPerl、 Ruby、 Python、 PHPなどの言語がよく用いられます。
CGIを活用したコンテンツ作りでWebサイトの可能性を広げよう!
このページでは、CGIに焦点を当て、その概要や活用事例、メリット・デメリット、設置方法、注意点などについて解説しました。
CGIは、簡単に言うとWebサーバー上にあるプログラムを動かすための仕組みです。
HTMLだけでは表現できない動的なプログラムを実現できるため、ホームページやWebサイトの可能性を広げるためにも、ぜひ理解しておきたい仕組みと言えるでしょう。
「CGI」やSEOでお悩みの場合は株式会社ipeにご相談ください。株式会社ipeではSEOでの大手クライアント実績多数!SEOを検討する際にはぜひ一度ご相談ください。
SEOに関するご相談があれば、ぜひipe(アイプ)へご相談ください。