インターネット活用塾 2.CGI


CGIの設定・設置手順

    CGIは容易に修正できますが、独自に作成したCGIは正常に動作するかどうかのテストが必要です。
いきなりサーバーで実行すると、サーバーがダウンしてしまう可能性がありますので、充分テストを行った後、サーバーで実行します。

テストはLOCAL(PC)で行いますが、この方法は下記ページをご覧願います。
・サーバーソフト(ANHTTPD)
・Perlのインストール
・Local(PC)でCGIを動作させる

以下はインターネット上で販売されているCGI又は上記のLOCALでの動作確認が出来たCGIの設定・設置方法です。
フリーソフトはテスト版であったり、趣味で改造・開発したソフトも多く、動作の保障はございません。
最悪の場合、サーバー内の情報が漏れたり、サーバーダウン、サーバー内のデータが破損、ホームページが書き換えられる可能性もあります。
そのため、フリーソフトの場合はLOCALでテストするなど、充分に動作を確認してから使用することをお勧めいたします。

1.CGIの設定
 サーバー毎にPerlのインストール場所が異なります。
 CGIの1行目にPerlへのパスを記述するようになっていますので、各CGIファイルの1行目をサーバーに合わせて書き換える必要があります。
 書き換えはWindowsのメモ帳又はエディタでCGIファイルを開き設定します。
(1)Perlへのパスの設定
 CGIファイルの1行目にPerlへのパスが記述されています。
 このPerlへのパスはサーバーによって異なりますが、大半は
 #!/usr/bin/perl
 又は
 #!/usr/local/bin/perl
 になっています。

 CGIの一行目がサーバーのパスと一致していなければCGIは動作しません。
 異なっている場合は、修正して上書き保存します。
(2)その他の設定
 CGI内にパスワードやメールアドレス、URLほか、CGIの処理過程で必要な情報を設定する場合があります。
 設定の必要の無いCGIもありますが、設定が必要な場合はWindowsのメモ帳等で修正します。

   2.サーバーへ転送
 FTPソフトを使用し、サーバー内にCGIファイル等を転送します。
通常、転送するCGI用のディレクトリを予め作成しておき、作成したディレクトリ内にFTPで転送します。
ディレクトリを作成しないで転送すると、他のCGIが使用できなくなる場合があります。

(1)CGIの動作するディレクトリに転送する
CGIの動作するディレクトリはサーバーによって異なります。
動作するディレクトリを確認し、FTPで転送します。
設置するCGIの説明どおりに転送し、転送後のディレクトリ構成に注意が必要です。
(2)画像やHTMLページが表示できるディレクトリを確認
●CGIが動作するディレクトリと画像やHTMLを入れるディレクトリが異なる場合
CGIが動作するディレクトリ(「cgi-bin」「cgi-local」など)とホームページや画像を入れるディレクトリ(「home」「web」「public」など)が異なるサーバーの場合、CGIが動作するディレクトリに画像等を入れることができません。(入れても表示出来ません。)

 このようなサーバーでは、画像やHTMLページはサーバーの指示どおりに「home」等に転送します。
CGIと別のディレクトリに画像等を転送しますので、CGIから画像までのパスを指定する必要があります。
CGIファイル内で設定したり、管理画面から画像やHTMLの入っているディレクトリを設定し、CGIで使用可能にします。

●どこに入れても良い場合(CGIが動作するディレクトリと画像やHTMLを入れるディレクトリが同じ場合)
CGIやデータファイルはどこに転送しても構いませんが、このようなサーバーの場合、データファイルも閲覧可能になってしまいます。
データファイル内にパスワードや個人情報を保存する場合、ベーシック認証などでアクセス制限を行う必要があります。

(3)SSLサーバーで実行する場合
ブラウザとサーバー間のパラメータを暗号化して送信する場合、SSLサーバーにCGIを設置する必要があります。
SSLサーバーでCGIを実行させる場合、CGIが使用する画像等は同じSSLサーバー内に設置し、画像を相対パスで指定する必要があります。

3.パーミッション(アクセス権)の設定
(1)パーミッションとは
 サーバー内の各ファイルは誰が閲覧、書込み、実行できるかを設定できるようになっています。
本人、グループ、他人別に、閲覧(R)、書込み(W)、実行(X)の権限を与えます。
実行権が与えられていなければCGIを動作させることは出来ません。また、誰に実行権を与えるかによって実行できるかが決まります。

この本人、グループ、他人は一般的な言葉ではなく、サーバー上での判断になりますので、同じようにブラウザから閲覧する場合であっても、閲覧する人が本人であったり、URLの転送設定などがあると他人になるなど、サーバー環境によって設定が異なります。

また、パーミッションは数字で表す場合も多いです。
各数値は下の表の数値の合計になります。
本人 グループ 他人
閲覧(R) 4 4 4
書込み(W) 2 2 2
実行(X) 1 1 1

「アクセス権を700に」という場合、先頭から本人、グループ、他人のアクセス権を示しており、本人は「7」、グループと他人は「0」になりますので、本人に閲覧(4)書込み(2)実行(1)を与え(4+2+1=7に設定し)、グループと他人には全ての権限を無くします。
4なら閲覧のみ、5なら閲覧と実行、6なら閲覧と書込み・・・というように、4、2と1の組み合わせにより数値で判断することが出来ます。
(2)CGIとデータファイルのアクセス権を設定する
CGIファイル、データファイル及びディレクトリのアクセス権を設定します。
アクセス権をどのように設定すれば良いかは、CGIの動作とサーバー環境によって異なります。
そのため、CGIの説明で「700に」と書かれていても「755」でなければ動作しない場合があります。

CGIファイルには実行権を与える必要がありますので、700、755、757などに設定します。
データファイルは600、644、646に
ディレクトリは755、757、777などに設定します。
CGI全体が入っているディレクトリのアクセス権を変更しなければ正常に動作しない場合もありますので、全体の入っているディレクトリのアクセス権にも注意が必要です。(書込みが出来ない場合など)



© Copy Right 2001 Chama.ne.jp