影舞のインストール方法

ここでは、影舞のインストール方法について記述します。

影舞が動作するためには、Webサーバと Ruby が必要ですが、それらのインストール方法
などについては、ここでは基本的に解説しません。また、Webサーバの設定についての記
述については、 Apache をベースにしていますので、利用する環境に応じて適時読み替
えてください。

目次

Quick Start
install_ja.rb を用いたインストール
RMagickを用いた画像認証
mod_ruby の利用
PostgreSQL の利用
MySQL の使用
MySQL の使用
SQL Server の利用
GD, GDChart を用いたグラフの作成
メールインタフェースの設定
手動でのインストール例

Quick Start

ここでは、影舞をとりあえず動作させて試すための方法を記述します。

 1. 影舞のアーカイブを Web アクセス可能な場所に、展開する。

      $ cd /home/fukuoka/public_html
      $ tar xfvz kagemai-0.8.7.tar.gz
      $ mv kagemai-0.8.7 kagemai

 2. guest.cgi がある場所に、Web サーバが書き込めるように適切にパーミッションを
    変更する。
    4で、Web サーバによって kagemai.conf という設定ファイルが作成されます。
    su_exec などが有効になっていれば、必要ないかもしれません。
 3. html/guest.cgi に Web ブラウザからアクセスする。
    http:/www.example.net/~fukuoka/kagemai/html/guest.cgi など。
    *.cgi ファイルが CGI プログラムとして扱われない場合には、 .htaccess などを
    設定してください。

      $ cat html/.htaccess
      Options +ExecCGI
      AddHandler cgi-script .cgi

 4. "管理" -> "全体の設定変更" で、以下の部分を適当に変更する。

     home_url   サイトのトップなど
    project_dir プロジェクトのデータを保存する場所

 5. project_dir で指定したディレクトリが存在しないなら、 Web サーバがそのディレ
    クトリを作成できるようにパーミッションを変更しておく。
    あるいは、そのディレクトリをあらかじめ作成し、 Web サーバが書き込み権限を持
    つようにパーミッションを設定する。
    su_exec などが有効になっていれば、必要ないかもしれません。
 6. "管理" -> "プロジェクトの作成" で、プロジェクトを作成してみる。
 7. user.cgi, admin.cgi などに、必要に応じてアクセス制限をかける。
    html/dot.htaccess を参考にしてください。

      $ cat html/.htaccess
      <Files "*.conf*">
        deny from all
      </Files>

      <Files user.cgi>
        AuthName      Kagemai-User
        AuthType      Basic
        AuthUserFile  /etc/kagemai/user.passwd
        Require       valid-user
      </Files>

      <Files admin.cgi>
        AuthName      Kagemai-Administrator
        AuthType      Basic
        AuthUserFile  /etc/kagemai/admin.passwd
        Require       valid-user
      </Files>


install_ja.rb を用いたインストール

ここでは、install_ja.rb を用いたインストールについて説明します。

 1. kagemai グループの作成
    Web ブラウザからの利用の他に、メールでのデータの受付を行う場合には、影舞の
    データへのアクセス用のグループを作成しておきます。

      # groupadd kagemai

    そして、とりあえず Web サーバのユーザ(例えば apache)を作成したグループに追
    加します。

      # gpasswd -a apache kagemai

 2. install_ja.rb の編集
    instann_ja.rb 内の、以下の変数を必要に応じて編集してください。

       $user    データ用ディレクトリのユーザのID。
      $group    データ用ディレクトリのグループのID。
     $root_dir  影舞のライブラリ、リソースなどのディレクトリ
     $html_dir  Web からアクセス可能な、CGI スクリプトなどを置くディレクトリ
     $data_dir  プロジェクトのデータを保存するディレクトリ
    $passwd_dir .htaccess での認証用のパスワードを置くディレクトリ

    $user, $gorup は指定する必要がなければ、それぞれコメントアウトしてください
    。
    $user を指定して、$group を指定しない場合には、データ用ディレクトリと、そこ
    に置かれるファイルのパーミッションは、それぞれ、0755, 0644 になります。それ
    以外では、ディレクトリは 02775, ファイルは 0664 になります。
 3. install_ja.rb の実行
    編集が終わったら、install_ja.rb を実行します。（必要なら root になって。）

      # ruby install_ja.rb

 4. 動作の確認
    guest.cgi にアクセスして、正しく表示されるか確認します。
    正しく表示されるようであれば、 "管理" -> "プロジェクトの作成" で、プロジェ
    クトを作成してみます。プロジェクトが作成できるなら、そのプロジェクトでレポ
    ートを投稿してみます。

RMagickを用いた画像認証

RMagickをインストールすることで、ゲストによる投稿に画像認証をかけることができま
す。

 1. RMagickをいれる
    ImageMagickをインストールしていない場合には、先にImageMagickをインストール
    してください。

      # gem install RMagick

 2. captcha_font, captcha_char_lengthの設定
    影舞の全体の設定で、captch_font に画像認証に使用するTrueTypeフォントのパス
    を設定してください。また、captcha_char_length に画像認証で表示するの文字の
    長さを設定してください（1以上）。
 3. 動作の確認
    ゲストで新規投稿とリプライのフォームを開いて、それぞれ画像認証が追加されて
    いることを確認します。

mod_ruby の利用

影舞 0.8.0 以降から、mod_ruby で動作させることが可能になりました。 dot.htaccess
を参考に、guest.cgi, user.cgi, admin.cgi がそれぞれ、 mod_ruby で起動するように
設定してください。

*.cgi の拡張子をたとえば、.rbx に変更する場合には、例えば以下のようにしてくださ
い。

 1. guest.cgi, user.cgi, admin.cgi をそれぞれ *.rbx としてコピー。

      $ cp -p guest.cgi guest.rbx
      $ cp -p user.cgi user.rbx
      $ cp -p admin.cgi admin.rbx

 2. admin.cgi にアクセスして、"全体の設定" から以下の項目を変更する。

      guest_mode_cgi : guest.rbx
      user_mode_cgi  : user.rbx
      admin_mode_cgi : admin.rbx

 3. guest.rbx でアクセスしてみる。

PostgreSQL の利用

ここでは、 PostgreSQL を用いてデータ保存を行うために必要な設定について説明しま
す。ただし、PostgreSQL 自体のインストールについては説明しません。また、
PostgreSQL を用いたデータの保存を行わない場合には、以下の設定は必要ありません。

 1. Ruby/Postgres を入れる
    http://www.postgresql.jp/interfaces/ruby/index-ja.htmlからダウンロードして
    、インストールします。

       $ tar xfvz ruby-postgres-0.7.1.tar.gz
       $ cd ruby-postgres-0.7.1
       $ ruby extconf.rb
       $ make
       $ su
       # make install

 2. Ruby/DBI を入れる
    http://rubyforge.org/projects/ruby-dbi/からダウンロードしてインストールしま
    す。

      $ tar xfvz ruby-dbi-all-0.1.0.tar.gz
      $ cd ruby-dbi-all
      $ ruby setup.rb config --with=dbi,dbd_pg,dbd_mysql
      $ ruby setup.rb setup
      $ su
      # ruby setup.rb install

 3. 影舞用のデータベースを作成する。
    エンコーディングとして EUC-JP を指定してください。

      $ createdb --encoding EUC-JP kagemai

 4. PostgreSQL に影舞用のアカウントを作成する。

      $ createuser kagemai
      Shall the new role be a superuser? (y/n) n
      Shall the new role be allowed to create databases? (y/n) n
      Shall the new role be allowed to create more new roles? (y/n) n
      CREATE ROLE

 5. "全体の設定の変更" で、enable_postgres を true にする。
    また、以下の項目を設定する。

                    PostgreSQL が動作しているホスト名。Unix ドメインソケットを
     postgres_host  利用している場合には、PostgreSQL で設定したディレクトリを指
                    定。デフォルトは、/tmp。
     postgres_port  TCP で接続する場合のポート番号
     postgres_user  PostgreSQL アカウントのユーザ名
     postgres_pass  PostgreSQL アカウントのパスワード
    postgres_dbname PostgreSQLの影舞用のデータベース名

 6. プロジェクトの作成で、データの保存形式として、PostgresStore が選択可能にな
    っていることを確認する。
 7. データの保存形式として PostgresStore を選んでプロジェクトを作成してみる。

MySQL の使用

ここでは、MySQL を用いてデータ保存を行うために必要な設定について説明します。

 1. MySQL/Ruby、もしくは、Ruby/MySQL を入れる
    http://tmtm.org/mysql/ からダウンロードして、インストールします。
 2. PostgreSQL 用の設定と同じように Ruby/DBI を入れる。
 3. MySQL に影舞用のデータベースを作成する。

      $ mysql -u root -p
      mysql> create database kagemai;

 4. MySQL に影舞用のユーザを作成する。
    影舞用のデータベースにアクセスできるユーザーを作成します。

      mysql> grant all on kagemai.* to kagemai@localhost;

    必要に応じて、パスワードも設定してください。
 5. "全体の設定の変更" で、enable_mysql を true にする。
    また、以下の項目を設定する。

     mysql_host  MySQLが動作しているホスト名。デフォルトは、'localhost'。
     mysql_port  MySQLのポート番号。デフォルトは 3306。
     mysql_user  MySQLのユーザ名
     mysql_pass  MySQLのパスワード
    mysql_dbname MySQLの影舞用のデータベース名

 6. プロジェクトの作成で、データの保存形式として、MySQLStore が選択可能になって
    いることを確認する。
 7. データの保存形式として MySQLStore を選んでプロジェクトを作成してみる。

MySQL の使用

ここでは、MySQL を用いてデータ保存を行うために必要な設定について説明します。

MySQL を用いたデータ保存では、PostgreSQL の場合と違い、あらかじめデータベースを
１つ作成しておいて、それを利用します。

 1. MySQL/Ruby、もしくは、Ruby/MySQL を入れる
    http://tmtm.org/mysql/ からダウンロードして、インストールします。
 2. PostgreSQL 用の設定と同じように Ruby/DBI を入れる。
 3. MySQL に影舞用のデータベースを作成する。

      $ mysql -u root -p
      mysql> create database kagemai;

 4. MySQL に影舞用のユーザを作成する。
    影舞用のデータベースにアクセスできるユーザーを作成します。

      mysql> grant all on kagemai.* to kagemai@localhost;

    必要に応じて、パスワードも設定してください。
 5. "全体の設定の変更" で、enable_mysql を true にする。
    また、以下の項目を設定する。

     mysql_host  MySQLが動作しているホスト名。デフォルトは、'localhost'。
     mysql_port  MySQLのポート番号。デフォルトは 3306。
     mysql_user  MySQLのユーザ名
     mysql_pass  MySQLのパスワード
    mysql_dbname MySQLの影舞用のデータベース名

 6. プロジェクトの作成で、データの保存形式として、Kagemai::MySQLStore が選択可
    能になっていることを確認する。
 7. データの保存形式として Kagemai::MySQLStore を選んでプロジェクトを作成してみ
    る。

SQL Server の利用

SQL Server を利用するには以下の設定を行う必要があります。

 1. SQL Server に影舞用のユーザを作成する。このユーザは create database 権限が
    必要。
 2. 影舞を実行するマシンの ODBC 設定で、システム DNS に SQL Server を設定する。
 3. 全体の設定で enable_mssql を true にする。
 4. mssql_dns にシステム DNS に設定した名前を入れる。
 5. mssql_user と mssql_pass に SQL Server のユーザ名とパスワードを入れる。
 6. プロジェクトの作成で、Kagemai::MSSQLStore が選択可能になっていることを確認
    する。
 7. データの保存形式として Kagemai::MSSQLStore を選んでプロジェクトを作成してみ
    る。

GD, GDChart を用いたグラフの作成

GD と GDChart をインストールすれば、レポート数の累積グラフを表示できます。グラ
フが必要なければ、以下の設定を行う必要はありません。

以下の説明でインストールするライブラリは、 http://www.daifukuya.com/archive/
kagemai/lib/ にも置いてあります。影舞の動作確認に使用したバージョンが置いてあり
ますが、各ライブラリは最新のものでは無いかもしれません。

 1. GD を入れる必要に応じて、http://www.boutell.com/gd/ からダウンロードしてイ
    ンストールします。
    PNG と TrueType フォントを有効にするためには、libpng, zlib, FreeType があら
    かじめインストールされている必要があります。(少なくとも、GD 2.0.15 では
    configure スクリプトを走らせれば、それぞれのライブラリを使用できるかどうか
    表示されます。)

      $ tar xfvz gd-2.0.15.tar.gz
      $ cd gd-2.0.15
      $ CFLAGS="-g -O2 -DJISX0208" ./configure
      ...(snip)...
      ** Configuration summary for gd 2.0.15:

       Support for PNG library:          yes
       Support for JPEG library:         yes
       Support for Freetype 2.x library: yes
       Support for Xpm library:          yes
      ...(snip)...
      $ make
      $ sudo make install

 2. Ruby/GD を入れる
    http://raa.ruby-lang.org/list.rhtml?name=ruby-gd からダウンロードしてインス
    トールします。
    --with-ttf, --with-freetype を configure 時に指定する必要があります。

      $ tar xfvz ruby-GD-0.7.4.tar.gz
      $ cd ruby-GD-0.7.4
      $ ruby extconf.rb --with-ttf --with-freetype
      $ make
      $ sudo make install

 3. Ruby/GDChart を入れる
    http://sourceforge.jp/projects/ruby-gdchart/ からダウンロードしてインストー
    ルします。(Ruby/GDChart は GDChart の拡張ライブラリですが、 GDChart は Ruby
    /GDChart のアーカイブに含まれています。)

      $ tar xfvz ruby-gdchart-0.0.9-beta.tar.gz
      $ cd ruby-gdchart-0.0.9-beta
      $ ruby extconf.rb
      $ make
      $ sudo make install

 4. enable_gdchart, gd_font, gd_charset の設定
    影舞の全体の設定で、enable-gdchart オプションを true に設定します。そして、
    gd-font に、日本語の TrueType フォントのパスを指定します。
    また、GD が -DJISX0208 オプションつきでコンパイルされていない場合は、
    gd_chasert を UTF-8 に設定してください。
 5. 動作の確認
    レポートが１つ以上投稿されているプロジェクトの統計ページを開いて、グラフが
    表示されることを確認します。
    統計ページはキャッシュされるため、レポートやリプライの投稿を行うか、プロジ
    ェクトディレクトリの cache/cache.pstore ファイルを削除しないと変更が反映さ
    れないかもしれません。

メールインタフェースの設定

メールインタフェースを使用するには、まず、mailif.rb 中の kagemai_root,
config_file, $LOGFILE の３つの変数が適切に設定されている必要があります。
(install_ja.rb でインストールした場合には、インストールした時点で自動的に適切な
値に設定されます。)

プロジェクトを作成すると、そのプロジェクト用に、 sendmail などで使用可能な
include ファイルが作成されます。これは、例えば以下のような内容になっています。

  $ cat /var/lib/kagemai/project/test/include
  "|/usr/bin/ruby /usr/local/kagemai/bin/mailif.rb test"

ここで、'test' はプロジェクトの ID です。

sendmail であれば、このファイルを呼び出すように /etc/aliases を編集して、 /etc/
aliases.db を更新します。

  # grep 'test-bugs' /etc/aliases
  test-bugs: :include:/var/lib/kagemai/project/test/include
  # /usr/bin/newaliases

include はデフォルトでは group writable なディレクトリに置かれます。必要に応じ
て別のディレクトリに移動させて使用してください。

デフォルトのメールテンプレートでは、投稿されたレポートに対応した BTS 上の URL
が挿入されますが、正しい URL を入れるためには、"全体の設定の変更" で、 base_url
を適切に設定してください。base_url は、guest.cgi がある場所までの URL です。例
えば、guest.cgi が 'http://www.example.net/kagemai/guest.cgi' にある場合には、
base_url は 'http://www.example.net/kagemai/' に設定します。

また、投稿されたメールが新規のレポートなのか、既存のレポートへのリプライなのか
は、そのメールの 'Subject', 'In-Reply-To' ヘッダを用いて自動的に判定されます。

手動でのインストール例

ここでは、すべての設定を手動で行った場合のインストール例を示します。

 1. インストールするディレクトリの決定

      影舞のライブラリなど : /usr/local/kagemai
      CGI スクリプトなど   : /var/www/html/kagemai
      データ用ディレクトリ : /var/lib/kagemai

    また、/var/www/html/kagemai に置かれたファイルは、 http://www.example.net/
    kagemai/ という URL でアクセス可能であるとします。
 2. ディレクトリの作成と、ファイルのコピー

      $ tar xfvz kagemai-0.8.7.tar.gz
      $ cd kagemai-0.8.7

      $ su
      # mkdir /usr/local/kagemai
      # mkdir /var/www/html/kagemai
      # mkdir /var/lib/kagemai
      # mkdir /var/lib/kagemai/project

      # cp -pr bin /usr/local/kagemai
      # cp -pr lib /usr/local/kagemai
      # cp -pr resource /usr/local/kagemai
      # cp -p html/* /var/www/html/kagemai

 3. ファイル中のパスの編集
    以下のファイルの、(a) 先頭の ruby のパス, (b) kagemai_root, (c) config_file
    を修正する。
     □ /usr/local/kagemai/bin/convert.rb
     □ /usr/local/kagemai/bin/mailif.rb
     □ /usr/local/kagemai/bin/migrate.rb
     □ /var/www/html/kagemai/guest.cgi
     □ /var/www/html/kagemai/user.cgi
     □ /var/www/html/kagemai/admin.cgi
    ここでは、kagemai_root は、'/usr/local/kagemai' に、 config_file は、'/var/
    www/html/kagemai/kagemai.conf' とする。
    また、mailif.rb 中の $LOGFILE を、'/var/lib/kagemai/mailif.log' にする。
 4. kagemai グループの追加とパーミッションの設定

      # groupadd kagemai
      # cd /var/lib
      # chgrp -R kagemai kagemai
      # chmod -R 02770 kagemai

    また、apache を kagemai group に追加します。

      # gpasswd -a apache kagemai

 5. 全体の設定で以下の変数を修正

      project_dir : /var/lib/kagemai
      base_url    : http://www.example.net/kagemai/


以上。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Bug Tracking System 影舞
Copyright(C) 2002-2008 FUKUOKA Tomoyuki. All Rights Reserved.
$Id: install.txt 402 2008-02-22 16:54:41Z fukuoka $
