CGIプログラムの使い方
CGIは自由に使えるようになっていますが、間違った設置方法やパーミッション設定などでは動作しませんので下記を参照に正しく設定してください。
ファイル拡張子 |
***.cgi
|
パーミッション |
755(又は rwxr-xr-x) |
.htaccess ファイル |
不要 |
※ パーミッションについて、CGI付属の説明書で 777 (rwxrwxrwx)と指定されているものがありますが、弊社のサーバでは
suexec という機能により 755 (rwxr-xr-x)の設定で安全にCGIを動作させることができます。(777の設定はセキュリティ上危険なため、これを回避できるようになっています)
|
パーミッションはFTPソフトで設定するか、TELNETで接続して chmod コマンドを使って設定してください。(chmodについての詳細)
CGIファイルの改行コードはUNIXの形式(LFのみ)になっている必要があります。
WindowsやMacintoshで編集されたファイルはあらかじめ改行コードを変更してから転送するか、
FTPソフトの設定でアスキーモードで転送するようにしてください。(fetchなどの自動判別は失敗することがあります)
多数のチャットCGIなどを置くにはあまり向いていません。(禁止ではありませんが
BUSY メッセージが比較的多く出るようになることがあります)
フリーソフトのCGIなど、個々のソフトウェアについては製造元へお問い合わせください。弊社へお問い合わせいただいてもお答えしかねます。
CGIの作成時には、できるだけプログラムを最適化して、処理が早くなるように作ってください。
極端に動作の重いCGIは動作途中に異常終了を起すことがありますのでご注意ください。
各種コマンドのパス
perl
(バージョン5) |
/usr/local/bin/perl
又は /usr/bin/perl |
sh |
/bin/sh |
csh |
/bin/csh |
Sendmail |
/usr/sbin/sendmail |
gzip |
/usr/bin/gzip |
nkf |
/usr/local/bin/nkf |
uuencode
uudecode |
/usr/bin/uuencode
/usr/bin/uudecode |
この他にも多数のコマンドがありますが、コマンドのパスはTELNETで接続し
which コマンド
と入力すれば自動的に検索され表示されます。
ワンポイント
- CGIを設置したが、「CGI permission/Execute Error」というエラーが出る
CGIのファイルかそのディレクトリのパーミッションが正しくありません。
FTPソフトやTELNET接続の「chmod」コマンドにより、パーミッションを修正してください。
- CGIを設置したが、「Internal Server Error」というエラーが出る
CGI自体のエラーです。パーミッションが「755」になっているか確認してください。
また、 CGIプログラムの文法ミスや文字コード、必要なファイルなどを確認してください。
- アクセスすると、「Service Temporarily Unavailable」又は「CGI Execute BUSY!!」というエラーが出る
プロセスが立ちすぎています。TELNETでが動作不良を起しているCGIがないかご確認ください。
動作不良を起こしたCGIの終了方法は下記ページに解説しております。ご参照ください。
→ 動作不良をおこしたCGIの強制終了
- 掲示板(チャット)のファイルロック機構は flock と link(又はopen)のどちらが良いか?
flockはファイルロック専用の関数なのでこちらが確実です。 linkなどは疑似的なファイルロックに使えるというだけで、動作不良の原因となります。
一部のCGIでは疑似的ロックしか使えないものがありますが、アクセスが多いサイトでは頻繁に動作不良を起こす原因となりますのでご注意ください。
|