前に戻る

ちょっと物知り博士のちょこっと講座

第7回 続・続LINUX奮闘記(しつこいなー!!!)
もう少しで LINUX奮闘記も終わります。今しばらくのご辛抱を。

CGIが使えるようにするには WEBサーバーの設定と同じように /etc/httpd/conf/httpd.conf ファイルの記述を次のように変更すれば出来ます。この/etc/httpd/conf/httpd.conf ファイルは英文で非常に長いので 読んで理解するのも大変、必要な個所を探すのも大変ですが、あなたの英語力に懸けるのみです。

# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#
ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"
ScriptAlias /cgi-local/ "/home/httpd/cgi-local/"
#
# "/home/httpd/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/home/httpd/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
AddHandler cgi-script .cgi .pl
</Directory>

<Directory "/home/httpd/cgi-local/">
Options ExecCGI
Allow from all
AddHandler cgi-script .cgi .pl
</Directory>


以上を記述すればCGIを動かすことが出来ます。

CGIはPerl を使っています。Perl は Apache をインストールするときにくっ付いてインストールされているので改めてインストールする必要はありませんでした。後はテスト実施あるのみ。

いつもの癖で、一からプログラムを作ろうなんてことはしません。 インターネットで探せばいくらでも無料で使えるプログラムがあるんです。早速、「掲示板」のプログラムサンプルをロードしてきて、perl 言語なんぞわからんなりにプログラムの一部を修正してテストしてみます。

CGIプログラムはどこへ置いたら良いのでしょう。
/etc/httpd/conf/httpd.conf ファイルの中に設定しました/home/httpd/cgi-local/ の下に置けばいいんです。

ダウンロードした「掲示板」のプログラムをWINDOWSの端末からSAMBA を通じて転送してみました。これはWINDOWSのエクスプローラで行なうので簡単に出来ます。

WEB ブラウザから http://144.120.2.107/cgi-local/yamarbs/isirbss.cgi と入力して、「それー行けー」。
動きませんでー!。 ブラウザ画面に「SERVER INTERNAL ERROR」 が出て、目的とする「掲示板」の画面が出てきません。 「・・・・・?????・・・なして?」

この状態は、そのままプログラムソース、ブラウザ画面、サーバーのエラーログ(/var/log/httpd/error_log)を眺めていても解決できません。やはり先人の知恵に頼らねば。
本屋へ行って「そのまま使えるCGI]「CGIで作るインタラクティブWeb ページ」を買ってきて読んでみました。
肝心な点を2つ、無視してテストしていたんですねー。

一つ目は、CGIプログラムを動かす[Perl」は「テキスト」を読んで解析します。Windows とLINUXはテキストの改行記号が違います。これを解決するには、Windows からLINUXサーバーへプログラムを送るときにFTP プログラムを使用しテキストモードで送らなければなりません。「ヘー、ほんなら、FTP をインストールせにゃーいけんのー」
二つ目は、Linux サーバーへ送られたファイルのpermissionを決めてやらなければならない。Linux(UNIXも同じ)システムでは、全てのファイルは、Owner(ファイルの作成者)、Groupe、Guest の区分が書かれてあって、その上、夫々のOwner、Groupe、Guest毎にそのファイルのアクセス権限が決められています。
CGI はサーバーで実行するプログラムだから ’755’を、CGIが使用するデータファイルは、サーバーで読み書きしなければならないので’666’をしてします。「そーでっか!!!」 これは難しくはありません(解ればの話ですが)

あわてて(別に慌てたわけでもありませんが) Linux サーバーにCD-ROM から wu-ftpd-2 と anonftp-3 をインストールしました。
この ftp プログラムは、クライアント(端末)から送られてきた ftp 要求を制御するものです。ftpとは File Trnsfer Protocol の略です。

WINDOWS のFTP プログラムは、ホームページをプロバイダへアップロードしたときに用いたプログラムを用いました。
このWINDOWS のFTPプログラムの機能に、テキストで送信する、LINUX サーバー側のファイルのパーミッションを設定する機能があります。

改めて WEB ブラウザから http://144.120.2.107/cgi-local/yamarbs/isirbss.cgi と入力しました。 今度は「掲示板」の画面が出てきました。

やっとCGIがテストできる状態になりましたねー。長かったですねー。
うれしくなって、いきなりアクセスカウンタ、フォーム入力(訪問記録帳)、掲示板、レス付き掲示板、TREE表示掲示板と立て続けにテストする。 といいながらこれらは全て本に載っているものや、インターネットサイトからダウンロードしてパチったもので、自分で一から作ったものではないのであんまり威張れませんが・・・(~~)。

LINUX とは直接関係はありませんが、この頃から、自分で悦にいって作ったホームページへのレスポンスが気になり始めました。
あれやこれや、高尚な(自分で思っているだけ)技術を駆使して、芸術的なホームページを作って、「これでジャンジャンバリバリアクセスがあるぜ」と一人で騒いでいたのです。・・・・・が、ホームページのアクセスカウンタはなかなか上がりません。訪問帳への書き込みは毎日毎日「なし」。掲示板への書き込みも自分が書き込みをして以来何にもかかれていない。
たかがインターネット上(いわば仮想空間)のことなのになぜか気になってしょうがないのです。他のサイトの掲示板なんか一日に何件も書き込みがあるし、なんかごちゃごちゃしたホームページの体裁なのに万を越えるアクセス件数だったりする。 自分だけが取り残されている。無視されている。・・・妙な感じになるのです。
いつでも、自由に、ホームページ、CGIプログラムが作れる環境に出来た今、悩み、反省することしきりです。

反省1. ホームページを作るときフレームなんて喜んで使わない方がいい。 インターネットブラウザは、フルスクリーンで見る人は案外少なくて、フレームにしちゃうと、必要なところが隠れてしまう。

反省2. ボタン、ロゴは最小限にする。 いっぱい飾りのついたホームページは自分はうれしくても、見る方はブラウザにダウンロードする時間がかかって、電話代がかさみます。

反省3. 背景画像は極力小さくする。 ブラウザの機能のうちの、backgif を展開して背景画像を表示する機能を使うときは、元になる画像の大きさを極力小さくしないと、ダウンロードするとき電話代がかさむ。

反省4. 大きな写真を使わない。 知らないうちは、自分のホームページに大きな写真を貼り付けて悦にいりますが、何枚も写真を貼り付けると、全部をブラウザがダウンロードしようとするので、1ページ表示するのに2分も3分もかかってしまうことになります。
写真を公開しようとするときは、インデックスのみを初期画面で表示し、クリックしたときに目的の写真が出てくるといった工夫をするべきだなー。

反省5. 全体を硬い感じにしない。 これは性格によるものだから、しょうがないと思いますが、整然として非のうちどころのないホームページよりは、雑然としていても、いろんな面白い事柄が満たされているようなホームページの方が人気がいいように思います。
要するに、見てくれよりは、中身が濃い方がいいということですかね。 なーんだ、結局LINUXとは直接関係ないことばっかりじゃん。

それでも 「CGIのテストが出来るようにする」LINUX の勉強にかかる時に持った目標は一応達成したのですが、 インストールで悩んでいるうちに、LINUX の魅力に取り付かれてしまっている自分に気がつきました。
根っからコンピュータ屋なんですね。また新たに目標が出来ました。
目標1.インターネット上にサーバー(DNS、メール、WWW、FTP)を公開すること。
目標2.LINUX上で、ORACLE(データベースの一種です)が使えるようにし、WINDOWS NT サーバーの機能を移植する。

このあたりから、遊びではなく、商売が絡んできます。この稿の目的「恥じをさらすについて」からは逸脱しますので「CGIのテストが出来るようにした」後、やったことを簡単に記して、終わります。

RedHat で日本語処理はどうなってるの。 JEの環境を無理やりいじってたらLIBを消しちゃった

PC300GL 再インストール実施。結局ノーマルインストールのままで日本語は使えるのです。

Cのプログラム開発環境を整備しました
C, GTK++、
C++でも開発出来るでよー

遅ればせながら、LINUX機でNETSCAPEを動かして見ました。
FMVでは簡単に動くのに、IBMPC300GL ではルータの外へ信号が出ず、NETSCAPEも動かない

IBMPC300GLでdefault routeの動きがわかったぞ。NETSCAPEもちゃんと動くようになりました。

外から自前のWEBサーバーが覗けるようになりました。
route でグローバルアドレスを設定して見た これは動かない
router でマスカレード(NAT)設定をしました。LINUXサーバーは/etc/hosts での設定のみ
これで動くのです。

早いことprimary DNS サーバーを持たなくっちゃ。

DNS サーバー、WWWサーバーを公開したときのお話はまた講演します。多分とんでもない失敗談があります。 お楽しみに。