サポートトップ » GMOクラウド 専用サーバー トップ » Plesk9.5
Plesk搭載サーバーでCGIを稼動させるまでの設定方法についてご案内します。非常にシンプルなCGIをサンプルとして用いていますが、複数の処理・ファイルが絡む場合などは別途設定が必要になることがあります。詳細については各種CGIの開発元・配布元が公開しているヘルプガイドやマニュアルをご参照ください。
Plesk上で設定したドメインでCGIを利用するためには、ドメイン毎に設定を行う必要があります。
設定は下記項目より行います。
ログイン>ドメイン>該当ドメイン>Webサイトの[Webホスティング設定]
サービスの [CGI対応]にチェックを入れ、[OK]ボタンを押してください。
Pleskでは、デフォルト設定としてCGI専用ディレクトリである [/cgi-bin]ディレクトリが用意されており、その他ディレクトリではCGIの実行はできなくなっています。[/cgi-bin]へFTPなどを利用してCGIファイルをアップロードし、正常に表示されるかどうかをご確認ください。正常に表示されない場合には、パーミッション設定やCGIの記述内容をご確認ください。
※[/cgi-bin]以外のディレクトリでCGIを利用するには、下記「ドキュメントルート(/httpdocs)以下でCGIを利用するには」をご確認ください。
/home/httpd/vhosts/ドメイン名/cgi-bin
※サンプルとして、下記記述をしたCGIファイルをアップードし稼動確認をおこなっていますが、あくまでサンプルとして記載しているものであり、該当記述でCGIが正常動作することを保障するものではありませんのでご容赦ください。
ファイル名 | sample.cgi |
---|---|
パーミッション設定 | 755 |
ファイル転送モード | アスキーモード |
所有者 | 該当ドメインのFTPログイン名 |
所有グループ | psacln |
CGIファイル記述内容 | #!/usr/bin/perl print "Content-type: text/html\n"; print "\n"; print "'<html>\n"; print "<head>\n"; print "<title>テスト\n"; print "</head>\n"; print "<body bgcolor=\"#ffcccc\">\n"; print "CGIテスト\n"; print "</body>\n"; print "</html>\n"; |
ドキュメントルート(/httpdocs)以下でCGIを実行したい場合には、予め[.htaccess]ファイルを設置する必要があります。
以下内容の[.htaccess]ファイルをテキストエディタ等で作成し、[/httpdocs]へ設置してください。
-------------------------------ここから-------------------------------------------
AddHandler cgi-script .cgi (必要に応じて.plを追加してください)
Options ExecCGI
-------------------------------ここまで-------------------------------------------
/home/httpd/vhosts/ドメイン名/httpdocs
設置後、ドキュメントルート(/httpdocs)以下にCGIファイルをアップし、正常に表示されるかご確認ください。
CGIが正常に動作しない場合には、下記をご確認ください。
パーミッションの確認
CGIを実行する場合は、ファイルのパーミッション(権限)に注意する必要があります。HTMLファイル(拡張子が.htmlや.htm)や画像ファイル(拡張子が.gif や .jpg)などの一般的なファイルのパーミッションは 644 ですが、CGIで扱うファイルは以下のようにパーミッションを指定する必要があります。
【パーミッション設定】
.cgi などの実行するプログラムファイル :755
.dat などの書き込みを行うデータファイル:666また、パーミッションはファイルだけではなくディレクトリに対しても決まっていて、一般的なディレクトリのパーミッションは 755になります。もし、パーミッションが適切ではない場合、 以下のようにエラー(500 Internal ServerError)が発生し、正しくCGIを実行できませんので、 そのような状況の場合は適切にパーミッションを設定してください。
![]()
![]()
※パーミッションの詳細に関しましては弊社ではサポートいたしかねる場合がございますので、 CGI関連の書籍やWebサイトにてご確認ください。
Perl、sendmail のパス
Perlで作成されたCGIを設置する場合、Perlのパスを正しく指定する必要があります。また、メール送信を行うCGIの場合、sendmailプログラムのパスも正しく指定する必要があります。以下のパスがPleskでの perl、及びsendmailのパスになりますので、CGIを設置する場合は以下のパスを指定してください。
【パス】
Perl : /usr/bin/perl
sendmail : /usr/sbin/sendmail
PHP : /usr/bin/php
サブドメイン、WebユーザーでCGIを実行する場合にも、上記とは別に、それぞれ設定を行う必要があります。
サブドメインの場合
下記項目の、サービス内の[CGI対応]にチェックを入れ、[OK]ボタンを押してください。
ログイン>ドメイン>該当ドメイン>Webサイトの[サブドメイン]>該当のサブドメイン
![]()
![]()
デフォルトの設定では、サブドメインのCGI実行ディレクトリは、以下となっております。上記設定後、[/cgi-bin]ディレクトリへCGIファイルをアップロードし、正常に表示されるかをご確認ください。
/home/httpd/vhosts/ドメイン名/subdomains/サブドメイン名/cgi-bin/
[/cgi-bin]以外でCGIを実行する場合には、サブドメインのドキュメントルート(/httpdocs)に上記[.htaccess]ファイルを設置してください。
/home/httpd/vhosts/ドメイン名/subdomains/サブドメイン名/httpdocs
Webユーザーの場合
WebユーザにCGIの実行を許可するには、CGIの下記項目の[プリファレンス]から設定します。
ログイン>ドメイン>該当ドメイン名>Webサイトの[Webユーザ]
※事前に ログイン>ドメイン>該当ドメイン>Webサイトの[Webホスティング設定] にてドメインにCGI実行を許可する設定を行う必要があります。
![]()
![]()
[Webユーザにスクリプトの使用を許可する]にチェックを入れ[OK]をクリックします。
![]()
![]()
該当のWebユーザを選択し、プロパティーにある[PHP対応][CGI対応][Perlサポート]から希望するものにチェックを入れ[OK]をクリックします。
![]()
![]()
上記設定後、[/cgi-bin]ディレクトリへCGIファイルをアップロードし、正常に表示されるかをご確認ください。