- Home
- CGIサポート情報について(directadmin)
CGIサポート情報について(directadmin)
LDプラン CGIサポート情報
■suEXECについて
LinuxサーバはsuEXECをサポートしています。
suEXECでは、CGIスクリプトを、Webサーバの権限ではなく各ホームページのコンテンツを管理するユーザ(FTPユーザと同じと考えて頂いてかまいません。)の権限で実行します。
そのため、CGIスクリプトの動作設定は、一般のCGIとはやや異なります。以下の説明にしたがって設定してください。
■CGIスクリプトの格納場所
CGIスクリプトは、以下のいずれかにおくことができます。
- public_html/cgi-binディレクトリ
- public_html/cgi-bin以外の任意のサブディレクトリ
public_html直下ではCGIスクリプトは動作いたしません。必ずサブディレクトリ内にスクリプトをおいてください。
cgi-binディレクトリに置いたCGIスクリプトは .htaccess の設定がなくてもそのまま動作します。
他のサブディレクトリにおいた場合は .htaccess での設定が必要です(後述)
cgi-binディレクトリに置いたファイルはすべてCGIスクリプトとみなされます。
CGIスクリプトとデータファイル以外のファイル(HTMLファイル、画像ファイルなど)はcgi-binディレクトリに置かないようにしてください。
■パーミッション
以下を推奨します。
CGIスクリプトを格納したディレクトリ | 705 |
---|---|
CGIスクリプト | 700 |
データファイルを格納したディレクトリ | 700 |
データファイル | 600 |
CGIスクリプト、およびCGIスクリプトを格納したディレクトリに所有者以外の書き込み権限が設定されている(707,777など)と動作しません。
データファイルは一般に「Webサーバから書込みできるパーミッション(666、606など)」が指定されますが、suEXEC下では不要です。またおすすめしません。
■CGIの動作設定
cgi-binディレクトリ以外のサブディレクトリにCGIスクリプトをおく場合は、そのディレクトリに「.htaccess」ファイルを作成して下さい。
記述例:
Options +ExecCGI |
Optionsは必須です。
AddHandlerは設定されています。スクリプトの拡張子が.cgiのみであれば、AddHandlerは記述しなくてかまいません。
「AddType text/x-httpd-cgi」は使用できません。
■public_htmlディレクトリの絶対パス
public_htmlディレクトリのサーバ上の絶対パスは以下のとおりです。CGIスクリプト中でファイルのパス指定をする場合の参考にしてください。
/home/[ユーザ名]/domains/[ドメイン名]/public_html |
- [ユーザ名]:FTPユーザ名
- [ドメイン名]:ホームページのドメイン名(www.を省く)
■スクリプト言語ごとの実行環境
Perl
Perlコマンドのパス | /usr/bin/perl または /usr/local/bin/perl |
---|
■CGIスクリプトから呼び出し可能なコマンド
以下のコマンドを、CGIスクリプトから利用することができます。
コマンド | パス |
---|---|
NKF | /usr/bin/nkf または /usr/local/bin/nkf |
sendmail | /usr/sbin/sendmail または /usr/lib/sendmail |
sendmailコマンドは、-tオプション指定を他のコマンドパラメータと同時に指定するとエラーとなります。