KDDI ホスティングサービス (プラン20/50/100): CGI利用方法

KDDI 法人・ビジネス向けの「KDDI ホスティングサービス (プラン20/50/100): CGI利用方法」のサポート情報です。

CGI利用方法

使用可能な言語

CGIとして使用可能なものは以下の通りです。

言語名 (スクリプト名) パス
Perl (Ver. 5.00503) /usr/bin/perl
Bourneシェル /bin/sh
Cシェル /bin/csh

上記以外のもの (C言語など) で記述されたプログラムはご使用いただけませんので、ご了承ください。

スクリプトの1行目

CGIとして動作させるスクリプトの記述の際には、必ず1行目に「#! (処理系のパス) 」を入れていただきます。例えば、Perlで記述したスクリプトの場合、スクリプトの1行目は次のようになります。

#! /usr/bin/perl
  • 1行目に空行や余分なタブやスペースが入ってしまうと動作しませんのでご注意ください。

ファイル名

CGIスクリプトのファイル名について拡張子の指定は特にございません。従って、以下のようなファイル名はいずれも使用可能です。

test.cgi
test.pl
test
sample.test.pl
  • ファイル名に全角文字 (2バイト文字) や半角カナは使用できません。

ディレクトリ

CGIスクリプトは「/cgi-bin」配下のディレクトリに転送します。それ以外のディレクトリ (例えば「/htdocs」) に置かれているスクリプトはCGIとして動作いたしません。

パーミッションについて

CGIスクリプトのパーミッション (読み・書き・実行の権限) は700に設定します。パーミッションが不正ですとCGIは実行されません。またサポートWEBの「CGI構文チェック」を使用するにはパーミッションを704にする必要があります。「/cgi-bin」配下にサブディレクトリを作成した場合は、そのパーミッションは705でなければ、その配下のスクリプトは実行されません。

スクリプト実行可能なもの

-rwx------ mail.cgi (パーミッション700)
-rwx---r-- mail.cgi (パーミッション704)
drwx---r-x scripts (このディレクトリ配下のCGIは実行可能です)

スクリプト実行不可なもの

-rw-r--r-- counter.cgi (パーミッション644)
drwx------ sub_dir (このディレクトリ配下のCGIは実行されません)

システム上のパス

Perlスクリプト上やSSIでファイルを指定するとき使用する絶対パス (これをシステム上の絶対パスと呼ぶ) と、URLやFTP上でのパスと見え方が異なります。

FTP上で、ホームディレクトリの絶対パスは下記のようになります。

/home/fsXX/管理ユーザ名/
  • XX: 10または20 (登録時期により異なります)

例えば「haxxxNNNNN」という管理ユーザIDで「fs10」に登録されている場合、システムでのホームディレクトリの絶対パスは下記のようになります。

/home/fs10/管理ユーザID/

この絶対パスは環境変数HOMEに設定されていますので、Perlスクリプトでホームディレクトリの下にある「htdocs」と「cgi-bin」の絶対パスを設定します。

$htdocs = $ENV{'HOME'} . "/htdocs/";
$cgi_bin = $ENV{'HOME'} . "/cgi-bin/";
  • 絶対パスのかわりにカレントディレクトリを基点として相対パスを書くこともできます。

「list.cgi」から「file.dat」の指定方法

「cgi-bin」に「list.cgi」をアップロードし、そのデータが「cgi-bin/data/file.dat」にある場合、「list.cgi」から「file.dat」を指定するには下記のように絶対パスで指定します。

/data/file.dat

また「htdocs」からの「cgi-bin」への相対パスは下記のようになります。

../cgi-bin/

「htdocs/ssi/sample.shtml」上で「cgi-bin/date.pl」を「cmd」で使用したい場合は下記のように指定してください。

#exec cmd="../../cgi-bin/date.pl"
システム上のパスを使用する場合
  • Perlスクリプト上でのファイルまたはディレクトリの指定。
  • SSIで「#exec cmd」「#~ file」でのファイル指定。
  • 「.htaccess」のAuthUserFileでのファイル指定。
URLを使用する場合
  • HTMLでのCGIの指定。
  • Perlスクリプト上でのURL指定。
  • SSIでの「#exec cgi」「#~ virtual」でのファイル指定。

UNIXコマンドのパスについて

PerlスクリプトやシェルスクリプトからUNIXのコマンドを呼び出すことができます。代表的なコマンドのパスは以下の通りです。

コマンド名 パス
Perl /usr/bin/perl
nkf /usr/bin/nkf
sendmail /usr/lib/sendmail
date /usr/bin/date
uuencode /usr/bin/uuencode
cat /usr/bin/cat
cut /usr/bin/cut

本サービスへのお問い合わせ

  • 新規ウィンドウが開きますお問い合わせ

    お電話でもメールでもどちらでもお問い合わせいただけます。