6月度の月例会の勉強会風景
平成26年05月27日(金)の13時より開かれた例会で次のような話し合いが行われました。
ホームページ同好会ではNPOや小商店などのホームページ立ち上げ支援を目指して技術の研鑽に努めて来ました。 他人のホームページには、アクセス・カウンターやアクセス統計、ショッピング・カート、カレンダー等々のCGIを利用した ウェブ・ページが必要となってきます。 そこで今回はCGI入門と出来合いのCGIパッケージの利用に焦点を当てて勉強することにします。
1-1. CGIとは?
CGI とは Common Gateway Interface の略で、サーバーの中で実行されるプログラムへのインターフェイスのことです。 通常のページでは、閲覧者のパソコンの中に読み込まれたHTMLページをBrowserが表示するだけですが、
CGIによって起動されるプログラムはサーバーの中で実行され、 例えば、以下のようなインタラクティブ処理(対話的処理)をさせることができます。
1-2. CGIで出来るアプリ
*カウンター
*チャット
*掲示板
*アンケートフォーム
*商品注文フォーム
*カレンダー
2-1. CGI 処理の流れ図
CGI 処理の流れは次の図ようになります。
2-2. CGI 処理の流れは次のような順序で進みます
3-1. CGIスクリプトとは
「CGI」とは WWW サーバーがプログラムを起動する際の起動方法(環境変数の名前や値)を定めた仕様の名称です。この仕様に基づいて作成されたプログラムを「CGIプロ
グラム」と呼びます。
3-2. CGIプログラム
「CGIプログラム」のうち、Perl、awk、sh などコンパイル作業が不要なスクリプト言語で記述されたものを「CGIスクリプト」と呼びます。CGI
プログラムは Perl で記述されたものが多いですが、環境変数と標準入力を参照できて、結果を標準出力に書き出せるものであれば、C言語、C++言語、VisualBasic
でも何でも構いません。 環境変数とはOSが提供するデータ共有機能の一つ。OS上で動作するタスク(プロセス)がデータを共有するための仕組みである。
特に環境変数はタスクに対して外部からデータを与え、タスクの挙動・設定を変更する際に用いる。
3-3. PerlとPHP
また、インタラクティブ処理(対話型処理)をさせるプログラムにはCGIプログラムの他にPHPもあります。
CGIはWEBサーバーの外部プログラムなので、クライアントからリクエストがあるたびに新たにプログラムを起動します。そのためCGIを実行するたびにCPUやメモリにに負荷がかかってしまいサーバーに負担がかかってしまいます。
PHPではリクエストのたびにプログラムを起動することがなく、サーバーに負担がかかりにくく CGIと比べて処理速度が速くなります。
PHP: Hypertext Preprocessorとは、動的にHTMLデータを生成することによって、動的なウェブページを実現することを主な目的としたプログラミング言語、およびその言語処理系である。一般的には
PHP と省略して用いられており、これは「個人的なホームページ」を意味する英語の "Personal Home Page"
に由来する。
PHPはサーバーサイド・スクリプト言語として利用されており、Webサーバ上で動作し、Webサーバ上でPHPスクリプトの文書が要求されるたびに、そのPHPスクリプトが実行され、結果をウェブブラウザに対して送信する。平易な文法のため初心者でも習得しやすく、また大規模な開発にも多く用いられている。多くのフレームワークやライブラリが存在し、開発の手助けとなっている。
数多くのオープンソースウェブアプリケーションに利用されている一方、しばしば脆弱性の報告がなされ、過去に深刻なセキュリティホールが何度か報告されている。
従来、CGIスクリプトとしてはPerlが最も多く使われていましたが、最近では PHPも盛んに使われるようになりました。CGIはCGIプログラムを起動する為のインターフェイスであるのに対して、PHPはプログラムそのものでBrowserの元でもサーバーの中でも実行されるので、処理速度が速いと言われています。
4.出来合いのCGIの利用
普通のウェブ開発者にとっては、CGIを自分自身で書くことは大変難しいので、インターネット上で公開されている出来合いのパッケージを利用するのが実用的です。
一般的に知れ渡っていて、信用のおけるCGIパッケージのサイトには次のようなものがあります。
4-1 .Kent WebKentWeb (http://www.kent-web.com/)
無料CGIスクリプトの種類豊富。検索エンジン・掲示板・リンク集・フォームメール・カウンター・アクセス解析・ショッピングカートなど多数。CGIの設置に関する説明やサポート・コーナーなどもあり、初心者にはやさしいサイトです。
4-2. Rocomotion (http://www.rocomotion.jp/cgi.php)
KENTさんのBBS(掲示板)をカスタマイズたもの、DIARY、ShoppingCartなどを配布しています。
4-3. Grab-sys (http://www.grab-sys.com/)
オークションのCGIなどを配付しています。
4-4. その他多数の無料でCGIパッケージ
9月からの一連のCGIアプリの導入の準備のために以下の様な構造のサイトを9月の例会までに用意しておいてください。
<div id=”container”> width:800; border:0; margin: 5px auto;
<header> width:798; border:1;
この中に今日、昨日、累計のアクセス・カウンターを配置します。見出しと背景画は各自好みのものを用意する
<nav> width:798; border:1;
この中に頁01、頁02、掲示板、カレンダー、注文等へのLinkを入れる
<section> width:798; border:1;
この中には各自好みの内容を入れる
<footer> width:798; border:1;
この中にCopyRightと問合わせコメントへのLinkを入れる
日時: 平成26年9月30日(火)13:00~16:30
場所: 千葉市市民文化センター9階の千葉市民活力創造プラザの小会議室
テ―マ: CGIの導入ーアクセス・カウンター(DAY COUNTER-EX)。