Υ󥹥ȡˡ

ǤϡΥ󥹥ȡˡˤĤƵҤޤ

ư뤿ˤϡ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 $
