13

Perlを使ったCGIプログラム

第13章の例題を試すには,ウェブサーバなどの設定が必要だ。このページで,ウェブサーバの設定方法と,プログラムおよびデータのダウンロード方法を説明する。

CGIプログラムの実行方法 ― ローカルで試す方法(p. 249,p. 266)

プラットフォーム(OSなどの環境)ごとに分けて説明する。

Windowsの場合

Windows MeやWindows 98,95では,CGIプログラムを実行するウェブサーバが安定して動作しないようなので,Windows XP(あるいはWindows 2000)を利用する方がよいようだ(筆者のところではWindows 98とMeでも動作した)。

また,第9章の説明に従って,Perlのインストールがすんでいると仮定する。

  1. まずウェブサーバのApache(アパッチ)をインストールする。それには,以下の作業を行う。
    1. http://www.apache.org/dist/httpd/binaries/win32/の下にあるWindows版のApacheをダウンロードする。次のものはWindows XPおよびWindows 2000での動作を確認した: http://www.apache.org/dist/httpd/binaries/win32/apache_1.3.24-win32-x86-no_src.exe 。最新版でも動くかもしれないが,動作確認は読者自身でされたい。
    2. ダウンロードが終ったら,ダウンロードしたファイル(たとえばapache_1.3.24-win32-x86-no_src.exe)をダブルクリックして実行する。
    3. 環境によって再起動するように言われる場合があるので,その場合はWindowsを再起動する。
    4. Apacheのインストーラが実行されるので,メッセージを確認して[Next]を押す。
    5. 使用条件が表示されるので[I accept the terms in the license agreement]をチェックし,[Next]をクリックする。
    6. 注意事項などが表示されるので,確認して[Next]をクリックする。
    7. サーバに関する情報(ネットワークアドレスなど)を適当に入れる。たとえば, test.jpwww.test.jptest@test.jp などでよい( これはテスト用の設定であり,将来インターネットに公開する場合はこの設定を変える必要がある)。CGIのテストをするだけなので,一番下の[Run when started manually, only for me (....)]の方をチェックする。 [Next]をクリックする。
    8. [Complete]を選び,[Next]をクリックする。
    9. [Desutination Folder]はそのまま触らないで[Next]をクリックする。(デフォルトのままにする。 変えてもよいがその場合は以下の説明をその設定に合わせて読み変える必要がある)。
    10. [Install]をクリックしてインストールを開始する。
    11. [Finish]を押して終える。
    12. [スタート]メニューから[Appache HTTP Server] ― [Start Apache in Console]を選んでApacheを起動する。ウィンドウが開き「Apache/1.3.24 (Win32) running...」というメッセージが表示される。
    13. ブラウザを起動する。
    14. http://localhost/を入力して,別のウィンドウに「あなたの予想に反して、このページが見えているでしょうか?」などと表示されればOK。ウェブサーバのインストールに成功したことになる。
  2. 次に,ApacheとPerlが連係してうまく動くかを確認する(Perlのインストールがすんでいない場合は,第9章の説明に従って準備を)。
    1. c:\program files\apache group\apache\cgi-bin/printenv.pl をエディタで開く(別の場所にインストールした場合は,対応する場所にあるはず)。
    2. 一番上の行を次のように変更する。必ず行の先頭から「#!」を始める。
          #!c:/perl/bin/perl
         
    3. ファイル名を printenv.cgi に変えて,同じフォルダ( c:\program files\apache group\apache\cgi-bin )に保存する(ファイル名に .txt がついてしまったら,削除する)。
    4. ブラウザでhttp://localhost/cgi-bin/printenv.cgiを表示する(左のリンクをクリックすると別のブラウザウィンドウが開いてprintenv.cgiの出力が表示される)。これで COMSPEC=...DOCUMENT_ROOT=...HTTP_ACCEPT=... などの環境変数が表示されればOK。
  3. 続いて jcode.pl をダウンロードする。
    1. ブラウザで,歌代 和正さんのjcode.plのページを表示する。
    2. jcode.pl-2.13 というリンクがあるので,このリンクを右ボタンでクリックして,[対象をファイルに保存...]を選択して保存する。保存する場所は, C:\Program Files\Apache Group\Apache\cgi-bin の下で,ファイル名は jcode.pl に変え,[ファイルの種類]を「テキスト文書」から「すべてのファイル」に変えて,[保存]ボタンを押す。
    3. [ダウンロードの完了]になったら,[フォルダを開く]のボタンをクリックして jcode.pl があることを確認する。

これで,準備は完了だ。例題を試すには,CGIファイルやデータを C:\Program Files\Apache Group\Apache\cgi-bin の下にコピーすれば実行できるはずだ。この章の例題なら,次の手順で試せる。

  1. 次のリンクをクリックして,プログラムとデータを圧縮してまとめたファイルを自分のディスクにダウンロードする ― under-cgi-bin.exe。場所はどこでもよい。
  2. ダウンロードしたファイルをダブルクリックして起動する。
  3. [Unzip]をクリックしてファイルを展開する。これで,自動的に C:\Program Files\Apache Group\Apache\cgi-bin の下に2つのファイル( yomigana2-big.cgiyomidata-big.txt )が保存される(必要ならば[Browse...]をクリックして別の場所を指定する)。
  4. 「Two file(s) unzipped successfully」というメッセージが表示されるので[OK]を押してウィンドウを閉じる。
  5. [Close]を押して「WinZip Self-Extractor」のウィンドウを閉じる。
  6. 次のリンクをクリックしてCGIプログラムをローカルで(自分のコンピュータで)実行する ― http://localhost/cgi-bin/yomigana2-big.cgi
Mac OS Xの場合

Mac OS Xのバージョン10.0は不安定な部分があるので,できればバージョン10.1以上にアップデートした方がよい(以下の手順はバージョン10.0でも動作を確認した)。なお,バージョン10.1をインストールすれば,インターネットを介して最新のバージョンにアップデートできる(画面左上のリンゴのメニューから「システム環境設定」 ― 「ソフトウェアアップデート」の順に選び,「今すぐアップデート」のボタンをクリックすればよい)。2003年7月18日現在の最新バージョンは10.2.6だ。

Mac OS Xの場合はすでにウェブサーバのApache(アパッチ)がインストールされているので,Apacheのインストールの必要はない。次の手順にしたがってApacheを起動し,必要なファイルをダウンロードすればよい。

  1. アップルメニュー(画面左上のりんごのマーク)から[システム環境設定]を選ぶ。
  2. [共有]をクリックする
  3. 「Web 共有していません」となっていたら,その下の[開始]をクリックしてウェブサーバを起動する。「Web 共有しています」と変わるはず。
  4. (まだ起動してなければブラウザを起動して)次のリンクをクリックしてローカルのウェブサーバが起動しているか確認する ― http://localhost/ (←これをクリック)。
    別のウィンドウに「あなたの予想に反して、このページが見えているでしょうか?」などと表示されればOK。
  5. 続いて jcode.pl をダウンロードする。
    1. ブラウザで,歌代 和正さんのjcode.plのページを表示する。
    2. jcode.pl-2.13 というリンクがあるので,このリンクをcontrolキーを押しながらクリックして,[リンクをディスクにダウンロード]などの項目を選択して保存する。保存する場所は, /Library/WebServer/CGI-Executables の下。ファイル名は jcode.pl に変えてから[保存]ボタンを押す。
    3. [ダウンロードの完了]になったら,[フォルダを開く]のボタンをクリックして jcode.pl が存在していること(この名前になっていること)を確認する。
  6. yomigana2-big.cgiyomidata-big.txt を次のリンクをクリックしてダウンロードする ― chap13-mac.sit。 StuffIt Expanderが起動して展開してくれる。
  7. 2つのファイルを /Library/WebServer/CGI-Executables の下に移動(あるいはコピー)する。
  8. 次のリンクをクリックしてCGIプログラムをローカルで(自分のコンピュータで)実行する ― http://localhost/cgi-bin/yomigana2-big.cgi
Mac OS 9あるいはそれ以前の場合

Mac OS 9でCGI機能を試すのは,不可能ではないが,OS標準の機能以外のソフトウェアをいくつかインストールする必要がある。 それよりも,OSをMac OS Xにバージョンアップして使うことをお勧めする。

プロバイダのスペースを使ったCGIの実行(p. 266)

インターネットを利用するためには何らかの形でプロバイダと契約する必要があるので,このページを見ているということは読者あるいは読者の属する組織が既にプロバイダと契約しているということになる。しかし,たんにプロバイダと契約しても自分のウェブページ(ホームページ)が持てるとは限らないし,ましてやPerlが使えてCGIが利用できることにはならない。この本の例を試すという目的のためには「CGIも使えるプロバイダ」と契約する必要がある。

ここでは,筆者が何年か前から利用しているプロバイダを例にして,どのようにすればCGIが利用できるようになるか説明する。ほかのプロバイダに関しても,細部は異なるかもしれないが,似たようなことをすればできるようになるはずだ。CGIが使えるプロバイダのリストは,たとえば http://page.freett.com/adfreepages/ (クリックすると広告が表示されるので心の準備を!)などに載っている。


このページには無料でCGIが利用できるウェブページを構築できるサービスも紹介されている。これを機会にものは試しとばかり,このページに載っていた トクトクを試してみた。最初に自分のメールアドレス,年齢,所得などの情報を提示する必要があるほか,自動的にメールマガジンに登録されて,(うるさい)メールがやってくることになりそうだ。自分が作るページに広告が表示されたり,アンケートに答える必要があったりで,やはり無料なりの制約はある(未来永劫に渡って,いろいろなダイレクトメールが来ることを覚悟する必要があるかもしれない)。でも,CGIも使えるので,煩わしいのが我慢できるのならば試しにやってみるのにはよいかもしれない。 サポートコーナー にかなり詳しい説明があるので,設定などもなんとかなるだろう。

はなしを戻して,筆者が個人用に以前から利用している有料のプロバイダは次の2つだ。

このうちWebARENAの方は,専用の「ドメイン」(たとえばmarlin-arms.co.jp)を使うためのサービスで,ちょっと大がかりで費用も高いので,ここではリムネットを例にして少し詳しく紹介しよう。

入会

まずはプロバイダに入会する必要がある。 リムネットのホームページを見れば,「今すぐ入会」などといったリンク(ボタン)があるはずだ。サービス案内を見ればわかるように,CGIを使うためには一番やすい200円コースではダメで,1800円コース以上に入る必要がある。

ホームページの設置

契約が済んだらウェブページを開設して,CGIを試してみよう。ここではCGIの説明に集中するので,もしHTMLファイル(普通のウェブページ用のファイル)の設定方法が分からない場合は,リムネットサポートデスク設定マニュアル・サービスの仕様 のページにある「各種マニュアル・サービスの仕様」の「ホームページ開設」などを参照して欲しい(また,上で触れた「トクトク」のサポートコーナー にも,ftpなどについて詳しい説明がある)。

リムネットのサービスでは,public_htmlというディレクトリ(フォルダ)の下にウェブページ用のファイルを置くことになっており,CGI用のファイルも.cgiという拡張子を付けてこの下の任意の位置に置くことができる(なお,プロバイダやサービスによってはcgi-binというディレクトリの下に置かなければCGIとして実行されないようになっている場合もある)。

たとえば,上の CGIプログラムの実行方法 ― ローカルで試す方法 で試したprintenv.cgipublic_htmlの下に置いて,ブラウザでhttp://www.xx.rim.or.jp/~yyyy/printenv.cgiを表示してみれば,printenv.cgiが実行できるはずだ(xxはリムネット入会時に指定されるアルファベット2文字,yyyyは入会時に希望して決められるユーザー名,yyyyの前に付いているのは半角のチルダ「〜」だ。インフォーマルには「ニョロ」とも呼ばれている)。

ただし,CGIファイルは必ず「実行可能」にしておく必要があるので注意が必要だ。ファイルを「実行可能」にするにはftpソフトを使う。代表的な(筆者も使ったことがある)ftpソフトでファイルを実行可能にする方法を紹介しよう。例として,printenv.cgiを実行可能にする場合を見よう。

重要なのは,ファイルの所有者(owner,つまりそのファイルを管理している人)がそのファイルに入っているプログラムを実行できるようにすることだ。ftpソフトならば,必ずこの設定ができるようになっているはずだ。なお,プロバイダによっては,特定の設定が必要な場合があるので,うまく動かなかったら,プロバイダの提供するマニュアルも参照されたい。なお,実行可能にする必要があるのは,CGIプログラム本体だけで,そのプログラムが参照するデータやライブラリ(本文に出てきた例ではyomidata-big.txtjcode.pl)は実行可能にする必要はない。

これでCGIが利用できるようになる。キーポイントは「実行可能」にすること。それ以外はホームページを公開する場合とほとんど変わらない。

CGIを使う場合の注意

CGIプログラムを使えばいろいろなことができるが,他の利用者に迷惑をかけるプログラムもできてしまう。たとえば,いつまでも終了しないプログラムを作ってしまったりすると,プロバイダのコンピュータを共有している他の利用者が公開しているページを見られなくなるといったことが起きる。このため,CGIを使ったページを公開する前に,必ずテストをして問題がないことを確認する必要がある。自分のパソコンでウェブサーバを動かして,CGIをテストしてからプロバイダのページに移動しよう。じつは,この本で紹介した程度のプログラミングの知識だけで,自分のCGIプログラムを公開するのはちょっと早い。自分の作ったCGIプログラムを公開するのは,もう少し修行を積んでからにしよう。