Secure-SBM のインストール

マイクロソフト社の Windows でのインストールについては 「Windows 上でのインストール」 をご覧下さい.

以下は Linux (Fedora Core 6)上で Secure-SBM を動かすための手順です.

Debian/GNU Linux 等,他のディストリビューションで動作した場合には, Satoshi.Ikarashi@… までご一報いただけると幸いです.手順をアップデートいたします.

インストールの流れ

  1. Secure-SBM のインストール
    1. Version 0.2 からのバージョンアップ
    2. Linux のインストール
    3. Perl のインストール
      1. バージョン確認と最新版 Perl のインストール
      2. gcc のインストール
      3. CPAN モジュールのアップデート
      4. Catalyst モジュールのインストール
    4. PostgreSQL のインストール
    5. Secure-SBM ソフトウェアのダウンロード
    6. PostgreSQL のユーザの作成
    7. PostgreSQL データベースの作成
    8. Secure-SBM の起動
    9. ブラウザでの確認
    10. ネットワーク経由でのアクセス
    11. デバッグモードの取り外し
  2. ロールとユーザの追加
  3. Apache でサービスを提供する
    1. Apache のインストールと動作確認
    2. mod_perl のインストール
    3. Catalyst モジュールのインストール
    4. セッションデータのクリーニング
    5. テンプレートの設定
    6. Apache の起動
    7. ネットワークの設定
  4. admin での設定

Version 0.2 からのバージョンアップ

Linux のインストール

実行環境の構築は管理者権限のあるユーザ(rootなど)で行ってください. Linux はインストール済みであることを想定しています.Fedora Core 6 にて追加のソフトウェアセットを選択せずにインストールが終了していることを前提に説明を進めます(Fedora Core 6 では「オフィスとプロダクティビティ」「ソフトウェア開発」「ウェブサーバー」「Fedra Extras」が選択できますが,いずれも選択せずにインストールしたものとします).他のディストリビューションでも標準的なインストールが終了していれば,同様の手順で Secure-SBM のインストールが可能でしょう.

Fedora Core 6 のインストールが終了し,root でログインするとパッケージアップデータがパッケージの更新を知らせますので,これを適用します.

Perl のインストール

Secure-SBM の実行には Perl 5 と Perl の CPAN モジュールが必要です.本格的に稼動させる場合には Apache が必要になりますが,Apache を使用する場合には一旦,Secure-SBM の動作を確認してから設定を行います(動作確認後に「Apache でサービスを提供する」 を参照してください).

バージョン確認と最新版 Perl のインストール

以下のコマンドを入力し,バージョン確認(perl が使えることを確認)し,最新版に更新しておきます.

perl -v
yum -y update perl

gcc のインストール

CPAN のモジュールをインストールする際,いくつかのモジュールは C コンパイラを必要とします.そのために,gcc 等をインストールしておきます.

yum -y install gcc

CPAN モジュールのアップデート

Fedora Core 6 のインストールが終了した状態では,perl の CPAN モジュールが古いものになっています.CPAN モジュールのバージョン確認は

cpan -v

を実行して確認します.

(Fedora 9 では、デフォルトで CPAN がインストールされませんでした。root 権限で

yum -y install perl-CPAN

を実行して、CPAN をインストールします。)

このドキュメントの執筆時点で cpan のバージョンは 1.9102 です. CPAN モジュールをアップデートするには以下のコマンドを入力します.

cpan -i CPAN

初めて cpan コマンドを使用する場合,設定を行うためにいくつかの質問に答える必要があります.その後,CPAN モジュールのインストールが行われます.初期の設定とインストールの例はこちらをご覧ください.

インストール後に改めて,cpan のバージョンを確認します.

Catalyst モジュールのインストール

次に,実行に必要となる Perl のモジュールをインストールします.

以下のリストは必要となるモジュールです.数字は開発時のバージョンを表しています.このバージョンよりも新しいものであれば,まず問題なく動作するでしょう.

  • Catalyst -- 5.7007
  • Catalyst::Model::DBIC::Schema
  • Catalyst::Plugin::Authentication -- 0.09
  • Catalyst::Plugin::Authentication::Credential::Password -- (0.09)
  • Catalyst::Plugin::Authentication::Store::DBIC -- 0.07
  • Catalyst::Plugin::Charsets::Japanese -- 0.06
  • Catalyst::Plugin::ConfigLoader -- 0.14
  • Catalyst::Plugin::Session -- 0.14
  • Catalyst::Plugin::Session::State::Cookie -- 0.07
  • Catalyst::Plugin::Session::Store::FastMmap -- 0.02
  • Catalyst::Plugin::Static::Simple -- 0.17
  • DBIx::Class -- 0.07005
  • DBIx::Class::Schema::Loader
  • Digest::SHA -- 5.44
  • DateTime -- 0.39 (Secure-SBM 0.4 以降で必要)
  • Bookmarks::Parser -- 0.01 (Secure-SBM 0.4 以降で必要)

( Fedora 9 では以下のインストールが必要:

  • Text::SimpleTable
  • Catalyst::View::TT
  • Catalyst::Action::RenderView

)

  • Catalyst::Devel (開発用)
  • Catalyst::Plugin::StackTrace -- 0.06 (デバッグ用)
  • DBD::Pg (PostgreSQL のインストール後にインストール)

各モジュールのインストールは以下のようにして行います.

cpan -fi Catalyst

依存関係により,インストールの途中で追加のモジュールをインストールするかどうかを尋ねられますが,基本的にすべてインストールします.

同様にして上に列挙したモジュールをすべてインストールします.ただし,DBD::Pg は,PostgreSQL のインストール終了後にインストールします.

PostgreSQL のインストール

PostgreSQL サーバのパッケージをインストールし,PostgreSQL サーバを起動します.

yum -y install postgresql-server

(Fedora 9 では、データベースが初期化されていないので、以下のコマンドで初期化します。

service postgresql initdb
touch /var/lib/pgsql/data/global/pg_control

)

chkconfig postgresql on; chkconfig --list postgresql
(cd /; env - /etc/rc.d/init.d/postgresql start)

実行環境には必要はないのですが,perl のモジュール DBD::Pg をインストールするために必要ですので,postgresql-devel をインストールします.

yum -y install postgresql-devel

postgresql-devel をインストール後,perl の DBD::Pg モジュールをインストールします.

cpan -fi DBD::Pg

Secure-SBM ソフトウェアのダウンロード

ダウンロード」からソフトウェアをダウンロードして適当なディレクトリに展開してください.ダウンロードしたファイルを downloadfile とすると,以下のように実行します.

  • Version 0.2.0 の場合
    unzip downloadfile
    

ここでは,"/home/ssbm/" に展開したものとして話を進めます."cd /home/ssbm" で作業ディレクトリに移ります.

PostgreSQL のユーザの作成

初期の設定では,PostgreSQL データベースで使用するデータベース名,ユーザとそのパスワードはそれぞれ ssbmdb, ssbm, ssbm となっています.securesbm.yml の以下の行を変更します.

Model::SecureSBMDB:
  connect_info:
    - 'dbi:Pg:dbname=ssbmdb' <= データベース名
    - 'ssbm' <= ユーザ名
    - 'ssbm' <= パスワード
    -  AutoCommit: 1

単に動作を確認するだけの場合にはこのままでも構いませんが,セキュリティ上好ましくないので,設定を変更して作業を進めます.ここでは,データベース名,ユーザ名,パスワードをそれぞれ newdb, user1, pwd1 と設定するものとします.

変更後の設定は以下のようになります.

Model::SecureSBMDB:
  connect_info:
    - 'dbi:Pg:dbname=newdb'
    - 'user1'
    - 'pwd1'
    -  AutoCommit: 1

PostgreSQL の初期設定では,データベースにアクセスするユーザの認証に ident を使用します.今回は,ident を使用しないため,ローカルユーザからのアクセスを信用するように設定します.

PostgreSQL の実行環境の設定を確認します.Fedora Core 6 では, PostgreSQL の設定ファイルは "/var/lib/pgsql/data" にあります.このなかで,pg_hba.conf ファイルを編集します.

*** pg_hba.conf.org     2007-03-19 17:33:48.000000000 +0900
--- pg_hba.conf 2007-03-19 17:33:48.000000000 +0900
***************
*** 64,70 ****
  # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
  
  # "local" is for Unix domain socket connections only
! local   all         all                               ident sameuser
  # IPv4 local connections:
  host    all         all         127.0.0.1/32          ident sameuser
  # IPv6 local connections:
--- 64,71 ----
  # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
  
  # "local" is for Unix domain socket connections only
! #local   all         all                               ident sameuser
! local   all         all                               trust
  # IPv4 local connections:
  host    all         all         127.0.0.1/32          ident sameuser
  # IPv6 local connections:

ここでは,ローカルユーザはすべて信用するように設定しました.この設定ファイルを変更した後,PostgreSQL を再起動しておきます.

(cd /; env - /etc/rc.d/init.d/postgresql restart)

データベースにアクセスするためのユーザを作成します.これは postgresql ユーザになって,作業を行う必要があります.

su - postgresql

createuser コマンドを使用して,ユーザを作成します.securesbm.yml ファイルで設定したユーザ名 user1 とパスワード pwd1 を以下のように入力します.

-bash-3.1$ createuser -SdRW user1
Password: <= ここでパスワードを入力します.上で設定した "pwd1" を入力しました.
CREATE ROLE

これで,データベースにアクセスするためのユーザが作成できました.

PostgreSQL データベースの作成

psql コマンドを用いて,データベースを作成します.上で securesbm.yml で設定したとおりデータベース名 newdb,ユーザ名 user1 として設定します.

-bash-3.1$ psql
Welcome to psql 8.1.8, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=# CREATE DATABASE newdb OWNER user1; <= securesbm.yml で設定したデータベース名とユーザ名を入力します.
CREATE DATABASE
postgres=# \q  <= 終了する場合には  \q を入力します.

-bash-3.1$ exit
# 

ここまでで,postgresql ユーザでの作業は終了です.

ダウンロードして展開したファイルの中に createPostgreSQLTables.sql というファイルがあります.このファイルを使用して,データベースを作成します.

psql -U user1 newdb < createPostgreSQLTables.sql
[root@localhost SecureSBM]# psql -U user1 newdb < createPostgreSQLTables.sql 
NOTICE:  CREATE TABLE will create implicit sequence "users_user_id_seq" for serial column "users.user_id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "users_pkey" for table "users"
NOTICE:  CREATE TABLE / UNIQUE will create implicit index "users_user_email_key" for table "users"
CREATE TABLE
NOTICE:  CREATE TABLE will create implicit sequence "roles_role_id_seq" for serial column "roles.role_id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "roles_pkey" for table "roles"
NOTICE:  CREATE TABLE / UNIQUE will create implicit index "roles_role_name_key" for table "roles"
CREATE TABLE
...
...
CREATE TABLE
NOTICE:  CREATE TABLE will create implicit sequence "adminstatus_adminstatus_id_seq" for serial column "adminstatus.adminstatus_id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "adminstatus_pkey" for table "adminstatus"
NOTICE:  CREATE TABLE / UNIQUE will create implicit index "adminstatus_adminstatus_proxy_key" for table "adminstatus"
CREATE TABLE
INSERT 0 1
INSERT 0 1
...
...
INSERT 0 1
INSERT 0 1
[root@localhost SecureSBM]# 

これで,データベースの準備ができました.

Secure-SBM の起動

まずは,何も変更せずに Secure-SBM が動作することを確認します.以下のコマンドを実行します.(一般ユーザで実行可能です)

./script/securesbm_server.pl

このコマンドにより,ポート 3000 番にアクセスすることで,アプリケーションを起動できます.

出力例:

[root@localhost SecureSBM]# ./script/securesbm_server.pl 
You can connect to your server at http://localhost.localdomain:3000

これでサーバの準備ができました.

ブラウザでの確認と管理者パスワード変更

インストール時のブラウザでの確認と管理者パスワード変更」をご覧下さい.

ネットワーク経由でのアクセス

localhost 以外から Secure-SBM にアクセスするためには,ポート 3000 番への外部からのアクセスを許可する必要があります.

GNOME などの X Window を使用している場合は,「システム」→「管理」→「セキュリティレベルとファイアウォールの設定」を選択します.

「その他のポート」をクリックします.

「追加」をクリックすると下のような画面が出てきますので,ポート番号 3000 を入力します.

「OK」を押して,完了です.

最後に設定を上書きするかどうかをたずねるダイアログが出てきますので,設定に間違いがなければ,そのまま適用します.

これで,外部からのアクセスの準備ができました.下の図は,外部のクライアント(Windows IE7)からアクセスした例です.

デバッグモードの取り外し

ダウンロードしたままの状態では,デバッグモードがオンになっています.開発には参加せずに使用するだけであれば,デバッグモードは必要ありませんので,これを外します.

--- lib/SecureSBM.pm    (リビジョン 199)
+++ lib/SecureSBM.pm    (作業コピー)
@@ -10,13 +10,10 @@
 # Static::Simple: will serve static files from the applications root directory
 #
 use Catalyst qw/
-               -Debug
                ConfigLoader
                Static::Simple
                Charsets::Japanese
 
-               StackTrace
-
                Authentication
                Authentication::Store::DBIC
                Authentication::Credential::Password

上記のように lib/SecureSBM.pm から "-Debug" と "StackTrace" の行を削除します.削除した後は,securesbm-server.pl を再起動する必要があります.

ロールとユーザの追加

admin は管理者ですので,Secure-SBM を使用するためには,ロールとユーザを追加する必要があります. ロールとユーザの追加については「admin の使用方法」をご覧ください.

Apache でサービスを提供する

Secure-SBM で使用している Catalyst は,Apache の mod_perl を利用した場合に最適になるように作られています.本格的に運用する場合には,Apache を使用してサービスを提供します.

Apache のインストールと動作確認

Fedora Core 6 では,Apache 2.0 が標準でインストールされています.yum を使用してアップデートした後,そのままの状態で動作するかどうかを確認します.いずれも root 権限で行います.

[root@localhost ~]# yum -y update httpd
[root@localhost ~]# ( cd /; env - /etc/rc.d/init.d/httpd start)
httpd を起動中:                                            [  OK  ]
[root@localhost ~]# 

この後,ブラウザで  http://localhost/ にアクセスしてみます.以下のように表示されれば正しく動作しています.

動作の確認が終了したら,httpd を停止します.

[root@localhost ~]# /etc/rc.d/init.d/httpd stop
httpd を停止中:                                            [  OK  ]
[root@localhost ~]# 

mod_perl のインストール

mod_perl をインストールします.

yum -y install mod_perl

mod_perl のインストールが終了すると,/etc/httpd/conf.d/perl.conf が作成されています.ここに変更を加えます.ダウンロードした Secure-SBM のディレクトリに mod_perl.conf というファイルがあります.

PerlSwitches -I/var/www/SecureSBM/lib
PerlModule SecureSBM
    
<Location />
        SetHandler modperl
        PerlResponseHandler SecureSBM
</Location>

これは /etc/httpd/conf.d/perl.conf に追加するための設定ですが,Secure-SBM のディレクトリが /var/www/SecureSBM であることを想定しています.このディレクトリの場所を変更する場合には設定も変更します.この設定ファイルの内容を /etc/httpd/conf.d/perl.conf に記述します.

Catalyst モジュールのインストール

perl 側にもモジュールが必要になります.以下のモジュールをインストールします.

  • Catalyst::Engine::Apache2
cpan -fi Catalyst::Engine::Apache2

セッションデータのクリーニング

一度,securesbm-server.pl を実行したことがあると,/tmp/securesbm のパーミッションなどで起動できませんので /tmp/securesbm を削除します.

rm -rf /tmp/securesbm

デバッグモードはログを大量に書き出しますのでログが肥大するとともにパフォーマンスに影響します.「デバッグモードの取り外し」で記述したように,デバッグモードを外しておきます.

注: Version 0.2.0 では,デバッグログの出力を止めることができません.

テンプレートの設定

securesbm.yml に記述したテンプレートのパスを絶対パスに書き換えます.

View::TT:
  INCLUDE_PATH:
    - 'root/template'
  TEMPLATE_EXTENSION: '.tt'

この部分を以下のように変更します.

View::TT:
  INCLUDE_PATH:
    - '/var/www/SecureSBM/root/template'
  TEMPLATE_EXTENSION: '.tt'

Apache の起動

httpd を起動します.

[ikarashi@localhost SecureSBM]$ sudo su - root -c "(cd /; env - /etc/rc.d/init.d/httpd start)"
httpd を起動中:                                            [  OK  ]
[ikarashi@localhost SecureSBM]$ 

これで, http://localhost/ へアクセスして,Secure-SBM のトップページが表れることを確認します.

ネットワークの設定

ネットワーク経由で localhost 以外のクライアントからアクセスする場合は,「ネットワーク経由でのアクセス」で設定したように http のポートを外部からアクセスできるようにします.標準の http ポートで使用する場合には「その他のポート」ではなく「http」にチェックを入れて適用します.

さらに,パスワードなどが平文でネットワークを流れますので,SSL (https) などで暗号化することを推奨します.この場合にも使用するポートが変わりますので,外部からのアクセスのための設定(https ポートへの許可)が必要になります.

admin での設定

管理者権限 admin での管理については「admin の使用方法」をご覧ください.


トップページへ