CGIを設置したーい!って思っている人いっぱいいますね。
無料レンタルで掲示板を借りているけど、それに満足できなかったり、好きな背景にしたいなぁとおもうでしょう。そういうときにあなたのプロバイダーで「CGI」が使えるのであれば、フリーソフトのCGIプログラムをカスタマイズ(自分用に手を加えること)して使うことが出来ます。もっとオリジナルな物がほしければ、自分でプログラミングすることも可能です(ただし、初心者にはかなり難しいです。フリーソフトの中にはとてもいい物が多いので、それを使うことを考えましょう^^)。
フリーソフトはKENT WEBさんなど、配布しているHPがいっぱいあります。検索エンジンで調べれば、いっぱいあります。そこには丁寧にカスタマイズ方法や、設置法が載っているので、初心者でも大丈夫です。
でも、もしそこに書いてある用語がわからなければ、どんなに丁寧に書かれていても意味が飲み込めないでしょう。というわけで、初心者の方からの質問のあった事柄をまとめてみました。
さんちゃん自身えらそうなことが言えるほどではないので、(もし間違いなどありましたら、教えてください。)、あまり難しいことや厳密な定義は書いていません(^^;)。それでもお役に立てればいいなと思っています。もっと詳しいことが知りたい方はとほほのWWW入門さんなどの立派なページでお勉強してください。

CGIって何?
ブラウザがファイルを読み込んでくるときに、そのファイルがHTML文書の場合はページを表示するだけでしたが、CGI(common gateway interface)の場合、そのファイルがプログラムだったときに、そのプログラムを起動して結果をブラウザに返します。
掲示板を例に挙げます。掲示板のプログラムをブラウザが読みに行きます。サーバーではいままでの書き込みの内容をデータとして、あるファイルに持っています。プログラムはそのデータにアクセスして内容を読み込み、今までの書き込みをHTML文書に整形して表示します。あなたが新しい書き込みを加えるのに「書き込み」ボタンを押すと、プログラムはデータファイルにあなたが書いた書き込みを追加し、更新されたデータファイルを読んできて、その結果を表示するのです。
つまり、CGIを使うとみるだけでなく、インタラクティブなページが作れるのです。HPを見に来てくれた人が参加できるようなページを作ることが出来ます。代表的な物に、先に挙げた「掲示板」ほかに「チャット」「アンケート」などがあります。「こどものにわ」のなぞなぞやしりとりなどもCGIでやっています。
ここでは、perlという言語で書かれたCGIスクリプトについてお話しします。あなたのプロバイダがperlに対応していることを確認してください。
この言葉がわからない!
- スクリプト
CGIプログラムの中身(?)。(ちゃんとした定義があるのかもしれませんが^^;)
- 書庫ファイル(LHA形式 ZIP形式)
ファイルをダウンロードするときなどは、なるべく大きさが小さいファイルの方がいいですね(^^)。圧縮した物が書庫ファイルと呼ばれています。圧縮の方式は大きく分けてLHA形式とZIP形式があります。windowsの場合、Lhasaというフリーソフトでどちらの形式も解凍(圧縮の反対。圧縮されたファイルを元のファイルにもどすこと)出来ます。LhasaはSusieの部屋でダウンロードできます。
- ディレクトリ
ディレクトリとは、windowsでいえば、「フォルダ」だと思ってかまいません。実際以前のwindowsではディレクトリと呼ばれていました。
ホームディレクトリは、プロバイダのサーバーにおけるあなたのディレクトリで、一番階層が上のディレクトリのことです。
例えばサーバーにFTPソフトでアクセスした場合、ニフティはhomepage、HI-HOはHTMLがHTMLファイルを置くディレクトリです。その上の階層(これがホームディレクトリ)をみると、そのHTMLファイルを置くディレクトリと同じ階層にcgi-binというディレクトリがあります。ここにCGIプログラムを置くのです。自分のプロバイダではどうなっているか、プロバイダのHPで調べておきましょう。(ちなみにbiglobeのwww5aでは、すべてを同じディレクトリにアップロードするようです)
- バーミッション
UNIXにおけるファイルの属性です。これによって実行可能かどうかが決定されるのです。多くのサーバーがUNIXです。755などの数字ですが、これは自分や他人がそのファイルを実行可能かどうか、読み出し可能か、書き込み可能か、などを表すのです。これを指定しないとプログラムは正しく動作しません(ただし、HI-HOではパーミッション不要です。自動的に実行ファイルと見なされます)。これはファイルをサーバーに転送する際にFTPツールで設定できます。
- テキストエディタ
windowsのメモ帳もテキストエディタです。文章やプログラム・ソースを書くためのソフトです。私はCGIプログラムの時は、Boon Editor を使っています。ちなみにホームページビルダーなどのHP作成ソフトのことを「HTMLエディタ」という場合があります。HTMLエディタは時として、よけいなタグを勝手にファイルに追加する事があるので、CGIカスタマイズには使わないでね。windowsのメモ帳も立派なエディタですが、あとで述べる改行コードが変わってしまう可能性があります。
- ソース
うーん。。。ブラウザでソースの表示ってやるとHTMLタグが出てきますね。そういうことです(^_^;)。ファイルの見た目(ブラウザで表示される)ではなく、中身(?)かな。。。
- 拡張子
ファイル名のカンマからあとの部分を拡張子といいます。ファイルの種類によって拡張子は変わります。例えば、テキストファイルならtxt、HTMLファイルならhtmもしくはhtmlです。windowsの場合、拡張子がexeなら実行ファイルです。
- 画像のファイル形式
画像のファイルの種類はいくつかあります。bmp(ビットマップファイル。windowsのペイントで作るとこれになる)、jpg(写真などによく使われる形式。圧縮率が高い=ファイルサイズが小さくなる)、gif(HPでよく使われる形式。バナーなど大抵の画像はこの形式です)などがあります。HPでよくみる動く絵はgifで描かれています。他にもいろいろありますが、とりあえずこの3つを知っておけばよいでしょう。
フリーソフトをダウンロード!
では、あなたが使いたいと思うフリーソフトをダウンロードしましょう。
ダウンロードの際にはよく説明を読みましょう。また利用規程や使用上の注意などは必ず読みましょう! ダウンロードしたファイルは圧縮されているので、解凍する必要があります。解凍するツールで解凍します。
説明にはどのファイルをどこのディレクトリに置けばいいか書いてあるので、それに従って置きましょう。そして説明に従って、CGIスクリプトを自分のプロバイダーの設定にあわせて変更(カスタマイズ)します。変更するときはエディタをつかいます。1行目にはperlのある位置が書かれています。 #!/usr/local/bin/perl のように記述されます。これはプロバイダによって違うので調べておきましょう。変更しなければいけないところは説明されているはずなので、それに従って変更していけばいいはずです。
変更できたらサーバーにファイルを転送して(このときに前述のパーミッションを設定するのを忘れないように!)、実際のurlにアクセスしてちゃんと動いているかどうか確認しましょう。
動かない。。。
ちゃんとやったはずなのに動かないときがあります。ここで注意しなくてはならないのは「改行コード」です。
UNIX、Mac、Winそれぞれで改行コードが異なります。Winで作った場合、改行コードをUNIXの形式にしなくてはなりません。ちなみに、
です。ファイルを転送する際にFTPツールで変更できます。普通のHTML文書は改行コードはどれでもOKです。でも、プログラムは改行コードをあわせなくては動きません。メモ帳を使ってCGIスクリプトを変更するとちゃんと動きませんでした(Boon Editorでは平気でしたが)。プログラムが動かないときは改行コードを疑ってみてください。
また、スクリプトを変更したときに「"」や「;」をひとつでも消してしまうとエラーになります。すごく重要です。
掲示板に画像(広告)を入れてみよう
無料のレンタルサーバーの場合でもCGIが使えるところがあります。そのような場合は大抵ページごとに、指定のタグで広告を表示させることが求められます。HTML文章では広告を入れられても、CGIスクリプトではどこに入れたらいいかわからないですね。
注:CGIスクリプトの改造は自己責任で行ってください。さんちゃんはあなたがここで得た知識をもとにおこなった結果発生した問題についていっさいの責任を負いません。
まずスクリプトをみていきましょう。多少の根性が要求されます(^^)。スクリプトをみていくと、難しげに見える数字や記号の羅列の間に「タグ」があるのが見えるでしょう。例えばこんな感じです。 例:「こどものにわ」の「みんなのにわ掲示板」より(作者:さんちゃん)
print "<HTML><HEAD><META HTTP-EQUIV='Content-Type' CONTENT='text/html;CHARSET=x-sjis'><TITLE>みんなのにわ掲示板</TITLE></HEAD><BODY BACKGROUND=$bgfile><P ALIGN=CENTER>
以下略
このタグの部分に指定の広告タグを入れればいいんです。CGIスクリプトの中でタグを書き出すときには
print " ";
の" "の中にタグを書かなくてはいけません。ただしそのまま書いてもだめです。「"」の中にまた「"」を書くとだめなのです。こういう場合はタグの中の「"」を「\"」とするか、「'」にしないと、だめです。ただし「'」を使うとその中に変数が使えないので「\"」を使った方がいいです。
スクリプトを読んでいくと、これが掲示板の表示に使っているタグがかいてあるところだな、とわかると思います。その部分に指定の画像(広告)のタグを入れましょう。入れたい場所に
print "<A HREF=\"...\"><IMG SRC=\"...\"></A>";
のように追加してください。最後の「;」も忘れないようにしてください。
なお、どうしてもここに入れたい!からといってprint文の中にprint文を書いてはいけません。(^^)
入れたい場所がprint文の中なら
<A HREF=\"...\"><IMG SRC=\"...\"></A>
をその場所に書いてください。
好きな画像が入れられるようになると、掲示板のタイトルをあなたのHPのロゴにすることも可能ですね。
自分のPCを疑似サーバー化する(なんと費用ゼロ!)
CGIはサーバーにアップロードしないと動作が確認できません。でも自分のPCを疑似サーバー化すれば自宅で動作が確認できます。それに、よくわからないまま適当にCGIスクリプトをつくったり、改造したりすると、とんでもない事態が起きないとも限りません。自作のCGIを使おうと思ったら、まずは自宅でちゃんと動くのを確認してからプロバイダのサーバーにアップロードしましょう。自作のCGIを作のには、自分のPCを疑似サーバー化しなくてはいけません。
ちなみに疑似サーバー化にかかる費用は「ゼロ」です。なぜならフリーソフトを使うからです。
ここから先のお話は「windows」のみです。Macにも同じようなフリーソフトがあるらしいのですが、私がMacを全く知らないので、ここではお話しできません。ごめんなさいね。また、CGIを書くのに使う言語は、ここではperlのみです。
必要なソフトは。。。
AN HTTPD(AN HTTP Server Home Page) httpサーバーのソフトです
Pw32i316.exe(Perl for Win32 Download ) windows上で動くperl言語です。
です。
この2つをダウンロードしてきて、PCにインストールします。インストールと設定がうまくいくと、自分のPCのurlは
http://127.0.0.1/
になります。
ここから先は難しいです。この項目は「私もやってみたい!」と思った方がいらっしゃったら続けることにします。つづく、かな?(^_^;)
|