2013年4月2日火曜日

[.tested] Joruri Mail 1.2.1 [AX3]

Joruri Mailは、Ruby(on Rails)とMySQL上で動作するIMAP4に対応したWebメールシステムです。
「Joruri CMS」と同じく、LDAP サーバを利用してユーザの集中管理をすることができます。また、ユーザ情報を組織アドレス帳として共有し、利用することができます。
本システムはオープンソース公開され、自治体を中心として利用が広がっています。最新の情報は以下のサイトを参照してください。

Joruri公式サイト

最新のリリースである、joruri Mail 1.2.1をインストールするための想定環境は以下の通りです。

[システム]
OS         : CentOS 6.2
Webサーバ  : Apache 2.2
DBシステム : MySQL 5
Ruby       : 1.9.2
Rails      : 3.0.0
Mailサーバ : SMTP, IMAP4

今回は、joruri Mail 1.2.1をARMアーキテクチャであるOpenBlocks AX3上のdebian 6.0上にインストールします。
また、debian 6.0の環境は、LXC上のゲストOSとして構築します。

OBDN技術ブログによる動作検証は、該当するソフトウェアの動作を保証およびサポートを行うものではありません。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。

<検証環境>
OpenBlocks AX3/4 Debian 6.0 kernel: 3.0.6
LXC 0.7.5 / ゲストOS: Debian 6.0

1.LXCの導入


今回、評価環境を、LXCのゲストOS(Debian squeeze)上で構築しました。
仮想化を行わない場合は、この作業は必要ありません。

LXC環境の構築について

 以下のページの手順に従って作業してください。

 OpenBlocks AX3でLXCによる仮想化を試してみる

初期設定について

先に、タイムゾーンの設定、ロケールデータの作成を行います。
ただし、lxc-createしてすぐの状態では、vimなどのツールがないため、
apt-getにより必要なものを追加する必要があります。
また、aptitudeパッケージも最初は含まれていませんので、先にaptitudeパッケージをapt-getにより導入します。

# apt-get install aptitude
# aptitude update
# aptitude install vim

 タイムゾーンの設定:
# dpkg-reconfigure tzdata

 ロケールデータの作成:
# vi /etc/locale.gen
   ja_JP.UTF-8 等の必要なロケールをアンコメント(行頭の#を消す)する

# locale-gen

また、今回は、Webメールシステムとして使用しますので、/etc/network/interfacesのeth0は、dhcpによるIPアドレス設定ではなく、固定のIPアドレスを指定します。
IPアドレスは、それぞれの環境で割り当てられたものを使用してください。
以下の例では、割り当てられたIPアドレスを、192.168.253.248、gatewayが192.168.253.1と想定しています。

auto eth0
iface eth0 inet static
    address 192.168.253.168
    network 192.168.253.0
    netmask 255.255.255.0
    broadcast 192.168.253.255
    gateway 192.168.253.1

開発環境の導入について

まず、よく利用するツールをインストールします。

# aptitude install tasksel
# tasksel install standard

開発用のツール類をインストールします。

# aptitude install build-essential

上記の作業により、LXCのゲストOS上での開発環境が構築されます。

また、LXC仮想環境の複製を行いたい場合ですが、上記の記事で導入した場合、

# ln -s /usr/local/var/lib/lxc /var/lib/lxc

と した後、元の、/var/lib/lxc/<元のコンテナ名>/config を、複製した/var/lib/lxc/<複製したコン テナ名>/configに上書きして、config内の<コンテナ名>の部分を書き換えることにより代替環境として動作させることが出 来ます。
(lxc-0.7.5では、インストール時に、/usr/local/var/lib/lxcが指定されていますが、この部分が一部のツールと整合性が取れていないようです。)

また、上記の記事にある通り、そのままではudevのインストールによりエラーが出ます。
これは記事にあるように、configファイルを変更することにより、インストールエラーそのものは出なくなります。
ただし、この場合、立ち上げたコンソールが使用出来なくなりますので、別途sshでlxcコントロール用のターミナルを確保して下さい。

2.apacheの導入


パッケージのインストール

# aptitude install apache2

 インストールのみで起動します。

mod_rewriteを有効にする

# a2enmod rewrite


3.mysqlの導入


パッケージのインストール

# aptitude install mysql-server

 インストール時にMySQLを管理するrootユーザのパスワードを聞かれるため、
 予め決めておく必要があります。

動作確認

# mysql -u root -p

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
2 rows in set (0.00 sec)

mysql>



4.joruri Mailパッケージのインストールのための事前準備


以下のマニュアルを参考に作業を進めます。ただし、想定環境がCentOS 6.2であるため、debian 6.0では導入するパッケージや、設定方法が異なります。

Joruri Mail v1.2.1 インストールマニュアル

まずは、root権限で作業を行います。

必要なパッケージの導入

apache(httpd)、mysqlに関してはすでに上記で導入作業を行っているため、必要ありません。
aptitudeコマンドにより、以下のパッケージを導入してください。

# aptitude install <パッケージ名>
libxslt-dev
libjpeg-dev
libpng-dev
librsvg2-dev
ghostscript
imagemagick
libmagickcore-dev
libmagickwand-dev
libcurl4-openssl-dev
libsasl2-dev
libsasl2-modules-ldap
apache2-dev

必要なソースコードファイルのダウンロード

 インストールマニュアルの通り、wgetコマンドによりダウンロードを行います。

 # cd /usr/local/src
 # wget http://joruri.org/download/jorurimail/jorurimail-1.2.1.tar.gz
 # wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
 # wget http://rubyforge.org/frs/download.php/74445/rubygems-1.6.2.tgz

Joruriユーザの作成

  # useradd joruri
  # passwd joruri

Joruriソースコードの設置

 # mkdir /var/share
 # tar xvzf jorurimail-1.2.1.tar.gz -C /var/share
 # chown -R joruri:joruri /var/share/jorurimail

Apache の設定

 設定ファイルを編集します。アドレスは固定アドレスとして設定したものを使用してください。

  # vi /etc/apache2/httpd.conf
 
  ServerName 192.168.253.168

 設定ファイルにエラーがないことを確認し、Apacheを再起動します。

  # apachctl restart

MySQL の設定と、joruriユーザの作成

 文字エンコーディングの標準を UTF-8 に設定します。

  # vi /etc/mysql/my.cnf
   :
  [mysqld]
  default-character-set=utf8    #追加
  
  [client]                      #追加(末尾に追加)
  default-character-set=utf8    #追加
  :

 MySQLを再起動します。MySQLはインストール時にすでに自動起動設定され起動しています。

  # /etc/init.d/mysqld restart

 rootユーザのパスワードは、aptitudeコマンドによりインストール時に設定しています。

 MySQL monitorを起動し、joruriユーザを作成します。

# mysql -u root -p
Enter password: ←インストール時に設定した(mysqlの)rootユーザパスワードを入力
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 39
Server version: 5.1.49-3 (Debian)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 joruriユーザを作成します。

mysql> grant all on *.* to joruri@localhost IDENTIFIED BY 'pass';

 確認は以下のコマンドにより行います。

mysql> SELECT host,user FROM mysql.user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| 127.0.0.1 | root             |
| deb-2     | root             |
| localhost | debian-sys-maint |
| localhost | joruri           |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)

mysql>

※パスワードは適切な値を設定してください。
本マニュアルでは pass と設定しています。

Rubyのインストール

 # cd /usr/local/src
 # tar xvzf ruby-1.9.2-p290.tar.gz
 # cd ruby-1.9.2-p290
 # ./configure
 # make && make install

RubyGemsのインストール

 # cd /usr/local/src
 # tar xvzf rubygems-1.6.2.tgz
 # cd rubygems-1.6.2
 # ruby setup.rb

gemライブラリ のインストール

 Ruby on Rails をインストールします

 # gem install rails -v 3.0.0

 必要ライブラリをインストールします。

 # cd /var/share/jorurimail
 # bundle install

Phusion Passenger のインストール

 Phusion Passengerをインストールします。

 # gem install passenger -v 3.0.9
 # passenger-install-apache2-module
    ( 画面の内容を確認して Enterキーを押してください。 )

 Apacheに設定を追加し、再起動します。

 # cp /var/share/jorurimail/config/samples/passenger.conf \
     /etc/httpd/conf.d/
  # apachectl restart

5.joruri Mail 1.2.1のインストール


Joruriユーザに変更します。

 # su - joruri
 $ cd /var/share/jorurimail

設定ファイルの編集

 環境に応じて設定ファイルを編集します。

Joruri Mail 基本設定

  $ vi config/core.yml
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  title  : Joruri Mail
  uri    : http://192.168.253.168/
  proxy  : ※プロキシ
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

  uriは設定したIPアドレスにより異なります。 
   ※プロキシ
  プロキシサーバが導入されている場合は
   http://example:8080/ の様に記述してください。
 
DB接続情報

 必要に応じて変更してください。(今回は変更なし)

 $ vi config/database.yml

SMTP, IMAPサーバ設定

 $ vi config/environments/development.rb


VirtualHost設定

  $ vi config/virtual-hosts/joruri.conf

 以下の部分を変更してください。

<VirtualHost 192.168.253.168:80>
    ServerName 192.168.253.168
    DocumentRoot /var/share/jorurimail/public
    Alias /_common/ "/var/share/jorurimail/public/_common/"
    setenv LANG ja_JP.UTF-8
    RailsEnv development
</VirtualHost>

データベースの作成

 データベースを作成します。

 $ /usr/bin/mysql -u root -ppass -e "create database jorurimail"

 テーブルを作成します。

 $ rake db:schema:load RAILS_ENV=development

 初期データを登録します。

 $ rake db:seed RAILS_ENV=development

 サンプルデータを登録します。

 $ rake db:seed:demo RAILS_ENV=development

VirtualHost の反映

 Apacheに設定を追加します。

 $ su -
 # cp /var/share/jorurimail/config/samples/jorurimail.conf \
     /etc/httpd/conf.d/

 Apacheを再起動します。

  # apachectl restart

 ここまでの手順で Joruri Mailにアクセスすることができます。

  公開画面 : http://192.168.253.168/  ←設定したIPアドレス

 次のユーザが登録されています。

    管理者(システム管理者)
      ユーザID   : admin
      パスワード : admin

    一般ユーザ(徳島 太郎)
      ユーザID   : user1
      パスワード : user1

    一般ユーザ(阿波 花子)
      ユーザID   : user2
      パスワード : user2

    一般ユーザ(吉野 三郎)
      ユーザID   : user3
      パスワード : user3

 上記のユーザはadmin以外は接続するメールサーバに合わせて削除、追加してください。

8.動作確認


 joruriは初期状態で以下のサンプル画面が表示されます。
 一部を管理画面で書き換えました。

<ログイン画面>

<joruri Mailホーム画面>
 
<モバイルアクセス機能>


9.さいごに


今回、joruri Mail の最新バージョンである、1.2.1が、ARMアーキテクチャのOpenBlocks上で動作することを確認しました。



0 件のコメント:

コメントを投稿