サービスご利用中のお客さま

VPSならラピッドサイト。VPS(仮想専用サーバー)販売14年の実績!

01) CGI/SSI利用の準備・スクリプトのパス

RS-1xシリーズ、,RSXシリーズ、スマートシリーズ(S100を除く)では、お客さまでご用意されたCGIスクリプト(Perl,PHP, Python)の動作が可能です。ここではPerl言語で記述されたCGIスクリプトについて説明します。

CGIインストーラは2010年5月に提供を終了させていただきました。
フォームメール等のCGIを利用されたい場合は、お客さまにてご用意いただけますようお願いいたします。
以下にフリーのCGI配布で著名なサイトをご紹介いたします。


CGI設置ディレクトリ

CGIスクリプトは、CGI専用ディレクトリ「~/www/cgi-bin」またはドキュメントルート「~/www/htdocs」に設置することで動作します。


~/www/cgi-bin に設置する場合

アップロードしたCGIスクリプトに対し、パーミッション(属性・アクセス権)を設定してください。
拡張子が cgi,pl,dat,log,txt,cfg 等の実行ファイルのみ設置(動作)が可能です。
htmlや画像ファイルは正常に認識されませんので、ドキュメントルートに設置してください。


~/www/htdocs に設置する場合

アップロードしたCGIスクリプトに対し、パーミッション(属性・アクセス権)を設定してください。
「.htaccss」の設置は必要ありません。
※ドキュメントルート直下に「cgi-bin」という名称のディレクトリは設置しないでください。正常に認識されません(~/www/cgi-binディレクトリのほうを参照します)。


FTPでアップロードする際、転送モードを「アスキーモード」または「テキストモード」で行ってください。また、アップロードしたCGIスクリプトに対しパーミッション(属性・アクセス権)の設定が必要です。CGIのパーミッションは一般的に「755」「705」で動作しますが、詳細は利用するCGIスクリプトのヘルプ等をご参照ください。

CGIスクリプトの動作確認や設置方法はサポートできかねます。制作者や配布元にお問い合わせください。


CGIスクリプトのパス

Perl で作成されたCGIを設置する場合、Perl のパスを正しく指定する必要があります。
また、メール送信を行うCGIの場合、sendmail プログラムのパスも正しく指定する必要があります。
Perl /usr/bin/perl
sendmail /usr/sbin/sendmail
python /usr/local/bin/python
バージョンの確認はこちら



CGIが動作しない場合

1) Perlのパスをご確認ください
一般的には、CGIファイルの特定箇所にPerlやsendmailのパスを記述する必要があります。
記述箇所は制作者や配布元にお問い合わせください。

2) パーミッションの設定をご確認ください
CGIファイルや、CGIファイルを設置するディレクトリのパーミッションを正しく設定してください。
CGIに対し一般的に有効なパーミッションは「755」または「705」となります。
また、「cgi」や「pl」等のプログラムをアップロードする際には、FTPソフトの転送モードを「アスキーモード」もしくは「テキストモード」で行ってください。



SSIの設定

共用サーバーは標準でSSIが動作するよう設定しております。
ドキュメントルート(~/www/htdocs)以下に、拡張子.shtmlで設置してください。



CGI/SSIでの時間取得

共用サーバーのタイムゾーンはGMT(世界標準時)となります。これはサーバーの上位層で設定されており、変更できません。
時間取得の機能を利用するCGIの場合、スクリプト側でご対応ください。
SSIの場合はスクリプト側でのタイムゾーン変更ができませんので、CGIとの連動が必要となります。

対策例/CGI
以下の1行をスクリプトの時間取得の前に追加すると、取得するタイムゾーンを日本時間に変更できます。
$ENV{'TZ'} = "JST-9";

対策例/SSI
例としまして、時間取得用のCGI「date.cgi」と、時間表示用の「date.shtml」を同一ディレクトリに作成します。
それぞれの記述内容は以下のとおりです。
【date.cgi】
#!/usr/bin/perl
$ENV{'TZ'} = "JST-9";
($sec,$min,$hour,$mday,$mon,$year,$wno) = localtime(time);
@wdays = ('SUN','MON','TUE','WED','THU','FRI','SAT');
$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d",$year+1900,$mon+1,$mday,$wdays[$wno],$hour,$min);
print <<"HTML";
$date
HTML
exit;

【date.shtml】
<!--#exec cmd="./date.cgi"-->

スクリプトの記述方法はサポートの対象外となります。時間取得のタイムゾーン変更方法は上記以外にもありますので、ご利用のCGI/SSIスクリプトに合わせ、専門書などを参考に設定してください。





ページの先頭へ戻る