ここでは、影舞のインストール方法について記述します。
影舞が動作するためには、Webサーバ と Ruby が必要ですが、 それらのインストール方法などについては、ここでは基本的に解説しません。 また、Webサーバの設定についての記述については、 Apache をベースにしていますので、 利用する環境に応じて適時読み替えてください。
Quick Start
install_ja.rb を用いたインストール
mod_ruby の利用
FastCGI の利用
FastCGI の利用 (Windows/Apache2.2の場合)
PostgreSQL の利用
MySQL の使用
SQL Server の使用
RMagickを用いた画像認証
GD, GDChart を用いたグラフの作成
メールインタフェースの設定
手動でのインストール例
ここでは、影舞をとりあえず動作させて試すための方法を記述します。
$ cd /home/fukuoka/public_html $ tar xfvz kagemai-0.8.7.tar.gz $ mv kagemai-0.8.7 kagemai
$ cat html/.htaccess Options +ExecCGI AddHandler cgi-script .cgi
home_url | サイトのトップなど |
---|---|
project_dir | プロジェクトのデータを保存する場所 |
$ 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 を用いたインストールについて説明します。
# groupadd kagemai
# gpasswd -a apache kagemai
$user | データ用ディレクトリのユーザのID。 |
---|---|
$group | データ用ディレクトリのグループのID。 |
$root_dir | 影舞のライブラリ、リソースなどのディレクトリ |
$html_dir | Web からアクセス可能な、CGI スクリプトなどを置くディレクトリ |
$data_dir | プロジェクトのデータを保存するディレクトリ |
$passwd_dir | .htaccess での認証用のパスワードを置くディレクトリ |
# ruby install_ja.rb
影舞 0.8.0 以降から、mod_ruby で動作させることが可能になりました。 dot.htaccess を参考に、guest.cgi, user.cgi, admin.cgi がそれぞれ、 mod_ruby で起動するように設定してください。
*.cgi の拡張子をたとえば、.rbx に変更する場合には、例えば 以下のようにしてください。
$ cp -p guest.cgi guest.rbx $ cp -p user.cgi user.rbx $ cp -p admin.cgi admin.rbx
guest_mode_cgi : guest.rbx user_mode_cgi : user.rbx admin_mode_cgi : admin.rbx
影舞 0.8.7 から、FastCGI 環境で動作させることが可能になりました。 guest.fcgi, user.fcgi, admin.fcgi を利用してください。
以下、Linux(Fedora7) でのセットアップ例です。
$ wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz $ tar xfvz fcgi-2.4.0.tar.gz $ cd fcgi-2.4.0 $ ./configure $ make $ su # make isntall
# gem install fcgi
# yum install mod_fcgid
LoadModule fcgid_module modules/mod_fcgid.so <IfModule !mod_fastcgi.c> AddHandler fcgid-script fcgi </IfModule>
#!/usr/bin/ruby require 'rubygems' require 'fcgi' FCGI.each_cgi {|cgi| print "Content-type: text/plain; charset=iso-8859-1\n\n"; print "hello world\n" }
guest_mode_cgi : guest.fcgi user_mode_cgi : user.fcgi
<Files *.fcgi> deny from all </Files>
ここでは、Windows 上の Apache 2.2 で影舞を FastCGI で動かす方法を説明します。
LoadModule fastcgi_module modules/mod_fastcgi.dll AddHandler fastcgi-script fcgi FastCgiConfig -startDelay 30
FastCgiConfig -initial-env PATH=C:\MySQL\bin
FastCgiConfig -initial-env PATH
#!C:/ruby/bin/ruby.exe require 'rubygems' require 'fcgi' FCGI.each_cgi {|cgi| print "Content-type: text/plain; charset=iso-8859-1\n\n"; print "hello world\n" }
guest_mode_cgi : guest.fcgi user_mode_cgi : user.fcgi
#!/usr/bin/rubyをたとえば以下のように変更。
#!C:/ruby/bin/ruby.exe
<Files *.fcgi> deny from all </Files>
ここでは、 PostgreSQL を用いてデータ保存を行うために必要な設定について説明します。 ただし、PostgreSQL 自体のインストールについては説明しません。また、 PostgreSQL を用いたデータの保存を行わない場合には、以下の設定は必要ありません。
# gem install postgres
$ tar xfvz dbi-0.1.1.tar.gz.tar.gz $ cd ruby-dbi $ ruby setup.rb config --with=dbi,dbd_pg,dbd_mysql $ ruby setup.rb setup $ su # ruby setup.rb install
$ createdb --encoding EUC-JP kagemai
$ 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
postgres_host | PostgreSQL が動作しているホスト名。Unix ドメインソケットを利用している場合には、PostgreSQL で設定したディレクトリを指定。デフォルトは、/tmp。 |
---|---|
postgres_port | TCP で接続する場合のポート番号 |
postgres_user | PostgreSQL アカウントのユーザ名 |
postgres_pass | PostgreSQL アカウントのパスワード |
postgres_dbname | PostgreSQLの影舞用のデータベース名 |
ここでは、MySQL を用いてデータ保存を行うために必要な設定について説明します。
# gem install mysql
$ mysql -u root -p mysql> create database kagemai;
mysql> grant all on kagemai.* to kagemai@localhost;
mysql_host | MySQLが動作しているホスト名。デフォルトは、'localhost'。 |
---|---|
mysql_port | MySQLのポート番号。デフォルトは 3306。 |
mysql_user | MySQLのユーザ名 |
mysql_pass | MySQLのパスワード |
mysql_dbname | MySQLの影舞用のデータベース名 |
ここでは、SQL Server を用いてデータ保存を行うために必要な設定について説明します。
> tar xfvz dbi-0.1.1.tar.gz.tar.gz > cd ruby-dbi > ruby setup.rb config --with=dbi,dbd_ado > ruby setup.rb setup > ruby setup.rb install
mssql_dns | SQL Server のデータベースの指定。デフォルトは、"Provider=SQLOLEDB;Server=.\SQLEXPRESS;Database=kagemai" になっています。
|
---|---|
mssql_user | SQL Serverのユーザ名 |
mssql_pass | SQL Server のパスワード |
RMagick をインストールすることで、ゲストによる投稿に画像認証をかけることができます。
# gem install RMagick
GD と GDChart をインストールすれば、レポート数の累積グラフを表示できます。 グラフが必要なければ、以下の設定を行う必要はありません。
以下の説明でインストールするライブラリは、 http://www.daifukuya.com/archive/kagemai/lib/ にも置いてあります。影舞の動作確認に使用したバージョンが置いてありますが、 各ライブラリは最新のものでは無いかもしれません。
$ 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
$ 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
$ tar xfvz ruby-gdchart-0.0.9-beta.tar.gz $ cd ruby-gdchart-0.0.9-beta $ ruby extconf.rb $ make $ sudo make install
メールインタフェースを使用するには、まず、mailif.rb 中の kagemai_root, config_file, $LOGFILE の3つの変数が適切に設定されている必要があります。 (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' ヘッダを用いて自動的に判定されます。
ここでは、すべての設定を手動で行った場合のインストール例を示します。
影舞のライブラリなど : /usr/local/kagemai CGI スクリプトなど : /var/www/html/kagemai データ用ディレクトリ : /var/lib/kagemai
$ 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
# groupadd kagemai # cd /var/lib # chgrp -R kagemai kagemai # chmod -R 02770 kagemai
# gpasswd -a apache kagemai
project_dir : /var/lib/kagemai base_url : http://www.example.net/kagemai/
以上。