買い物かご 掲示板 メール DB 利用規定 FAQ サポートBBS


次(パーミッション)
前(相対パスと絶対パス)
最初に知るべきこと
CGIことはじめ
CGI設置ノウハウ
Basic Top
Make CGI

Home



設定時の基礎知識 --CGIことはじめ--

■欠かせないもの

Perl

perlによるCGIが動くために必要なプログラムです。スクリプト1行目でこのプログラムへのパスを設定しています。

jcode.pl

CGIスクリプトで日本語を使うときに必要な「日本語コード変換ライブラリ」です。当サイトのスクリプトでは常に同梱されています。

Sendmail

メールを送信するために必要なプログラムです。たまに使えないサーバーもありますので注意してください。


スクリプト1行目

スクリプト1行目の

#!/usr/local/bin/perl

これはperlがインストールされている場所へのパスです。

先頭の「#!」を消さないように。またスペースやタブを入れないように。

WebサーバーのほとんどがUNIXを利用しています。
/usr/local/bin/perl
は、Windowsでいえば

「C:\usr\local\bin\perl」

となりますね。ただ、UNIXにはドライブ(CドライブとかDドライブとか)の概念はありません。何台のハードディスクを使っていようが、パスの記述は変わりません。

さて、perlへのパスですが、プロバイダやレンタルサーバー業者によって異なることがあります。
一般的には・・・

  • /usr/local/bin/perl
  • /usr/bin/perl/

が使われます。さらに、一部のサーバーでは、まったく異なるパス名になっていることもあるようです。

当サイトのCGIスクリプトでは、「/usr/local/bin/perl」を使っています。きちんと初期設定をして、パーミッションも指定したにもかかわらず動作しない場合は、ご利用のプロバイダやレンタルサーバー業者のヘルプでperlへのパスを確認してください。

注意!

パス先頭の「/」を消さないこと。先頭の「/」がないと相対パスとなり、スクリプトが動作しません。


■絶対パス

相対パスが、自分のサイト内のファイルを指定するために使われるのに対し、絶対パスは、他のユーザーのホームページを指定したり、自分のサイトでも、サーバーが異なる場合に使われます。

もし、あなたのホームページに、Web寺子屋へのリンクを貼るなら、

http://azumi.coco.co.jp/
のように、「http://」から始まるURLのフルパスを記述します。
これが絶対パスです。

絶対パスには、もう一つの意味があります。

CGIスクリプトの1行目に記述されている、
/usr/local/bin/perl
とか、
/usr/lib/sendmail
のように、パスの先頭が「/」で始まっている場合です。

これは、同じ絶対パスでも、あなたのホームページの入っているサーバーコンピュータ内の特定のファイルへのパスを意味しています。これらのファイルは、あなたを含めたすべてのユーザーで共有して使用しているプログラムへのパスとなります。

WindowsならC:\usr\lib\sendmailとなるでしょうか?

二つ目の絶対パスについて説明すると長くなりますので、ここでは割愛します。


■jcode.pl

jcode.plは「日本語コード変換ライブラリ」とも呼ばれ、CGIで日本語を使うときに利用されます。一般的に、jcode.plがないとCGIは使えないと思ってください。

(もちろん、日本語をまったく使わないなら不要ですが・・・)

jcode.plへのパス

CGIスクリプトの初期設定には、必ずjcode.plへのパスを指定する個所がありますね。

require './jcode.pl';

これは、設置するCGIスクリプトと同じディレクトリ(フォルダ)にjcode.plがあるときの設定です。

jcode.plが別の場所にあるときは、その場所を指定する必要があります。

jcode.plの使いまわし

jcode.plは複数のスクリプトで共有できます。スクリプトごとに用意する必要はありません。

jcode.plを共有する場合は、各CGIスクリプトの

require './jcode.pl';


の設定に注意しましょう。一般的には、cgiスクリプトを設置する「cgi-bin」ディレクトリ(フォルダ)内にjcode.plを置きます。

あなたが、「cgi-bin」の中に「bbs」というディレクトリを作成し、その中に掲示板スクリプトをアップロードしたとします。jcode.plは「cgi-bin」の直下にあるとします。

この場合のjcode.plへのバスは、

require '../jcode.pl';

となります。「../」は一つ上のディレクトリに移動せよという意味です。

プロバイダやレンタルサーバーで用意している場合

サーバー側でjcode.plを用意していることがあります。プロバイダやレンタルサーバーのヘルプを確認してみましょう。

サーバー側で用意している場合は、

require 'jcode.pl';

で動作するはずです。

jcode.plのパーミッション

jcode.plは読みこむだけなので、「644」でOK。パーミッションの変更は不要です。(プロバイダやレンタルサーバーによっては「604」と指定できることもあります。)


■sendmail

CGIからメールを送信する場合に使われます。CGIスクリプトの初期設定で、

# sendmailのパス
$sendmail = '/usr/lib/sendmail';

とあったら、sendmailへのパスを必ず記述します。
通常は上記の設定でOKなのですが、プロバイダやレンタルサーバーにより異なることがあります。(/usr/sbin/sendmailとか。)

どうしてもメールが送信されない場合は確認しましょう。


Web寺子屋 OGIPOGI E-mail:info@web-terakoya.net
Copyright© 2000-2001 OGIPOGI All Rights Reserved.