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
AddHandler cgi-script .cgi .pl

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
バージョン 5.8.5

■CGIスクリプトから呼び出し可能なコマンド

以下のコマンドを、CGIスクリプトから利用することができます。

コマンド パス
NKF /usr/bin/nkf または /usr/local/bin/nkf
sendmail /usr/sbin/sendmail または /usr/lib/sendmail

sendmailコマンドは、-tオプション指定を他のコマンドパラメータと同時に指定するとエラーとなります。

ページ上部へ戻る