1.CGI利用の準備
 2.Perl、sendmailのパス、バージョン
 3.パーミッション(権限)
 4.パーミッションの設定

CGI利用の準備

Pleskでは、デフォルト設定としてCGI専用ディレクトリである /cgi-bin ディレクトリが用意されていて、 その他のディレクトリではCGIの実行はできなくなっています。/cgi-bin ディレクトリへCGIを設置することでCGIを動作させることができますが、/cgi-bin ディレクトリ以外のどのディレクトリでもCGIを設置することができる設定のほうが一般的ですので、初めに、設定を変更します。

【補足】

サブホストドメインの場合のCGI専用ディレクトリは、
/var/www/vhosts/お客様ドメイン/subdomains/サブホスト管理者ユーザID/www/cgi-bin
になります。
例えばサブホスト管理者ユーザIDが「subhost」である場合は、/var/www/vhosts/お客様ドメイン/subdomains/subhost/www/cgi-bin となります。

以下の内容が記述された 「.htaccess」(先頭のドットを忘れずに!) というファイルを作成し、 ドキュメントルート(/httpdocs)へASCIIモードでアップロードします。この作業を行うことで、ドキュメントルート(/httpdocs)以下のどのディレクトリでもCGIを実行することができます。

記述内容/

Options +ExecCGI
AddHandler cgi-script .cgi

CGI用.htaccess
CGI用.htaccessです。htaccessファイルをダウンロードしてアップする場合、htaccessの前に . をつけてお使いください。
CGI用.htaccessファイル

Perl、sendmailのパス、バージョン

Perlで作成されたCGIを設置する場合、Perlのパスを正しく指定する必要があります。 また、メール送信を行うCGIの場合、sendmailプログラムのパスも正しく指定する必要があります。以下のパスがPleskでのPerl、及びsendmailのパスになりますので、 ご自身で作成されたCGIや配布されているCGIを設置する場合は以下のパスを指定してください。

Perl : /usr/local/bin/perl (もしくは /usr/bin/perl)
sendmail : /usr/sbin/sendmail
PHP:/usr/bin/php
UUENCODE:/usr/bin/uuencode

パーミッション(権限)

CGIを実行する場合は、ファイルのパーミッション(アクセス権限)に注意する必要があります。
HTMLファイル(拡張子が .html や .htm)や画像ファイル(拡張子が .gif や .jpg)などの一般的なファイルのパーミッションは 644 ですが、CGIで扱うファイルは以下のようにパーミッションを指定する必要があります。

.cgi などの実行するプログラムファイル755
.dat などの書き込みを行うデータファイル666

また、パーミッションはファイルだけではなくディレクトリに対しても決まっていて、一般的なディレクトリのパーミッションは 755 になります。

パーミッションの設定に誤りがある場合、 エラーが発生し、正しくCGIを実行できません。
そのような状況の場合は適切にパーミッションを設定してください。

※パーミッションの詳細に関しましては弊社ではサポートいたしかねる場合がございますので、 CGI関連の書籍やWebサイトにてご確認ください。

パーミッションの設定

パーミッションの設定は、FTPクライアントソフトにて行います。 以下は「FFFTP」 での設定例です。 その他のFTPクライアントソフトの設定方法に関しては、各ソフトウェアのマニュアルやヘルプをご確認ください。

FFFTPを起動してサーバーに接続し、パーミッションを変更するファイルを選択します。

上部メニューの「コマンド」をクリックして、「属性変更」を選択します。

属性の変更ウィンドウが開きますので、「現在の属性」に変更したいパーミッションの数値を入力し、「OK」をクリックしてください。

パーミッション(アクセス権限)とは

Linux上で作成されるディレクトリやファイルには、それを所有するユーザー(所有者)が設定できます。所有者は、そのファイルに対するアクセス権などを管理する権限をもっています。
一般的なhtmlファイルの場合、特にパーミッションの設定は必要ありませんが、 以下のような場合に設定が必要となります。掲示板やアクセスカウンターなどの設置の際には必ず必要となります。

  • CGIを設置する時
  • .htaccessを設置する時
  • 他人にダウンロードされては困るファイルを設置する時