[←Back]   9. 配布されているCGIを設置するときは・・・  [Next→]

   9-1 はじめに・・・
CGIを使いたいという人はたくさんいると思いますが、CGIを自分で作ろうという人は、 あまりいないでしょうね。ほとんどの人は、Web上で公開されているフリーのCGIスクリプト をもらってきて設置すると思います。 なので、ここではCGIの設置方法について解説します。

・・・と、ここでチョットした注意なのですが、皆さんファイルの拡張子は表示する設定になっていますか? 試しに、テキストファイルを新規作成してください。ファイル名にxxx.txtのように拡張子 .txtが表示されていればOKです。 CGIを設置するときには、拡張子を変えることがあるので、拡張子を表示する設定にしておきましょう。

ちなみに設定の仕方ですが、Win98では
  1. マイコンピューターを開く
  2. メニューバーから「表示>フォルダオプション」を選択
  3. 「表示」をクリック
  4. 「登録されているファイルの拡張子は表示しない」のチェックをはずす
です。その他は・・・スイマセン。Winユーザなので分かりません m(_ _)m


   9-2 CGIの使える場所を探そう
まずは、CGIスクリプトを置く場所探しから始めましょう。 下の1〜3のように、いくつかの方法があります。

1.CGIが利用可能なプロバイダを選ぶ
いくつかのプロバイダでは、会員に無料でWebスペースをくれるところがあります。 この中でも、さらにCGIが利用可能のプロバイダを選んでしまおうというわけです。 CGIが利用可能かどうかは、そのプロバイダのホームページに行けば、だいたい載っています。

また、1つ1つ調べるのが面倒な方は、
OPENDOORShttp://opendoors.asahi-np.co.jp/prov/index.htm
のようなリンク集で探すことがオススメです。CGIにチェックを入れて検索してみてください。
「プロバイダ」なので、CGIが使えるかどうかだけでなく、 料金やアクセスポイントなどをよく考えて選んでくださいね♪

 ▼長所
・広告がつかない。
・無料サービスに比べるとサーバーは安定している

 ▼短所
・CGIを認めているところはあまり多くない。
・「プロバイダ」なので、アクセスポイントが近くにないとダメ。
・CGIを使いたいと思う頃には、プロバイダを決めてしまっている場合がほとんど。
・CGIを使うためだけにプロバイダを変えるのは面倒。しかもこの場合、HPの引っ越しが必要。

2.無料のスペースを探す
もうWebスペースを持っているんだけど、CGIは使えないんだ。 でも、CGIのためだけに別のお金がかかるのは嫌だなぁ〜〜 と言う人(つまり私みたいな人ですね♪)は、無料のスペースを探す方法があります。
無料スペースを探すには、「無料リンク集」などを使うのが良いでしょう。 私のオススメのリンク集は
無料サービスリンク集〜COOL'S FAVORITE〜http://www.postpetwonderland.com/cool/
です。ここの無料スペースリンク集で、「CGI可」という場所を探してください。

 ▼長所
・とにかく無料!

 ▼短所
・ほとんどの場合、広告の挿入が必要。
・有料サービスに比べると、サーバーは安定しない。
・あまりたくさん見つからない。見つかったとしても、募集は休止中の場合がある。
・CGIサーバーとして使うこと(CGIだけしか置かないこと)を認めていない場合が多い。

3.有料のスペースを探す
お金に余裕がある人は、有料のスペースを探すのが良いでしょう。 「お金が無い!」って人も、探してみれば500円/月くらいの場所がありますよ。
有料スペースを探すのも、やはりリンク集が良いですね。
私のオススメは
Server Estatehttp://kochi.wisnet.ne.jp/server-estate/
です。

 ▼長所
・広告の挿入が必要ない。
・サーバーは安定していることが多い。
・サポートがしっかりしている場合が多い。
・CGIサーバーとして使えるなら、HPの引っ越しが必要ない。

 ▼短所
・やっぱりお金がかかる。
・月の転送量が決められている場合がある。
・初期費用がかかったり、1年契約の場合があるので、気軽には申し込めない
・有料と言っても、良く落ちるサーバーはある(格安スペースは特に注意)


   9-3 欲しいCGIスクリプトを探そう
CGIを置く「場所」が見つかったら、今度は置く「モノ」を探しましょう♪ これにも、いくつかの方法があります。

1.CGIで有名なホームページに行く
なんとなくCGIスクリプトが欲しいという場合は、 とりあえず有名なサイトで探すのが良いでしょう。 CGIで有名になるということは、 それだけ素晴らしいスクリプトを作っているということなので、 スクリプトに対して信頼もできます。

2.CGI専用のリンク集を使う
「携帯でも見られる掲示板が欲しい」のように、欲しいCGIが決まっている場合は、 リンク集を使うことがオススメです。 リンク集を使うと、わざわざCGIを配布しているページを1つ1つ見る必要がないし、 場所によってはすぐにサンプルを見ることが出来ます。

3.ネットサーフィンをしながら探す
普通にネットサーフィンをしていると、「おっ、この掲示板いいな」とか思うことがあると思います。 こんな時は、画面の下部(上の場合もありますが)にある著作権表示をクリックしてください。 作者のホームページに行くことが出来ます。


   9-4 Perlのパスを設定をしよう
普通CGIスクリプトは圧縮して配布されているので、まずダウンロードしたファイルを解凍します。 そして、CGIファイル(拡張子が .cgi)になっているファイルをメモ帳などで開いてください。 すると、1行目に
#!/usr/local/bin/perl
という行がありませんか?
これがPerlのパスと呼ばれるものです。 このPerlのパスはサーバーによって違うのに、これがあっていないとCGIは動きません。 なので、自分で直す必要があります。

Perlのパスについては、サーバーのホームページに行けば、普通載っています。 CGIについて書かれている所や、Q&A等を探してみてください。 見つけたら、この1行目をそのままサーバーの指定通り書き直せばいいだけです。 ここで、「#」の前にスペースが入らないように注意してください。


   9-5 最低限の設定をしてアップロードしよう
Perlのパスの設定が終わったら、次に最低限の設定をしましょう。 CGI作者の方が、「必ず設定してください」と書いてある部分だけ、指示に従って書き換えます。 中には、何も変更しないでそのままアップロードしても使える設定になっているCGIもあるので、 その場合は変更の必要はありません。 ココで重要なのは、初心者の場合は必要以上に設定項目を変えないことです。

これは、もしエラーが起こったとき、設置法が悪かったのか、設定の際にミスをしたのか分からなく なってしまうからです。 ここはグッと我慢して、とりあえずアップロードしてみましょう。 一度動かした後でも、設定項目は変えられますよ♪

あと、よく「空のdata.log」を用意してください。と書いてある場合があります。 この場合は、まず空のdata.txtを作って、この拡張子を.txt→.logに変えればOKです。 (拡張子を表示する設定にしておくのはこのためです。)


次に、アップロードの説明です。 アップロードはいつも通りFTPソフトを使ってアップロードするのですが、いくつか注意点があります。
1.サーバーがCGIを許可しているディレクトリにアップロードする
サーバーのほうで、「CGIはここにアップロードしてください」のような指示があると思うので、それに従ってアップロードしてください。

2.CGIファイルはアスキーモードで転送する
ファイルの転送方法には「アスキーモード(テキストモード)」とバイナリモードがあるのですが、 CGIを転送するときには、アスキーモードで転送してください。 転送モードの切り換え方は、使っているFTPソフトの説明を参考にしてください。 ちなみに、FFFTPを使っている方は 「ファイル名で転送モードを切り換え」に設定しておけば、自動的に拡張子を識別して転送モードを切り換えてくれます。

3.ディレクトリの構成に注意する
簡単に言うと、「このCGIファイルとこのログファイルは、同じフォルダに入れる」 のようなものです。これを間違えるとエラーの原因になるので注意してください。
・・・まあ、ダウンロードした物を、そのままアップロードすればOKでしょう。


   9-6 パーミッションの変更をしよう。
パーミッションとは何か?というのは、8-3 パーミッションとは?を参考にしてください。

ただ、配布されているCGIの場合には、 どのファイルをどのパーミッションにすればよいかは書いてあります。 配布しているページやCGIファイルを探してみてください。 例えば、
   yybbs.cgi [755]
   yybbs.log [666]
   jcode.pl  [644]
[ ]内がパーミッション
と指定されたとします。そうしたら、次にパーミッションの変更画面を開きます。 これはFTPソフトによって違いますが、FFFTPの場合には「ファイル上で右クリック→属性変更」 を選択すればOKです。

上の例では、yybbs.cgiは3つの実行にチェックを入れて、パーミッションを755にします。
また、yybbs.logはグループとその他の「書き込み」にチェックを入れてパーミッションを666とします。

ちなみに、アップロードしたときの初期パーミッションは644なので、パーミッション644と指定されている場合には、 何も変更しないでOKです。


   9-7 時間がずれるんですけどぉ… 
掲示板を設置して、いざテスト投稿をしてみると、投稿時間がずれているという経験をした人もいると思います。 というわけで、その修正法です。

1) 1時間単位でずれている場合
これは、時差の設定がCGI作者がしたものと、サーバーのものがずれているためです。 CGIスクリプトには、次のような部分があると思います。(エディタの検索機能を使って探してください。
$ENV{'TZ'} = "JST-9";
これは、時差を日本時間(-9時間)にあわせていると言う意味なので、
$ENV{'TZ'} = "JST-10";
のように変えれば1時間進みます。

2) 1分単位、1秒単位でずれている場合
この場合には、サーバーの時計がずれている可能性が高いです。 時間を修正するようメールやサポート掲示板でお願いするのが良いと思いますが、それが嫌な人は次のように修正してください。

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
まず、スクリプト中から、上のような記述をさがします。3分進めたい時には、次のように修正します。
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time + 3 * 60);
このように、(time±時間)としてあげればOKです。 ここで3分ずらすのに「3 * 60」としているのは、この「時間」は秒単位で指定するためです。 つまり、「2 * 60 * 60」とすれば、2時間ずらすことができます。1時間単位でずれていても $ENV{'TZ'} = "JST-9";のような記述が見つからない場合は、この方法を使ってください。


   9-8 文字化けするんですけどぉ… 
掲示板を設置して、いざテスト投稿をしてみると、投稿時間がずれているという経験をした人もいると思います。 というわけで、その修正法です。

1) ページ全体が文字化けしている場合
CGIの文字コードは、シフトJISかEUCで書かれることが多いのですが、 これとブラウザが解釈した文字コードが違った可能性が高いです。 CGIが生成したHTMLのソースを見てみましょう。ヘッダー部分に

<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> (シフトJISの場合)
<META http-equiv="Content-Type" content="text/html; charset=EUC-jp"> (EUCの場合)

という、文字コード指定がありますか?
無い場合には追加してあげましょう…と言いたいのですが、CGI作者によってヘッダー部分の書き方が違うので 「こうしてください」と書くことはできないんですよね。 どうしてもムリだったら、サポート掲示板等で質問することをオススメします。

2) 部分的に文字化けしている場合
文字コードがシフトJISの場合、「申、噂、表、十」のような特定の文字を使うと文字化けをしてしまいます。 文字化けを防ぐには、これらの文字の後ろにエスケープ文字「\」をつける必要があります。

例えば、表示するの場合
print "表示する"; → print "表\示する";
このように修正すれば文字化けは解消されます。

3) 半角カナが使われている場合
こればっかりは、投稿者に半角カナを入力しないよう、お願いするしかないです…。

[←Back]   BACK   [Next→]