虹ネット
トップ サービス一覧 虹ネットワーク 会員様ページ



  CGI作成時の注意事項

CGIはすべて自分の ディレクトリ内に記述してください。
なお、CGIは原則としてPerlまたはshで記述されたものに限らせていただきます。
また、UnixやPerl言語に関して十分な知識をお持ちでCGIの内容や動作に責任の持てる方のみ
を対象とさせていただきます。

CGIのプログラム(xxxx.cgi)は必ず、ASCIIモード (MACの場合はTEXT-RAWDATAモード)で転送してください。
そうでないと、改行文字の変換が正しく行われないため、正常に動作いたしません。

CGI作成にあたってサーバ側に用意されているファイルのパスは、
/bin/sh
/usr/local/bin/perl (注Perl5 です)
/usr/local/bin/nkf
/usr/lib/sendmail

以下のライブラリファイルは標準でサーバ側に用意されています。
/usr/lib/jcode.pl
/usr/lib/jcodeLE.pl
/usr/lib/jcode_sj.pl
/usr/lib/cgi-lib.pl
/usr/lib/cgiparse.pl
/usr/lib/imgsize.pl
/usr/lib/gifcat.pl

使用する漢字コードについても注意してください。
ほとんどのブラウザは同じページに異なった漢字コードが混在している場合正しく日本語を表示できません。
(S-JISで書かれたlog.htmlにCGIでJISの文をアペンドした場合など)
当社のサーバはUNIX(FreeBSD)で、Apacheを使用しております。従いまして漢字コードは原則としてEUCコードです。
そのため、プログラム内にEUC以外の漢字コードで記述さ れた場合 まれに誤動作する場合があります。
また、/usr/lib/sendmail
に内容を渡すようなフォーム処理CGIなどでは、渡す文章の漢字コードはJISでなければ相手のメーラによっては文字化けします。
(sendmail側では文字コードの変換は行いません)
参考のためそれぞれのシステムで使用される漢字コードと改行文字について書いてお きます。
Windows--- S-JIS CRLF(0Dh,0Ah) Mac------- JIS(S-JIS) CR(0Dh) UNIX------ EUC LF(0Ah)

SSIは exec コマンド以外でしたらご利用いただけます。
その場合SSIを 含むファイルの拡張子は必ず「.shtml」としてください。

<参考>
CGIの中で参照するファイルには2種類あります。
1つめは、CGIプログラム(xxx.cgi)が直接参照するファイルです。
これには、requireコマンドで参照するもの、データを読み書き
するもの、出力するhtmlの定型部分参照するためのもの、
ロックファイルとして使用するものなどがあります。
2つめは、CGIが動作した結果として出力したhtmlをwwwサーバプログラム
が解釈実行する段階で間接的に参照するものです。

前者のファイルは、あなたのディレクトリの下にあります。貴方のディレクトリの
システムでの位置(パス)は /sd2/myhome/(あなたのID)/ですから、
例えばxxx.datというファイルがあなたのディレクトリの中のcgi-binという
フォルダーにある場合それはCGIから見ると
/sd2/myhome/(あなたのID)/cgi-bin/xxx.dat という位置にあることに
なります。したがって絶対パスを要求するようなCGIのなかではこのような種類の
ファイルを指定する場合はこの様に指定しなければなりません。
しかしほとんどのファイルは、自分の位置(./)からの相対パスで指定できます。
後者のファイルは間接的にwwwサーバプログラムが参照するわけ
ですが、wwwサーバプログラムは実際のファイルシステムとは別に
ファイルシステム上の特定の位置をサーバルートとみなす特別のファイル
参照を行います。いわゆるURLと呼ばれるものはこのタイプで実際のファイ
ルシステムでの位置とは異なっています。

先にも述べましたがあなたのHPのデータはファイルシステムでは
 /sd2/myhome/(あなたのID)/ 以下にあります
がこれがwwwサーバから見たURLでは
/home/(あなたのID)/ にあるように見えるわけです。
したがってあなたのディレクトリのcgi-binフォルダーの中にある
xxxxx.html というファイルはwwwサーバが参照する場合は
/home/cgi-bin/xxxxx.html と記述されていなければいけません。がこれもほとんどの場合自分の位置(./)からの相対パスで指定できます。



Copyright © 2003 Niji-Net, All rights reserved.