1.CでCGIプログラムを書くために


HOME] [0章] [1章] [2章] [3章] [4章] [5章] [?章


CでCGiを書くためには、サーバーでこれらが使用可能であるように 設定されていることが前提となります。

(1)CGIをつかうためのサーバーの設定


Apacheを対象として説明します。a)サーバーでCGIを実行可能にするための 設定と、b)CGIプログラムのファイルを拡張子で認識させるための設定が 必要です。

a)CGIを実行可能にする設定
access.confファイルに次の行を記述します。
Options ExecCGI
SSIや他のオプションも使えるようにするためには、以下の指定をします。
Options All
b)拡張子の定義
これには、サーバー全体としての定義をsrm.confに記述する方法と、 CGIを置くディレクトリの.htaccessファイルにAddType行を記述する 方法があります。いずれの場合も、これらのファイルに以下を記述します。
AddType application/x-httpd-cgi .cgi
ちなみに、SSIを含むhtmlファイルをサーバーに認識させるための 拡張子の定義は、以下のようにします。同じようにsrm.confあるいは、 .htaccessに記述します。例は、拡張子.shtmlのファイルをSSIを含むもの として指定します。
AddType text/x-server-parsed-html .shtml
.shtmlの替わりに.htmlと指定すると、全ての.htmlファイルが、 クライアントに転送される前に、SSIが解釈されます。 ただし、この場合、その分オーバーヘッドが大きくなります。

(2)サーバーでCコンパイラがつかえるか


サーバーでシェルが開放されていて、Cコンパイラが使えることが 必要です。そうでない場合、こっそり使う手もないではないと思いますが、 お勧めはいたしません(^^;
Cコンパイラが使えるかどうかは、以下で在処を確認すると良いでしょう。
which cc
もし、Cコンパイラが使えなかったり、それどころかCGI自体があなたの サーバーで使えなかったら?
直ぐに諦める必要はありません。以下の手があります。
(1)管理者にお願いする
管理者の気前が良く、あなたがクラックなどしないと信頼されていれば 可能性はあります。ただし、商用のプロバイダーの方針を変えさせることは 無理と思いますが。学校や会社のサーバーの場合は脈があるでしょう。
(2)プロバイダーを引っ越す
説明の必要はありませんね。
(3)自分でサーバーを立ち上げる
FreeBSDなどのフリーUNIXとApacheで全てフリーウェアでサーバーの立ち上げが 可能です。
また、専用線もNTTのOCNなどを使えば、月々約4万円かそれ以下で 専用線接続が可能です。選択肢のひとつです。
(4)biglobeでは・・・
telnet接続は許可されていませんが、 BIGLOBEとCGIであそぼう の著者が、biglobeで用いることができる、perlの「telnetもどき」を公開しています。
裏技的なものなので、良心に相談しながら利用しましょう。
(こういった方法を悪用すると、折角biglobeが穴を開けてくれた行為が無駄になります) biglobeでは、CコンパイラもWWWサーバーに置いてあるようです。
Copyright 1999 Motoi Fujita