Joruri1.x→2.xバージョンアップ手順書

公開日 2015-07-24

最終更新日 2015-11-05

JoruriCMS1系からJoruriCMS2系へのバージョンアップ手順になります。

JoruriCMSのマイナーバージョンについては適応したいバージョンに置き換えて使用してください。

 

## Joruri CMS 1.x → 2.x アップデートマニュアル

**********************************************************************
 1 想定環境
**********************************************************************

[システム]
OS         : CentOS 5.3
Webサーバ  : Apache 2.2
DBシステム : MySQL 5
Ruby       : 2.1.5
Rails      : 3.2.13

[設定]
IPアドレス : 192.168.0.2
ドメイン   : 192.168.0.2

**********************************************************************
 2 事前準備
**********************************************************************

rootユーザに変更します。

  $ su -

  # cd /usr/local/src/
  # wget http://joruri.org/download/joruri-2.2.0.tar.gz \
      http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz \
      http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz \
      http://sourceforge.net/projects/sox/files/sox/14.4.1/sox-14.4.1.tar.gz \
      http://downloads.sourceforge.net/lame/lame-398-2.tar.gz \
      http://downloads.sourceforge.net/hts-engine/hts_engine_API-1.07.tar.gz \
      http://downloads.sourceforge.net/open-jtalk/open_jtalk-1.06.tar.gz \
      http://downloads.sourceforge.net/open-jtalk/open_jtalk_dic_utf_8-1.06.tar.gz \
      http://mecab.googlecode.com/files/mecab-0.996.tar.gz \
      http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz \
      http://mecab.googlecode.com/files/mecab-ruby-0.996.tar.gz \
      http://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/releases/ImageMagick-6.9.0-4.tar.gz

crontabで実行しているjoruriCMSの定期実行をコメントアウトします。

  # su - joruri
  $ crontab -e

**********************************************************************
 3 Joruri更新
**********************************************************************

======================================================================
 3.1 Joruriデータ差し替え
======================================================================

rootユーザに変更し、Joruriを解凍します。
  $ su -
  # tar xvzf joruri-2.2.0.tar.gz

joruriユーザに変更します。
  # su - joruri
  $ cd /var/share/joruri

更新されるデータをbkデータにします。

  $ rm -rf ./bk
  ※バックアップデータが残っていた場合に上記を使用します。

  $ mv app bk_app
  $ mv config bk_config
  $ mv db bk_db
  $ mv doc bk_doc
  $ mv lib bk_lib
  $ mv ext bk_ext
  $ mv public bk_public
  $ mv script bk_script
  $ mv test bk_test
  $ mv vendor bk_vendor

基本ファイルを差し替えます。

  $ cp -arp /usr/local/src/joruri/app ./app
  $ cp -arp /usr/local/src/joruri/config ./config
  $ cp -arp /usr/local/src/joruri/config/original/* ./config/
  $ cp -arp /usr/local/src/joruri/db ./db
  $ cp -arp /usr/local/src/joruri/doc ./doc
  $ cp -arp /usr/local/src/joruri/lib ./lib
  $ cp -arp /usr/local/src/joruri/public ./public
  $ cp -arp /usr/local/src/joruri/script ./script
  $ cp -arp /usr/local/src/joruri/test ./test
  $ cp -arp /usr/local/src/joruri/vendor ./vendor
  $ cp -ap /usr/local/src/joruri/COPYING ./
  $ cp -ap /usr/local/src/joruri/Gemfile ./
  $ cp -ap /usr/local/src/joruri/LICENSE ./
  $ cp -ap /usr/local/src/joruri/README.md ./
  $ cp -ap /usr/local/src/joruri/Rakefile ./
  $ cp -ap /usr/local/src/joruri/config.ru ./

現行データからデータを引き継ぎます。

  $ mv ./public/_common/themes/joruri ./public/_common/themes/bk_joruri
  $ cp -arp ./bk_public/_common/themes/joruri ./public/_common/themes/joruri
  $ cp -arp ./bk_public/404.html ./public/404.html

  $ cd /var/share/joruri/public/_common/js/tiny_mce
  $ cp -arp /var/share/joruri/bk_public/_common/js/tiny_mce/lists ./

  $ cd /var/share/joruri/public/_common/js/tiny_mce/plugins/template
  $ cp -arp /var/share/joruri/bk_public/_common/js/tiny_mce/plugins/template/*.htm ./

configファイルを再設定します。

  $ cd /var/share/joruri/config
  $ cp -arp ../bk_config/rewrite/base.conf ./rewrite/
  $ cp -arp ../bk_config/rewrite/00000001.conf ./rewrite/

======================================================================
 3.2 Joruriの再設定
======================================================================

環境に応じて設定ファイルを編集します。
Production(本番)モードでの動作を想定しています。

  $ vi /var/share/joruri/config/hosts/joruri.conf
  ## IPアドレス、ディレクトリパスを環境に合わせて修正してください。
$ vi /var/share/joruri/config/core.yml
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  title      : 管理画面ウィンドウタイトル
  uri        : 管理画面URL (記述例 http://example.jp/)
  http_proxy : HTTP プロキシー (記述例 http://example.jp:8080/)
  https_proxy: HTTPSプロキシー (記述例 http://example.jp:8080/)
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$ vi /var/share/joruri/config/database.yml
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  production:
  adapter : mysql2
  database: データベース名(記述例 joruri)
  username: データベース管理ユーザー名(記述例 joruri)
  password: データベース管理パスワード名(記述例 pass)
  timeout : 5000
  encoding: utf8
  reconnect: true
  host: 127.0.0.1
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

その他の設定ファイルも適宜編集してください。
application.yml ... アプリケーション設定
  ldap.yml        ... LDAP設定
  smtp.yml        ... SMTP設定

rootユーザーに切り替えます。
  $ su -

シンボリックリンクを再設定します。

  # rm /etc/httpd/conf.d/production.conf
  # ln -s /var/share/joruri/config/hosts/joruri.conf /etc/httpd/conf.d/

MySQLのJoruriユーザー設定を更新します。

  # mysql -u joruri -ppass joruri
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  > select * from sys_groups where state = 'public';
  > update sys_groups set state = 'enabled' where state = 'public';
  > exit;
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

**********************************************************************
 4 Ruby 環境の再構築
**********************************************************************

======================================================================
 4.1 Rubyのアップデート
======================================================================

Rubyをアップデートします。

  # cd /usr/local/src
  # tar zxvf ruby-2.1.5.tar.gz
  # cd ruby-2.1.5
  # ./configure
  # make

Rubyアップデート前のバージョンを削除します。Rubyバージョンを確認後、削除してください。

  # cat /usr/local/src/ruby-1.9.1-p378/.installed.list | xargs rm -rf

  # make install

Rubyのバージョンを確認し、アップデートされていることを確認します。

  #ruby -v

======================================================================
 4.2 ImageMagickバージョンアップ
======================================================================

※CentOS6環境のImageMagickインストールがRPMで行われていた場合、ソースインストールは飛ばしてください。

  # cd /usr/local/src/
  # tar -zxvf ImageMagick-6.9.0-4.tar.gz
  # cd ImageMagick-6.9.0-4
  # ./configure
  # make
  # make install

  # find /usr/local -name MagickCore.pc
  # export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

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

RubyGemsを更新します。
  # gem update --system

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

  # gem install rails -v 3.2.13

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

  # cd /var/share/joruri
  # bundle install

※以前ImageMagickをソースインストールしており、rmagickインストール失敗する場合は以下のように設定を確認してください。

  # ldconfig -p | grep -i magick

MagickCoreの参照先が以下の場合「-Q16」を削除したリンクを作成し、再度ライブラリをインストールします。
libMagickCore-Q16.so (libc6,x86-64) => /usr/lib/libMagickCore-Q16.so

  # cd /usr/local/lib
  # ln -s libMagickCore-6.Q16.so libMagickCore.so

  # cd /var/share/joruri/
  # bundle install

 

**********************************************************************
 5 Passengerのインストール
**********************************************************************

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

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

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

**********************************************************************
 6 Joruri CMS / DB更新履歴
**********************************************************************

MySQLのJoruriデータベースを更新します。

  # mysql -u root -ppass joruri

※ DB差分修正を元に古いバージョン番号から実施してください。

**********************************************************************
 8 ふりがな・読み上げ設定
**********************************************************************

必要なパッケージをインストールします。

  $ su -

hts_engine API

  # cd /usr/local/src
  # tar xvzf hts_engine_API-1.07.tar.gz && cd ./hts_engine_API-1.07
  # ./configure && make && make install

Open JTalk

  # cd /usr/local/src
  # tar xvzf open_jtalk-1.06.tar.gz && cd open_jtalk-1.06
  # sed -i "s/#define MAXBUFLEN 1024/#define MAXBUFLEN 10240/" bin/open_jtalk.c
  # ./configure --with-charset=UTF-8 && make && make install

Dictionary

  # cd /usr/local/src
  # tar xvzf open_jtalk_dic_utf_8-1.06.tar.gz
  # mkdir /usr/local/share/open_jtalk
  # mv open_jtalk_dic_utf_8-1.06 /usr/local/share/open_jtalk/dic

SoX

  # cd /usr/local/src
  # tar xvzf sox-14.4.1.tar.gz && cd sox-14.4.1
  # ./configure && make && make install

lame

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

MeCab

cd /usr/local/src
tar xvzf mecab-0.996.tar.gz && cd mecab-0.996
./configure --enable-utf8-only && make && make install

MeCab-IPAdic

  # cd /usr/local/src
  # tar xvzf mecab-ipadic-2.7.0-20070801.tar.gz && cd mecab-ipadic-2.7.0-20070801
  # ./configure --with-charset=utf8 && make && make install

MeCab-Ruby

  # cd /usr/local/src
  # tar xvzf mecab-ruby-0.996.tar.gz && cd mecab-ruby-0.996
  # ruby extconf.rb && make && make install


**********************************************************************
 9 定期実行設定
**********************************************************************

  # su - joruri

cron設定を更新します。
$ crontab -e
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin

  10,25,40,55 * * * * /bin/bash -l -c 'cd /var/share/joruri && RAILS_ENV=production bundle exec rake sys:tasks:exec'    # 日時指定処理
  */15 * * * * /bin/bash -l -c 'cd /var/share/joruri && RAILS_ENV=production bundle exec rake cms:nodes:publish'        # ページ書き出し
  */15 * * * * /bin/bash -l -c 'cd /var/share/joruri && RAILS_ENV=production bundle exec rake cms:talks:publish'        # 音声書き出し
  */30 * * * * /bin/bash -l -c 'cd /var/share/joruri && RAILS_ENV=production bundle exec rake cms:feeds:read'           # フィード取り込み
  */10 * * * * /bin/bash -l -c 'cd /var/share/joruri && RAILS_ENV=production bundle exec rake newsletter:requests:read' # メルマガ読者登録
  # 00 * * * * /bin/bash -l -c 'cd /var/share/joruri && RAILS_ENV=production bundle exec rake article:docs:rebuild'     # 記事再構築(ページ)
  # 00 * * * * /bin/bash -l -c 'cd /var/share/joruri && RAILS_ENV=production bundle exec rake faq:docs:rebuild'         # FAQ再構築(ページ)
  # 00 * * * * /bin/bash -l -c 'cd /var/share/joruri && RAILS_ENV=production bundle exec rake enquete:answers:pull'     # アンケート取り込み ※[9.1]
  # 00 * * * * /bin/bash -l -c 'cd /var/share/joruri && RAILS_ENV=production bundle exec rake db:session:sweep'         # DBセッション削除
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

======================================================================
 9.1 アンケートの取り込み
======================================================================

アンケートの取り込みは対象のデータベース設定を追加してください。

  $ cd /var/share/joruri
$ vi config/database.yml
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  production_pull_database:
    adapter : mysql2
    database: joruri
    username: joruri
    password: pass
    timeout : 5000
    encoding: utf8
    reconnect: true
    host: 192.168.0.4
production_pull_database_2:
    # settings
production_pull_database_3:
    # settings
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

**********************************************************************