BlackJumboDogという社内LAN用のプロキシーサ-バーを利用していた。
Freeソフトなのだが、優れもの。このおかげで、2台のPCから一台のダイアルアップ接続でインターネットを同時利用している。 この簡易サーバーソフトはWebサーバー機能もあり、SGI/SSIも可能という。 Webページにアプリケーション機能を付けたい。その目的でCGIを始めた。そこで、BlackJumboDogを利用してCGIプログラムのテスト環境を構築してみた。 設定は至極簡単。「Webサーバを使用する」のチェックボックス をONにするだけ。セキュリテーのため、利用者は僕のマシーンのローカルアドレスのみとした。 「CGI/SSIハンドブック」(宮坂雅輝著、ソフトバンク)を1回 読んでからCGI環境整備を始めた。WebサーバーをCGI処理可能 にセットし、「さー、何かしよう」としたのだが。何もできない。 CGIは Common Gateway Interfaceの略です。WebサーバをHTMLページの配信機能に限定すれば、HTTPdということ。サーバーの90%が利用しているApacheがそれだ。このHTTPdに外部のプログラムを利用できるインターフェースを付加するものがCGIということでした。これがあるから、Perl、C言語、VisualBasic、何でも利用できることになる。だが、利用できるようになっただけ。具体的な作業手続きを示さないといけない。一つの方法として、Perlでスクリプトを書いておく必要がある。という事でした。 |
さて、CGIを動かすにはPerlをセットしなければならない。
本番ではプロバイダーやレンタルサーバー側が準備しているので必要はないのだが。 ActivePerl-5.6.1.635-MSWin32-x86.msi をダウンロード。インスト−ラ−InstMsiA.exeも別パッケージでダウンロード。 InstMsiA.exeをダブルクリックで実行しておくと本体がインストール可能 になる。 Dドライブの\konwebに今までページが保存してある。プロバイダーの public_htmlに対応する。したがって、D:\konweb\binにPerlをインストール した。インストールの時点でPathがセットされる。REGISTOYを確認したがPerlというキーでD:\konweb\bin\perl.exe %1 %2とセットされていた。 Perlのみのインストールでよかったようだが、フルインストールした。D:\konweb¥Libに多くのファイルが展開 されていた。D:\konweb\htmlには英文マニアルもセットされていた。 |
インタープリター言語のPerlは、テキストのコマンドを翻訳し、それを解読実行してくれる。何をさせるかというと、サーバーのCGIルーチンが要求したHTMLページを作成出力すること。終れば、CGIルーチンがそれをブラウザ側に送り出す。
Perlは単体でテキスト処理ツールとしても威力を発揮する。プログラム言語習得の始めは、いつもそうなのだが、”Hello”と 表示させる。Windows版のPerlはDOSプロンプトで動く。試して見た。
メモ帳で print "Hello\n";としてhello.plに保存。
メモ帳で
ブラウザからhttp://192.168.10.1/CGI/hello.cgiにアクセス
|
よーし!いけますね。僕は一人でつぶやいた。しかし、ありがたい時代になった。そう思う。 フリーソフトのBlackJumboDogとPDSのPerlに感謝する。それは当然 のこと。だが、もう一つありがたいという理由がある。 ごくごく簡単な実験だが、振りかえって見よう。MSwindows98でWebサーバーソフトを準備し、スプリプト言語Perlの実行環境も整えた。PerlはDosプロンプトで動く。キーボードが標準入力、モニターが標準出力という状況だ。 キーボードからコマンドを打ち込むと、結果は画面に現れる。Dosプロンプトの最後に出力したのはHtmlのタグつきデーター。DOS窓の画面でタグつきソースを眺めれば、スクリプトの点検ができる。「メモ帳」でWebページを書ける人は、 これだけでもCGIスクリプトのテスト環境としては十分だろう。 ここまでなら、Webサーバーソフトをセットする必要はない。 最後に、ブラウザからCGIスクリプトを呼び出した。自分のPCのWebサーバーにあるCGIスクリプトを指定したのだから、待ち構えていたWebサーバーが指定されたファイルを探しPerlスクリプトだからPerlに作業を依頼 した。Perlは忠実にHtmlファイルを吐き出した。それをWebサーバーが ブラウザに送り返した。一瞬の作業を分解してみると、こんな連携プレー が想定される。インターネットの世界で、日夜繰り広げられている作業だ。 僕のミニTCP/IPの世界で一瞬にして終わったが、やってることは同じといえる。 ここまで整備できれば、ネットワークエンジニアがしていることを擬似体験できる。小さなトラブルを、ひとつづつ解決してみると、知らぬ間にネットワーク管理者としてのスキルが身につくだろう。 たったこれだけのことなのだが、全世界規模で繰り広げられているインターネットを、 自分だけの世界で擬似体験できる。いちいち、プロバイダー、レンタルサーバーのお世話にならなくてもいい。試行錯誤のCGI製作を、誰に気兼ねすることなくできる。たったこれだけのことだが、放送局のしている事と同じような、ミニスタジオを準備できたということだろう。マスメデイア社会では、その他大勢の「私見る人」と、ごく少数の「私作る人」の世界であった。でも、インターネットは違う。誰もが「見る人」であり「作る人」でもある。 フリーソフトのBlackJumboDogとPDSのPerlに感謝する。 将来、LinuxでApache。それは決めている。でも、今はMSwindows98 の環境。LinuxはUnixだ。 MS-DOSはUnixのサブセット版という イメージで作成された。MSwindows98の中にMS-DOSは生きている。マウスは使えないのでキーボードからコマンドを打ち込む。DosプロンプトあるいはDOS窓というのだが、これはUnixのshellに対応する。 Dosプロンプトではファイルの位置を示すのに¥を使う。英語版のDosプロンプトでは\を使う。ブラウザの場合は../などと表記した。結局、デイレクトリの表記は/が共通表記。つまりは、Unix表記がインターネット標準ということ。 ファイルリストコマンドはlsとdirで違うのだか、dir > list.txt というように、標準出力以外に>等でファイルに吐き出せる。さらに、dir || sortのようなパイプも両者共通。MS-DOSの頃、所詮Unixのサブセット 版と揶揄されたが、今はサブセット版で良かったねということになる。もう一度 MS-DOSの時代の知識を総動員してみよう。1980年代のDosのキャリアは2000年代のUnixのキャリアに含まれる。となれば、僕だって半端なキャリアではない。ありがたい時代になったと思う。 あの時代MSwindowsNTというのがあった。MSDOSのマイクロソフトの製品なのだが、Unixと同レベルで競うにはマイナーすぎる製品だった。マイクロソフトはWindowsという衣装を着けてWindows95ユーザーをWindows2000に誘導する戦略だったが、95と2000は別製品。僕はMSwindows98でバージョンアップは終わりにした。 MSDos、Windows95/98、Linuxというキャリアを僕は武器にしたい。 トライしながら、身に染みて分るということがある。 「アレー、動かない。動いていたんだけど。サーバーに送ったら動かない」。 こんなことで半日潰したことがある。 UnixはネットワークOS。自分と仲間と一般大衆という概念で構築されている。 ファイル自体に読み(R)、書き(W)、実行(X)の許可を、この3レベル で設定する。例えば、僕が作ったページはサーバーに送り込んで、 rwx---r--と設定する。つまり、自分で読み書き実行は出来る、不特定一般の 人には自由に読んで下さい、書き換えは許可しませんということ。こうしてプロバイダーの サーバーで僕のページが見られている。CGIのファイルは、実行されるファイルなのだ。だから、サーバー の中で組みたてられるcgiファイルはrwx---r-xとしなくてはならない。至極当然 の話しなのだが、やって見て始めて分る。そう、CGIのファイルはサーバーの中で組み立て直して要求する人に渡る。見ず知らずの人に対して、それを許可することを前提にしている。「アレー、動かない。」の半日潰したことが、深い理解の積重ねとなる。その先に、 プロフェッショナルの地平線が待っている。そう信じよう。 個人のパソコンですべて完結するDOSでは、rwしか設定しない。 仲間や一般大衆という概念もない。自分に書き込み許可を与えると、Unix の世界では全部の人に書き込み許可を与えた事に成る。これは本質的な OSの前提レベルでの話しだから、いたしかたない。サーバーとお付き合いする時は、公共の街角に出たことを自覚しよう。重要な点である。家庭内LAN、社内LAN。ここで鍛錬しておくのは大切なことだと思う。 |