2013年3月15日金曜日

[.tested] Joruri CMS 1.3.1 [AX3]

Joruri CMSは、Ruby(on Rails)とMySQL上で動作するオープンソースのCMS(コンテンツマネジメントシステム)です。
日本で開発された、Ruby言語を使った、RESTの考えに従った、統合的なCMSであり、名前の由来はJapan Originated Ruby-based RESTful and Integratedの頭文字からつけられています。
本CMSは徳島県と株式会社アイ・ディ・エスにより共同開発されたものですが、オープンソースソフトウェアとして一般公開されており、現在も、多くの自治体で汎用的に利用できるCMSとして機能や操作性の拡張が行われています。
最新の情報は以下のサイトを参照してください。

Joruri公式サイト

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

[システム]
OS         : CentOS 6.3
Webサーバ  : Apache 2.2
DBシステム : MySQL 5
Ruby       : 1.9.1
Rails      : 2.3.16

今回は、joruri CMS 1.3.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

また、今回は、CMSサーバとして使用しますので、/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.248
    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 CMSパッケージのインストールのための事前準備


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

Joruri CMS 1.3.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
nkf
apache2-dev

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

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

  # cd /usr/local/src/
  # wget http://joruri.org/download/joruri-1.3.1.tar.gz \
      http://core.ring.gr.jp/archives/lang/ruby/1.9/ruby-1.9.1-p378.tar.gz \
      http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz \
      http://chasen.org/~taku/software/darts/src/darts-0.32.tar.gz \
      "http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fchasen-legacy%2F32224%2Fchasen-2.4.4.tar.gz" \
      "http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fipadic%2F24435%2Fipadic-2.7.0.tar.gz" \
      http://downloads.sourceforge.net/lame/lame-398-2.tar.gz

Joruriユーザの作成

  # useradd joruri
  # passwd joruri

Joruriソースコードの設置

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

Apache の設定

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

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

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

  # apachctl restart

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

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

  # vi /etc/mysql/my.cnf
   :
  [mysqld]
  character-set-server=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.1-p378.tar.gz
  # cd ruby-1.9.1-p378

 パッチをダウンロードします。
 
  # wget http://bugs.ruby-lang.org/attachments/download/837/openssl-build-fix-v2.patch

 以下の操作でうまくパッチが当らない場合は、
 openssl-build-fix-v2.patchを開いて手で修正してください。

  # patch -p0 < openssl-build-fix-v2.patch
    > File to patch:
      # 以下のパスを順に入力
      /usr/local/src/ruby-1.9.1-p378/ext/openssl/ossl.c
      /usr/local/src/ruby-1.9.1-p378/ext/openssl/ossl.h
      /usr/local/src/ruby-1.9.1-p378/ext/openssl/ossl_pkcs7.c
      /usr/local/src/ruby-1.9.1-p378/ext/openssl/ossl_ssl.c
      /usr/local/src/ruby-1.9.1-p378/ext/openssl/ossl_x509attr.c
      /usr/local/src/ruby-1.9.1-p378/ext/openssl/ossl_x509crl.c

 ビルド、インストールします。

  # ./configure
  # make && make install

RubyGemsのインストール

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

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

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

  # ruby /var/share/joruri/doc/install/gems.rb
 
 以下のgemがインストールされます。

  # gem install rake --no-ri --no-rdoc -v 0.8.7
  # gem install rails --no-ri --no-rdoc --include-dependencies -v 2.3.16
  # gem install ruby-ldap --no-ri --no-rdoc -v 0.9.10
  # gem install rmagick --no-ri --no-rdoc -v 2.12.2
  # gem install zipruby --no-ri --no-rdoc -v 0.3.6
  # gem install mime-types --no-ri --no-rdoc -v 1.16
  # gem install will_paginate --no-ri --no-rdoc -v 2.3.16
  # gem install passiverecord --no-ri --no-rdoc -v 0.2
  # gem install tamtam --no-ri --no-rdoc -v 0.0.3
  # gem install mysql --no-ri --no-rdoc -v 2.8.1

Phusion Passenger のインストール

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

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

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

  # cp /var/share/joruri/config/samples/passenger.conf \
      /etc/apache2/conf.d/passenger.conf

  # apachectl restart

5.joruri CMS 1.3.1のインストール


Joruriユーザに変更します。

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

設定ファイルの編集

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

Joruri基本設定

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

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

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

  $ vi config/database.yml

VirtualHost設定

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

  $ vi config/virtual-hosts/joruri.conf

データベースの作成

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

  $ /usr/bin/mysql -u root -p -e "create database joruri"

 テーブルを作成します。

  $ rake db:schema:load RAILS_ENV=production

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

  $ rake db:seed RAILS_ENV=production

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

  $ rake db:seed:demo RAILS_ENV=production

VirtualHost の反映

 Apacheに設定を追加します。

  $ su -
  # ln -s /var/share/joruri/config/virtual-hosts/joruri.conf \
      /etc/apache2/conf.d/

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

<VirtualHost 192.168.253.248:80>  ←設定したIPアドレス
    ServerName 192.168.253.248
    DocumentRoot /var/share/joruri/public_00000001
    Alias /_common/ "/var/share/joruri/public/_common/"
    setenv LANG ja_JP.UTF-8
    RailsEnv production
    Include /var/share/joruri/config/rewrite/base.conf
    Include /var/share/joruri/config/rewrite/00000001.conf
</VirtualHost>

 Apacheを再起動します。

  # apachectl restart

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

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

  管理画面 : http://192.168.253.248/_admin

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

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

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

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

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

6.ふりがな・読み上げ機能のインストール


 LAMEをインストールします。

  # cd /usr/local/src
  # tar xvzf lame-398-2.tar.gz
  # cd lame-398-2
  # ./configure --prefix=/usr
  # make && make install

 Dartsをインストールします。

  # cd /usr/local/src
  # tar xvzf darts-0.32.tar.gz
  # cd darts-0.32
  # ./configure --prefix=/usr
  # make && make install

 ChaSenをインストールします。

  # cd /usr/local/src
  # tar xvzf chasen-2.4.4.tar.gz
  # cd chasen-2.4.4
  # ./configure --prefix=/usr
  # make && make install

 IPAdicをインストールします。
 先に/usr/etcディレクトリを作成してください。

  # mkdir /usr/etc

  # cd /usr/local/src
  # tar xvzf ipadic-2.7.0.tar.gz
  # cd ipadic-2.7.0
  # ./configure --prefix=/usr

 辞書をUTF8に変換します。
 
  # vi to_utf8.sh  #(新規作成)
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  #!/bin/sh
  for file in *.dic *.cha chasenrc
  do
  if [ -f $file ]; then
      nkf --utf8 $file > tmpfile
      mv tmpfile $file
  fi
  done
  exit
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  # chmod 744 to_utf8.sh
  # ./to_utf8.sh
  # `chasen-config --mkchadic`/makemat -i w
  # `chasen-config --mkchadic`/makeda -i w chadic *.dic
  # make install

 ChaOneをインストールします。

  # cd /var/share/joruri/ext/morph/chaone
  # chmod 775 configure
  # ./configure
  # make && make install

 GalateaTalkをインストールします。

  # cd /var/share/joruri/ext/gtalk
  # sed -i "s/ getline/ my_getline/" main.c
  # sed -i "s/ getline/ my_getline/" getline.c
  # chmod 775 configure
  # ./configure
  # make
  # chmod 747 /var/share/joruri/ext/gtalk_filter.rb

7.定期実行設定


 先にcronをインストールします。

# aptitude install cron

 記事の公開/非公開処理を設定します。
 以下の例は、毎時15分毎に記事の公開/非公開処理を行い、
 公開ディレクトリに記事を静的ファイルとして書き出します。

  # su - joruri
  $ crontab -e
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  10,25,40,55 * * * * /usr/local/bin/ruby /var/share/joruri/script/runner \
    -e production "Script.run('sys/script/tasks/exec')"
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  ※公開ディレクトリ : /var/share/joruri/public_00000001

 トップページや中間ページを静的ファイルとして書き出します。

  $ crontab -e
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  */15 * * * * /usr/local/bin/ruby /var/share/joruri/script/runner \
    -e production "Script.run('cms/script/nodes/publish')"
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 音声ファイルを静的ファイルとして書き出します。

  $ crontab -e
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  */15 * * * * /usr/local/bin/ruby /var/share/joruri/script/runner \
    -e production "Script.run('cms/script/talk_tasks/exec')"
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 新着記事ポータルで設定したAtomフィードを取り込みます。

  $ crontab -e
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  0 * * * * /usr/local/bin/ruby /var/share/joruri/script/runner \
    -e production "Script.run('cms/script/feeds/read')"
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

8.動作確認


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

<トップページ>
<ふりがなをつけた状態 >
<読み上げ画面>

9.さいごに


今回、joruri CMS の最新バージョンである、1.3.1が、ARMアーキテクチャのOpenBlocks上で動作することを確認しました。
joruriは、CMSの他にjoruri GW(グループウェア)などもオープンソースとして公開されていますので、そちらのインストール、評価に関してもまた報告できればと思います。


0 件のコメント:

コメントを投稿