「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を活用することで、HTMLなどによる静的な情報だけでなく、プログラムの処理結果に基づいた動的な情報を扱うことができます。

例えば、データファイルを読み込んだり、書き込んだり、削除したり、修正したりできます。

またメールを送信したり、データベースにアクセスし膨大なデータを検索したりすることもできます。

【CGIの活用例】

  • Web掲示板
  • アクセスカウンター
  • Wiki
  • Blog
  • Webチャット
  • メール送信フォーム
  • アンケート
  • 日記システム

「CGI」のメリット

Webページを作成する技術には、FlashやJavaScriptなど様々なものがあります。

しかし、それらには、Webブラウザの標準サポート機能ではないという致命的な欠点があります。

つまり、利用者自身が機能の設定をOFFにしていたり、利用者のデバイスに必要なソフトが組み込まれていないと正常に機能しないのです。

しかし、CGIの場合、処理はWebサーバー側で行われ、Webブラウザに渡されるのはHTMLテキストです。

つまり、Webサーバーさえ機能していれば、どのブラウザソフトでも表示することができます。

また、CGIはWebサーバーそのものにデータを保存するため、複数人でデータを共有することも可能です。

「CGI」のデメリット

CGIは、HTMLテキストと比較すると、プログラムが実行される分、実行に時間がかかり、Webサーバーに負荷がかかりやすいというデメリットがあります。

そのため、CGIの設置を禁止しているプロバイダがある点に注意しましょう。

「CGI」を設置する際の注意点

プロバイダによってはCGIの設置が禁止・制限事項があります。

例えば以下のような情報です。

  • お客様URL       http://www.example.co.jp/~user/
  • FTPホスト       ftp.example.co.jp
  • FTPユーザー     user
  • FTPパスワード   uGxeZphk
  • Perlパス        /usr/bin/perl
  • Sendmailパス    /usr/bin/sendmail

もし設置が許可されて入ればPerlのパスと何か独自の制限事項がないか調べましょう。

代表的な事項には以下のようなものがあります。

  • CGIの設置にはプロバイダの審査が必要
  • CGIは別のサーバーに設置する必要がある
  • 特定のディレクトリ内に設置する必要がある
  • プロバイダが用意したCGIしか使用できない
  • .htaccess ファイルをする必要がある

特に無料のWebサーバーを使用している場合は、CGIの設置が許可されていても上記のような制限が厳しい場合が多いため、注意しましょう。

「CGI」の設置方法

ここでは、CGIの設置方法について解説します。

【設置の流れ】

  1. CGIプログラムのダウンロード
  2. ダウンロードしたファイルを解凍
  3. エディタで開いて設定を変更
  4. Perlのパスを設定
  5. FTPソフトを使用してファイルをアップロード
  6. パーミッションを変更
  7. 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のパスは以下です。

  • /usr/bin/perl
  • /usr/local/bin/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を検討する際にはぜひ一度ご相談ください。