本文へジャンプします。





現在位置:TOP > ホームページの作り方 > 自作CGI利用方法


自作CGI利用方法

@homepageでは、みなさんのご用意された自作CGIをご利用いただけます。

CGIスクリプト作成から設置までの手順
  1. スクリプトを書き、エラーのチェックをする。
  2. FTPソフトでファイルをサーバーへ転送する。
  3. ファイルのパーミッションを設定する。
  4. ブラウザからCGIスクリプトを呼び出し(URLを指定し)、実行させる。
1. CGIスクリプトを書く

言語について
@homepageでは、CGIにご利用可能な言語はPerl、シェルスクリプト(sh)です。C言語はご利用いただけません。また、SSIはご利用いただけません。

perlについて
perlのバージョンは5です。(ただし、perl5での標準的なモジュールは使用できません)
パスは、「/usr/local/bin/perl」となります。
スクリプトの1行目は「#!/usr/local/bin/perl」と記述してください。

シェルスクリプト(sh)について
シェルスクリプト(sh)に関しては、以下のコマンドがご利用可能となっております。
awk, chmod, date, egrep, expr, grep, mkdir, rmdir, sh, cat, cp, echo, env, find, ls, mv, rm, sed
なお、sendmailはご利用いただけません。

参照URLについて
@homepageではCGI実行ファイルは「http://hpcgi?.nifty.com/*****」に置かれます。
その他のファイル(HTMLファイル、画像ファイル等)は「http://homepage?.nifty.com/****」になります。
(?部分には数字が入ります。*****部分はあなたが取得した名前です。)


【ご注意】
CGI実行ファイルとそれ以外のファイルの設置場所が異なるので以下の点にご注意ください。

  • CGIからHTMLファイルにリンクする場合、次のようにhttpからはじまるパスで指定してください
    例)<a href="http://homepage?.nifty.com/*****/">トップページに戻る</a>
    「/」からはじまる記述(絶対パス)、および「../」などからはじまる記述(相対パス)は利用できません。
  • CGIでイメージファイルを表示する際も同様に次のようにhttpから記述してください。
    例)<img src="http://homepage?.nifty.com/*****/image.gif">
  • HTMLファイルからCGIにリンクする際にも次のように記述してください。
    例)<a href="http://hpcgi?.nifty.com/****/bbs.cgi">掲示板</a>
    (?には数字が入ります。*****部分はあなたが取得した名前です。)
    ファイル名を省略した場合はindex.cgiが表示されます。
  • 「cgi-bin」ディレクトリにCGIの実行とは関係のないファイルを置いても、ブラウザにそのファイルを表示させることはできません。FTPする際、CGIに関連する実行ファイル、データファイル、画像ファイルなどは「cgi-bin」ディレクトリに、通常の閲覧ファイル(htmlファイル、画像ファイルなど)は「homepage」ディレクトリに置いてください。
  • 参照の際はcgi-binのディレクトリ名は不要ですのでご注意下さい。
    (http://hpcgi?.nifty.com/*****/cgi-bin/bbs.cgiではありません

動作確認について
スクリプトを作成したら文法チェックを必ずおこなってください。

2. ファイルの転送

CGIの設置場所
CGIスクリプトは、/cgi-bin/ディレクトリに置いてください。
(CGIを実行するファイルは拡張子が「.sh」、「.pl」、「.cgi」のファイルです)
その他の任意のディレクトリではCGIスクリプトを実行できません。
FTPソフトを使ってFTPサーバーにログインすると「cgi-bin」ディレクトリが見えます。
この「cgi-bin」ディレクトリに置かれたファイルのURLは、「http://hpcgi?.nifty.com/*****」になります。
(?には数字が入ります。****部分はあなたが取得した名前です。)


転送時のご注意
  • CGIスクリプトなどのテキストファイルを転送する場合は、FTPソフトの設定で、必ず、転送モードを「ascii」、または、「テキスト」にしてから、転送して下さい。
  • CGIの実行に関係のないファイルをcgi-binディレクトリに置いて、その場所を指定してもブラウザで表示させることはできません。
  • @homepageでは、/cgi-bin/のディレクトリ内のCGIを参照するURLは以下のようになります。
     http://hpcgi?.nifty.com/*****
     ?部分には数字が入ります。@homepageで登録したURL(http://homepage?.nifty.com/*****/)の?部分と同じ数字を入力してください。
3. パーミッションの設定

パーミッションの変更方法
CGIスクリプトを使用するときには、ファイルに実行権を付けて、プログラムであることをサーバに認識させる必要があります。
CGIスクリプトを実行させるには、FTPソフトを使ってプログラムファイルに実行権を設定します。
実行権をつけることができるのは、拡張子が「.sh」、「.pl」、「.cgi」のファイルです。


●NextFTPを利用する場合 (Windowsユーザーの方)

  1. cgi-binディレクトリに転送したCGIのプログラムファイルを選択します。
  2. 選択したファイルを右クリックすると、ポップアップメニューが表示されます。
    ポップアップメニューから「属性の変更」を選択します。
    NEXT FTP画面-1
  3. 「属性の変更」を選択すると以下の図が表示されます。以下の図のように「ユーザー」「グループ」「その他」のそれぞれの「実行可」にチェックをつけます。
    (または右上のテキストボックスに「755」と記入します。)
    NEXT FTP画面-2
  4. 送信コマンドが「SITE CHMOD」となっていることを確認して「OK」ボタンをクリックします。

●Fetchを利用する場合 (Macintoshユーザーの方)

  1. cgi-binディレクトリに転送したCGIのプログラムファイルを選択します。
    fetch画面-1
  2. 「リモート」メニューから「Permissionの設定」を選択します。
    fetch画面-2
  3. 「オーナー」「グループ」「全員」のそれぞれの「実行」にチェックをつけます。
    fetch画面-3

●コマンドで設定する場合
実行権を付けるには、「リモート」メニューの「FTPコマンド」を選択して「FTPコマンドを送る」画面で実行権を付けるコマンドを発行します。
たとえば、「count.pl」というファイルに実行権を付けるときには、「quote site chmod 755 count.pl」と入力して、「OK」ボタンをクリックしてください。

4. CGIの動作確認

CGIの動作確認につきましては、実際にホームページ上で動作させてご確認ください。

【ご注意】
  • telnet接続はご利用いただけません。
  • nkfやjcode.pl等汎用的なパールのライブラリは@homepageでは用意しておりません。各自でご用意ください。
  • 「.htaccess」は設置できません。
  • @homepageでは、DNSの逆引きは行っておりません。ホスト名は取得されませんのでIPアドレスをご利用ください。
  • 外部ホストと直接通信を行うプログラム(socketなど)に関しては動作保証いたしておりません。
  • サーバーに負荷をかけるようなCGIは、サーバーや@homepageをご利用いただいている多くの方々にご迷惑がかかります。
    過剰な負荷をかける、またセキュリティ・ホールとなるCGIを作成しないようご注意ください。
    そして無限ループに陥るようなスクリプトにもご注意ください。
    過剰な負荷をかける、またセキュリティ・ホールとなるCGIであるとニフティが判断した際には、予告なしに停止させていただく場合があります。あらかじめご承知置きください。
  • CGIに関するある程度の知識を身につけられている方のご利用をお願いいたします。
  • @niftyでは自作CGIの作成に関してのサポートはいたしません。ご了承ください。