Perl/ActivePerl For UNIX/Linux/Windows
 
TryThe Homepage
初めてのCGI
CGI 研究室
ダイナミックCGI
ダウンロード
サービス
サーバ構築(Windows)
データベースアクセス
有料サービス
FAQ
お問い合わせ
このページを印刷
CGIの設置と起動
  CGIの設置
一般的なHTMLドキュメントは、ホームページ作成ソフトのアップロード機能で簡単にアップロードできますので、 多くの方がこの機能を利用しアップロードしている事でしょう。 しかしながらCGIはドキュメントではなく、プログラムですので同じ方法でアップロードしたのでは、 そのままプログラムのコードが表示され、訪問者には何がなんだかわかりません。 ここでは、FTPソフトを使用して手動でファイルをアップロードする方法と、プログラムコードを表示させるのではなく、 プログラムを実行させて結果を表示させるアクセス権限(パーミッション)を解説します。
  • FFFTPのインストール
    FFFTPは、現在無料で配布されているFTPソフトでは、最も高機能で簡単なWindows用アプリケーションです。 開発者のサイトから最新版をダウンロード(2004/ 6現在 v1.92)し、 自己解凍exeをダブルクリックします。

    インストーラーのスタートアップが表示されますので[次へ]ボタンを押します。


    著作権表示と概要説明が有りますので、一通り目を通し、[次へ]ボタンを押します。


    インストール先フォルダーの指定です。
    一般的にはC:ドライブのProgram Filesにインストールしますので、 デフォルトで設定されています。変更する必要がなければ[次へ]ボタンを押します。


    初めてFFFTPをインストールする場合は指定のフォルダが存在しませんので、 [はい]を押してインストール時作成するよう指示します。


    再度、インストール元とインストール先を確認するウィンドウが表示されますので問題がなければ[次へ]ボタンを押します。 これでインストールは終了です。

  • FFFTPの起動と設定
    正常にインストールが完了すると、スタートメニューに[Ffftp]フォルダーが作成されています。 このフォルダの[FFFTP]をクリックします。

    最初の起動ではメールアドレスを聞いてきますが設定する必要は有りませんので、 未記入で、[OK]を押しておきます。


    続けてサーバ一覧が表示されますが、当然あなたのサーバ情報は登録されていませんから、 [新規ホスト]ボタンを押して登録します。


    ここでは、プロバイダや、レンタルサーバから指示されたあなたのサーバ情報を設定します。
    • ホストの設定名
      一覧に表示する名称ですので、分かりやすければどのような名前でも結構です。
    • ホスト名(アドレス)
      ホスト名とドメイン名または、ホストのアドレスを設定します。
    • ユーザ名
      あなたのIDまたは、アカウント名です。
    • パスワード
      あなたのパスワードです。記入ができれば[OK]ボタンを押します。
    これで、あなたの情報は登録されましたので、ホスト一覧の設定したあなたのホスト名をダブルクリックすると サーバに接続されます。

    FFFTPでは、左のウィンドウがあなたのパソコンで、右に表示されているファイルのリストがサーバです。 ファイルをアップロードする場合は、左のファイルを右へ、ダウンロードする場合は、 右のファイルを左にドラッグするだけです。

  • 転送モードの設定
    ほとんどのPerlで作成されたCGIの拡張子は「.cgi」か「.pl」です。 FFFTPには、拡張子によって自動で転送モードを変更してくれる便利な機能があります。 [オプション(O)]-[環境設定(S)]を選択し、[転送1]タブを押します。

    転送モードを[ファイル名で切替え]に設定し、 [追加]ボタンを押してアスキーモードで転送するファイルの拡張子を追加して行きます。 筆者は、ご覧のような拡張子をアスキー転送に設定しています。 ここで設定していない拡張子のファイルはバイナリモードで転送されることになります。 このように、拡張子で転送モードを変更するよう設定しておけば、転送モードは常に[転送モード自動]で、 ファイルごとに自動で転送モードが変更されます。
    *** 転送モードについて ***
    Windows系(Microsoft)OSはテキストファイルの改行コードとして[CR]+[LF]を使用していますが、 UNIXに代表されるインターネットで最も使用されているUNIX系OSではテキストファイルとバイナリファイルを区別しません。 したがって改行コードも[LF]固定です。 このように改行コードの異なるOSのファイルを転送する場合は、相手側の改行コードに合わせる必要があるのです。 アスキー転送モードは、WindowsからUNIXにテキストファイルを転送する場合、 [CR]+[LF]を[LF]に変換し、UNIXの場合はその逆の操作を行っています。 と言うことは、使用しているサーバがWindowsNT系サーバなら、 すべてバイナリモードで転送しなければならない事になります。

  • アクセス権限(パーミッション)
    これで、アスキーモードでサーバにアップロードする事はできるようになりましたが、 この状態でCGIにアクセスしてもプログラムは実行されず、コードそのものが表示されてしまいます。 Windows系OSでは、拡張子が「.EXE」、「.COM」のファイルなら無条件で実行されますが、 UNIX系OSには、アクセス権限(以下パーミッション)と言う考え方があります。 もともと、スタンドアローン(単独動作)や、クライアントとして開発されているWindows系のOSと違ってUNIXはインターネットや、 イントラネットなど複数の方々にアクセスされる事を前提に開発されています。 複数の人間が操作するのですから、中には見られたくないファイルや、 見るだけなら許可するが書き換えは許可したくないなど、いろいろなファイルがあります。 これらの条件をファイルごとに設定する事をパーミッションと呼びます。 FFFTPでパーミッションを設定するには、設定するファイルで右クリックします。

    ポップアップメニューの[属性変更(A)]を選択して[現在の属性]を直接書き換えます。
    主に使用されるパーミッション
    CGI 755 拡張子が「.cgi」、「.pl」のCGIファイルはファイルそのものを表示させるのではなく、 実行結果を表示させる必要がありますので実行権を与えます。
    CGIのデータ 666 掲示板のように、どなたにでも記事が書き込めるファイルは、 書き込み権を設定します。
    ディレクトリ 755/777 パーミッションはディレクトリに対しても設定しなければなりません。 CGIは、用途によってディレクトリ内に新しいファイルを作成したり、 テンポラリファイルを作成する必要があります。 ディレクトリには、これらを許可するパーミッションを設定しておく必要があります。
    その他 644 一般的なHTMLや、画像ファイルは、管理者は変更する必要がありますが、 訪問者には閲覧だけを許可すればいいのですから644になります。
    簡単に言えば、アスキーモードで転送されたプログラムのパーミッションを755に設定すればいいのです。 そのCGIがデータファイルを必要とするなら空のデータファイルもアップロードしてパーミッションを666に設定します。 本書で紹介するプレミアムCGIは、すべてデータファイルをCGIが自動で作成しますので、 予めデータファイルを準備しておく必要はありません。
    パーミッションについては、「パーミッションてな〜に」で詳しく解説します。
  CGIの起動
CGIを起動するには、一般的に2つの方法が使用されます。 1つはCGIを設置したアドレスを直接指定する方法です。 ブラウザのアドレスバーにCGIを設置したアドレスをフルパス(http://から)で入力して呼び出します。
http://www.tryhp.net/cgi-bin/myserver.cgi
掲示板や、チャットなどをリンクで呼び出す場合は、
<a http://www.tryhp.net/cgi-bin/myserver.cgi>私の掲示板</a>
とします。
もう1つは、HTMLのフォームから呼び出す方法です。
<form action=myserver.cgi method=POST>
  お名前:<input type=text size=20 name=name><br>
  E-Mail:<input type=text size=20 name=email><br>
  ご住所:<input type=text size=20 name=addr><br>
  <input type=submit value=送信する>
</form>
このHTMLこーどは、myserver.cgiを呼び出して、同時に入力された「氏名」、 「メールアドレス」、「住所」をCGIに送信しています。 掲示板などは、ほとんどこの方法で入力データを取得し、ファイルに保存しています。

この他にもJavaを使って、
<input type=button value=掲示板へ onclick="location.href='scriptname.cgi'">
としてボタンから呼び出す事もできます。
Copyright 2004 Terra. All rights reserved. No reproduction or republication without written