インストール方法


SSMのコア部品をインストールする方法を説明します。
この設定さえすれば、あとは自由にテンプレート/スクリプトファイルを編集することで、Web アプリケーションの構築ができます。


動作環境

perl による CGI スクリプトが動かせることが前提です。

UNIX系プラットフォームの場合

作者のテスト環境: freeBSD4.1 + perl5.6
新しい機能を使っていないので、 perl5.003 以降でも動くと思います。
perl4.xでは動作しません。

Windowsの場合(ActivePerlを使用)

作者のテスト環境: Windows NT SP 6a + perl5.6.1 Build 633
ActiveState (ActivePerlの配布元)で配布しているモジュール以外は、PPDをこのサイトで公開しています。
5.005 以前のバージョンだと、必要なモジュールがうまく入らないため、動作しません。

必要部品


説明 入手場所
UNIX系用 Windows用
SSM本体 CGI スクリプト本体と設定ファイル このサイト このサイト
Ssm::Common SSM 基本モジュール このサイト このサイトで配布
Jcode perlモジュール CPAN CPAN または
ActiveState
HTML::TokeParser (>=2.20) perlモジュール。必ずバージョン 2.20 以上 CPAN ActivePerlに付属
CGI perlモジュール CPAN ActivePerlに付属

インストールと設定

コードの記載は以下の通りです。

青字: システムが返すメッセージ等
太字: 入力注意部分または、文字列を置き換える部分
赤字: コメント
カッコ: 入力内容等の指示
% : UNIXのプロンプト(一般ユーザ)
# : UNIXのプロンプト(root)
*> : Windowsのプロンプト
  1. 一般 perl モジュールのインストール

    • UNIX系プラットフォームの場合

      「必要部品」の表にある、CPAN から入手できる perl モジュール(Jcode、HTML::TokeParser、CGI)を全てインストールして下さい。

      1. インストール済モジュールの確認

        システムに既にモジュールがインストールされているかのチェックは、プロンプトから以下のコードを実行して下さい。

        % perl -e 'use Jcode;' <--モジュール名は、チェックしたいモジュール名に変更

        エラーメッセージが何も表示されない場合、モジュールはシステムに既にインストールされています。

        以下のようなエラーメッセージが出る場合は、モジュールはインストールされていないので、インストールを行って下さい。

        Can't locate HTML/TokeParser.pm in @INC (@INC contains: /usr/local/lib/perl5/5.6.0/i386-freebsd /usr/local/lib/perl5/5.6.0 ***途中省略***.) at -e line 1.
        BEGIN failed--compilation aborted at -e line 1.

        インストールの基本的な手順は以下の通りです。インストールの過程で、他に、依存する perl モジュールが必要になることがあるかも知れません。その場合は、インストールの過程で警告が出るのでそれに従ってインストールを行って下さい。

      2. アーカイブを検索

        CPAN のモージュール配布サイト http://search.cpan.org/ にアクセスして下さい。
        CPAN のサイトのトップページには、検索ダイアログが表示されています。
        (1)モジュール名を入力、(2)プルダウンメニューから検索対象を選択して、(3)「CPAN Search」ボタンを押して下さい。


        検索結果が表示されます。「Jcode-0.83」など、バージョン番号の付いた配布アーカイブ案内ページへのリンクを選択して下さい。
        (「Jcode」など、太字で表示されているリンクは、(配布アーカイブに含まれる)個々のモジュールの説明ページへリンクしています。)


      3. ダウンロード

        表示されるページの [Download] のリンクを選択すると、配布アーカイブがダウンロードできます。SSM を セットアップするシステム内の任意の場所に保存して下さい。


      4. 展開

        アーカイブを保存したディレクトリに移動し、アーカイブを展開して下さい。

        % cd /path/to/downloaded/archive
        % tar -zxvf Jcode-0.83.tar.gz <-- ファイル名は、ダウンロードしたファイル名に応じて変更
      5. コンパイルとインストール

        アーカイブを展開すると、展開したファイルを格納したディレクトリが作成されるので、そのディレクトリに移動して下さい。

        % cd Jcode-0.83 <-- ディレクトリ名は、作成されたディレクトリに応じて変更

        README ファイルや、インストール方法を指示する INSTALL ファイル等があれば、それを参照して下さい。 それらのファイルが無い場合、一般的なインストール手順は以下の通りです。

        % perl Makefile.PL
        % gmake
        % su
        Password: (パスワードの入力)
        # gmake install

        モジュールを、perlの標準の場所にインストールする場合は、上記のとおり su して root になる必要があります。

        root になれない場合は、インストールパスを変更し、作業アカウントで書き込める場所にインストールする必要があります。その場合は、以下のようにして下さい。

        % perl Makefile.PL PREFIX=(書き込み可能なパス)
        % gmake
        % gmake install

        この場合、以下の点に留意して下さい。

        • 指定したパス以下に、lib という名前のディレクトリが作成され、ここに perl が色々インストールしています。このディレクトリは削除しないで下さい。
        • PREFIXを指定してインストールしたモジュールを使用する場合は、(SSMを稼動させる段階で、)perl スクリプトの最初に、以下のプラグマを追加して下さい。
          use lib ('PREFIX/lib/site_perl'); #PREFIX はインストール時に指定したパス
    • Windowsの場合

      SSMの動作に必要なモジュールのうち、ActiveState で配布 しているモジュールは、perl のインストール時にデフォルトでインストールされるはずですが、必要なモジュール(HTML::TokeParser、CGI)がインストールされていなかった場合、インストールして下さい。

      モジュールのインストールやチェックは、AcitvePerl に付属のコマンド ppm を利用して行います。

      ppm でモジュールがインストールされているかのチェックを行う一般的な手順は以下の通りです。
      (コマンドプロンプトから作業して下さい。)

      C:\>ppm <--ppmを起動
      PPM interactive shell (2.2.0) - type 'help' for available commands. <--ppmの出力
      PPM> verify CGI <--「CGI」の部分を、チェックしたいモジュール名に変更

      モジュールがインストールされているときの表示

      Package 'CGI' is up to date.

      モジュールがインストールされていないときの表示

      While verifying package 'CGI': Package 'CGI' has not been installed by PPM

      モジュールをインストールする一般的な手順は、以下の通りです。

      PPM> install CGI <--「CGI」の部分を、インストールしたいモジュール名に変更
      Install package 'CGI?' (y/N): y <--「y」を入力
      Installing package 'CGI'...
      Downloading http://ppm.ActiveState.com/PPMPackages/5.6plus/MSWin32-x86-multi-thr
      ead/CGI.tar.gz ...

      (ppm のメッセージが出るときは出ます。省略。)
      PPM> <--インストールが終了するとプロンプトに戻ります
      PPM> quit <--ppm を終了
      C:\>
  2. Ssm::Common モジュールのインストール

    • UNIX系プラットフォームの場合

      このサイトのダウンロードページからダウンロードした Ssm::Common モジュールをインストールして下さい。
      通常の perl モジュールと同じ手順でインストールできます。 一般的な手順は以下の通りです。

      % cd /path/to/downloaded/archive
      % tar -zxvf Ssm-Common-1.30.tar.gz <-- ファイル名は、ダウンロードしたファイル名に応じて変更
      % cd Ssm-Common-1.30 <-- ディレクトリ名は、作成されたディレクトリに応じて変更
      % perl Makefile.PL
      % gmake
      % su
      Password: (パスワードの入力)
      # gmake install
    • Windowsの場合

      AcitvePerlに付属のコマンド ppm を利用してモジュールのインストールを行って下さい。ppm の使用方法の詳細は、ActivePerlのドキュメントを参照して下さい。
      Ssm::Common 用のPPDファイルはこのサイトにありますので、install コマンドを実行する前に、下記のようにリポジトリを設定して下さい。

      set repository SSM http://www.web-ware.org/packages/

      全体の手順の概要は、以下の通りとなります。 (コマンドプロンプトから作業して下さい。)

      C:\>ppm <--ppmを起動
      PPM interactive shell (2.2.0) - type 'help' for available commands. <--ppmの出力
      PPM> set repository SSM http://www.web-ware.org/packages/ <--リポジトリの設定
      PPM> install Ssm::Common <--インストールコマンド
      Install package 'Ssm-Common?' (y/N): y <--「y」を入力
      Installing package 'Ssm-Common'...
      Downloading http://www.web-ware.org/packages/archives/Ssm-Common-1.30pkg.tar.gz ...

      (ppm のメッセージが出るときは出ます。省略。)
      PPM> <--インストールが終了するとプロンプトに戻ります
      PPM> quit <--ppm を終了
      C:\>
  3. SSM用ファイルの展開

    SSM用ファイルをダウンロードページからダウンロードして、展開して下さい。必要なファイルの内容は以下の通りです。

    分類 内容
    CGIファイル本体・設定ファイル ssm2 : CGIスクリプト本体
    .ssmrc : 環境設定ファイル
    テンプレート test(ディレクトリ) : SSM動作確認用テンプレート
    sample(ディレクトリ) : SSMテンプレートサンプル
  4. CGIスクリプトの設置

    「CGIファイル本体・設定ファイル」を展開して得られる perl CGIスクリプト(ssm2)と環境設定ファイル(.ssmrc)両方を、Webサーバ経由で実行可能な場所に置いて下さい。
    ssm2の方は、必要またはお好みにしたがって自由に名前を変更して差し支えありません。.ssmrc は名前を変更してしまうとエラーになります。 2つのファイルは同じディレクトリに置いて下さい。

    ssm2は、ファイルの1行目に書いてあるperlのパスをお使いの環境に合わせて変更し、webサーバが稼動するアカウントでの実行権を付与して下さい。
    .ssmrc の実行権等は特に変更しなくても差し支えありませんが、webサーバの設定でリクエスト不可の設定をしておくとより安全です。

    さて、ここでリクエストのテストをして下さい。 ブラウザから、インストールしたスクリプト ssm2 をリクエストして下さい。

    例) http://localhost/cgi/ssm2

    以下のような表示が出ればOKです。

    SSM ERROR

    PATH_INFOがありません。URLを確認して下さい。

    上のような表示が出ない場合、WebサーバやCGIの設定がおかしいことが考えられます。Webサーバのエラーログを見て、上記表示が現れるよう問題解決して下さい。

    Windows でWebサーバにIISを使用する場合

    IISを使用する場合、ssm2 本体のファイル名は、スクリプトであることを関連付けた拡張子が付いたものに変更する必要があります。詳細は、IISのマニュアル等を参照して下さい。

    拡張子と関連付ける「実行ファイル」の設定は、通常の perl スクリプト(拡張子が .pl の場合)と同じです。perl のパスが「C:\Perl\bin\perl.exe」の場合は、以下の通りになります。

    C:\Perl\bin\perl.exe "%s" %s

    拡張子の関連付けの設定の際に「ファイルの存在を確認」というオプションがあった場合、これのチェックを外して下さい。

  5. テンプレート用ディレクトリの準備

    テンプレートを設置するためのディレクトリを設定します。

    Webサーバのドキュメントルート以下以外の場所に、1つディレクトリを準備して下さい。必ずドキュメントルート以下以外です。
    ドキュメントルート以下にテンプレートディレクトリを設定すると、スクリプト内容が全てブラウザから閲覧可能になってしまいます。

    テンプレート用ディレクトリを準備したら、その中に、このサイトからダウンロードした「テンプレート」ファイルを展開して得られる、scriptsディレクトリ以下(test と sample )をディレクトリごとコピーして下さい。動作確認用テンプレートおよびテンプレート/スクリプトサンプルが格納されています。

  6. 設定ファイルの編集

    .ssmrc を編集します。
    とりあえず必要なのは、変数 $prefix の設定です。この変数の値として、上記で設定したテンプレート用ディレクトリのパスを絶対バスで設定して下さい。

    #グローバル設定
    $debug = 0;
    $prefix = "/path/to/templates/dir"; #<--この行を編集
    #$htmldir = "html";
    #$funcdir = "func";
    #$funcext = ".pl";
    #$charset = "EUC-JP"; # EUC-JP, Shift_JIS, UTF-8
  7. 動作確認

    テスト用テンプレートをリクエストしてみましょう。
    スクリプト本体をリクエストするURLに続けて、「/test/env2.html」と打ち込みブラウザからリクエストして下さい。

    例) http://localhost/cgi/ssm2/test/env2.html

    Webサーバの環境変数(%ENVの値)が表示されればOKです。


  8. 重要:動作確認の後始末

    動作確認が終わったら、公開サイトのtestおよびsampleテンプレートは、アクセスできないように削除して下さい。
    サーバ環境変数などが全て閲覧できてしまうので、危険です。
    できれば、動作確認は管理者だけがアクセスできる環境で行うのがベターです。


応用

あとは自由に応用して下さい。動作確認テンプレートやサンプルテンプレートを見ながらやってみて下さい。
サンプルテンプレートはこのサイトからも見ることができます。