YukisRoom 「ホームページ作成講座」 CGI基礎講座

HTML基礎講座

HTML活用講座

CGI基礎講座

CGI活用講座

CGI基礎講座第1回、CGI基礎講座(1)です。

CGIの使用方法に入る前に、CGIの基礎知識を学びましょう。

CGIとは、何でしょう、いきなり「パーミッション」なる言葉も出てきますが、
「Perl」の基礎知識と共に、ぜひ覚えてください。

CGIを使うのではなく、CGIプログラムを利用する為の基礎知識のみ、
興味のある方は、「CGI」「Perl」「パーミッション」で、検索してみて下さい。

CGI,基礎講座、第1回 CGIの基礎を学びましょう。

CGIとは、いったい何

CGIとは、Webサーバが、Webブラウザからの要求に応じて、プログラムを起動するための仕組み。通常のHTMLでは、Webサーバは蓄積してある文書をただ送出するだけですが、CGIを使うことにより、プログラムの処理結果に基づいて動的に文書を生成し、送出したり出来ます。
現在ではほとんどのWebサーバソフトがCGIに対応しています。CGIはどのような開発言語でも使用出来るんですが、一般的には「Perl」が使われます。
「Perl」は、(ぱーる)と読み、インタプリタ型の言語です。

つまり、CGIとは、Webサーバ上の1つの規格であり、それを使う為のプログラムが「Perl」である、との理解で良いでしょう。

Perlとは、いったい何

Perlとは、Larry Wall氏が開発したプログラミング言語。
CGI専用ではなく、テキストの検索や抽出、レポート作成に向いた言語で、インタプリタ型であるため、コンパイルなどの処理を行なうことなく、すぐに実行することが出来るのが特徴。
とにかく機能が豊富なことで知られる。当初はUNIX上で利用されたが、現在ではWindowsを含む様々なプラットフォームに移植されている。

つまり、CGIを利用する為に最適な言語と考えて良く、Linaxでも、利用可能です。

Perlを使うには?


Perl言語が理解できればCGIは作成できる訳ではなく、Webサーバにある「環境変数」を利用して、CGIを実現します。
環境変数は、少し難しくなるので、ここでは割愛します。

Perlでは、Webサーバーの環境変数を使う事で、CGIを構成しているという事です。

Perlの初期設定

perlスクリプトの最初の行には、
#!usr/local/bin/perl
のようなperlが存在するパスを書く必要があります。 1行目が空白行でも、先頭にスペースがあってもエラーになります。
UNIXサーバでは、#!usr/local/bin/perl
Linuxでは、 #!usr/bin/perlに設定されています。
Windowsのローカルサーバでは必要なく無視される。

ローカルで問題なく動作しているCGIがサーバにアップするとエラーになる場合のほとんどが、 このperlのパスに原因があります。

Perlのパスは、CGIが使用可能なサーバーであれば、必ず記載があるはず、
このlolipopの場合は、#!usr/bin/perl、#!usr/local/bin/perl両方使えるようになりました。

パーミッションとは?

いきなり、難しい言葉が、出てきました。
パーミッションは、ファイルやフォルダに与えるアクセス権の設定の事、読み出し専用・書き込み可能等、一般的にも使われているアクセス権をWeb上のファイル&フォルダに設定するのが、パーミッション設定です。
通常のHTMLは、読み出しだけすが、CGIでは、Webサーバー上のデータを読み出す以外に、書き込みや実行が必要な為、アクセス権限の設定をしないと使用できない仕組みになってます。

こちらが、アクセス権の設定値

オーナー グループ それ以外
読み込み 書き込み 実行 読み込み 書き込み 実行 読み込み 書き込み 実行
r w x r w x r w x
4 2 1 4 2 1 4 2 1

この数値を、組み合わせて、アクセス権限を設定します。
 左からオーナー・グループ・それ以外の3つにわけ、それぞれの設定数値を合計して、3桁で設定します。

代表的なパーミッションの数値は?

CGIのパーミッション「755」
拡張子「.cgi」のファイルは、「755」の設定で、良いのですが、「705」の場合もあります。

CGIが使用するデータファイル「644」
その他の、各種データは、実行しませんから、「644」、または、「604」になるわけです。

CGIが動作するフォルダのパーミッション「755」
フォルダ内のデータに、アクセスしますからね、「755」、まれにエラーになる場合は「705」に変更します。

Sendmail、これ何?

sendmailとは、インターネット上で運用されるメールサーバであり、事実上の標準ソフトウェアになっている。
ユーザが送信したメールを受け取って、他のサーバと連携して配送したり、メールをユーザが受け取るまで保管したりする。
ソースコードの公開されたフリーソフトウェアとして元々UNIX用に開発されたが、現在では様々なプラットフォームに移植されている。

インターネット上で運用されるメールサーバと覚えておけば良いでしょう。メールを扱うCGIの場合、この設定が必要です。
このlolipopの場合は、#!usr/sbin/sendmailですね。

CGI基礎講座第1回、終了です。

ホームページ講座 ページトップ 次のページ
お問い合わせはこちらに、 小生宛のMail
Copyright© 2010 YukisRoom 葵Yuki. All Rights Reserved