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サーバーに置いてあるようです。