「CGI(Common Gateway Interface)」とは、WEBページを動的に表示させるための仕組みのことです。
CGIの言語はPerl・Ruby・C言語・シェルスクリプト・Pythonに対応しています。
/home ディレクトリ内にCGIを置く場合、CGIの実行ファイル(プログラムファイル)の拡張子を
.cgi にする必要があります。.cgi 以外の拡張子のファイルはCGIとして実行されません。
/cgi-bin・/cgi-def ディレクトリ内では拡張子にかかわらずすべてのファイルがCGIの実行ファイルとして扱われますので、拡張子に制限はありません。
|
各プログラムのパスは以下のようになっています。
|
プログラム |
バージョン |
パス |
perl |
5.10.1 |
/usr/bin/perl /usr/local/bin/perl |
Ruby |
2.0.0 |
/usr/bin/ruby |
Python |
2.6.6 |
/usr/bin/python |
PHP |
5.1.6/5.3.3/5.6.20/7.2.28/7.4.15(CGIモード) 5.6.20(モジュールモード) |
/usr/local/bin/php |
|
Ruby、Pythonで作成したCGIを/home・/ssl-home ディレクトリにおいてそれぞれの拡張子(.rb、.py)
で動作させたい場合は、
AddHandler cgi-script .rb
AddHandler cgi-script .py
を記述した.htaccess を設置してください。
サーバーへファイルをアップロードする場合はFTPソフトの転送モードをアスキーモード(テキストモード)に設定して下さい。
アスキーモードで転送しない場合、正しく動作しなくなることがあります。
C言語を使用したCGIの場合は、あらかじめLinux用にコンパイルしたバイナリファイルをアップロードして下さい。
サーバーへファイルを アップロードする場合はFTPソフトの転送モードをバイナリモードに設定して下さい。 バイナリモードで転送しない場合、正しく動作しなくなることがあります。
シェルスクリプトで記述したCGIスクリプトの1行目には#!/bin/shと記述して下さい。
サーバーへファイルをアップロードする場合はFTPソフトの転送モードをアスキーモード(テキストモード)に設定して下さい。アスキーモードで転送しない場合、正しく動作しなくなることがあります。
なお、無限ループなどによりサーバーが高負荷状態に陥ることを防ぐため、1回の動作時間が一定時間以上動作しているCGIは自動的に終了される場合があります。
サーバーが高負荷な状態に陥る事を防ぐための対処として、メモリの使用量・CPUの使用時間に関しても同様に制限が設けられています。
また、CGIのなかにはシステムの/tmpディレクトリにテンポラリーファイルを作成する挙動をするものがあります。
/tmpディレクトリに設置できるファイルは20MBの制限が設けられています。
こちらの制限を越えるファイルは設置することができませんので、ご注意ください。 |
|