仮想環境にshirasagiインストール

概要

「シラサギ」は、RubyRuby on Rails、MongoDBで動作する中・大規模サイト向けCMSです。

自治体向けサイトでは「アクセシビリティ」が要件として含まれていることが多いです。shirasagiは、ふりがなをつける、音声出力する機能を簡単に実装することができます。ふりがな機能は公式サイトにも入っています。MITライセンスのオープンソースのため、誰でも無償でご利用できるのも嬉しいですね。

手順にそって仮想環境にインストールした結果です。途中いくつかつまずきましたが、問題なくインストールできました。

関連情報

OSインストール(vagrant)

shirasagiをインストールするOS(CentOS 6.6)をvagrantを使って準備しました。

vagrant init chef/centos-6.6; vagrant up --provider virtualbox

Guest Additionsのビルドに失敗した場合は、ログ(/var/log/vboxadd-install.log)を参考にして対応します。今回のエラーは、カーネルのバージョンが異なっていたためソースが見つからないというエラーだったので、パッケージをアップデートしました。

$ vagrant ssh
$ sudo yum -y update

仮想環境に必要なモジュールインストール

以降の処理は仮想環境にログインして行います。

$ vagrant ssh

パッケージインストール

$ sudo yum -y install wget git ImageMagick ImageMagick-devel

MongoDBインストール

$ sudo vi /etc/yum.repos.d/CentOS-Base.repo
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=0
$ sudo yum install -y --enablerepo=mongodb-org-3.0 mongodb-org
$ sudo /sbin/service mongod start
$ sudo /sbin/chkconfig mongod on

ruby(RVM)インストール

$ sudo gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3

PGPのインストールに失敗した(keys.gnupg.netが見つからない)ので、以下の記事を参考に手動でインストールしました。

$ sudo curl -#LO https://rvm.io/mpapis.asc
$ sudo gpg --import mpapis.asc

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

$ sudo \curl -sSL https://get.rvm.io | sudo bash -s stable
$ sudo source /etc/profile
$ sudo rvm install 2.2.2
$ sudo rvm use 2.2.2 --default
$ sudo gem install bundler

shirasagiインストール

shirasagiのソース取得は、ホスト側で行いました。仮想環境ではファイルアクセスが遅いので、Webアプリのソースはホスト側に置いた方が良いと思います。

$ git clone -b stable --depth 1 https://github.com/shirasagi/shirasagi

Webサーバ(shirasagi)の起動

$ cd /vagrant/shirasagi
$ cp -n config/samples/*.{yml,rb} config/
$ bundle install
$ rake unicorn:start

unicornの起動時にerror text file busyエラーが発生したのでconfigファイルを直接指定するように修正した。

$ bundle exec unicorn_rails -c /vagrant/shirasagi/config/unicorn.rb -E production -D -c config/unicorn.rb

ふりがなと音声読み上げ機能のインストール

手順通りで特に問題は発生しませんでした。

データ準備

インストール手順通りに行えば問題ありません。

$ cd /vagrant/shirasagi

データ初期化
$ rake db:drop
$ rake db:create_indexes

管理者ユーザーの作成
$ rake ss:create_user data='{ name: "システム管理者", email: "sys@example.jp", password: "pass" }'

サイトの作成
$ rake ss:create_site data='{ name: "demo", host: "www", domains: "localhost:3000" }'

ユーザー/グループデータのインポート
$ rake db:seed name=users site=www

自治体サンプル
$ rake db:seed name=demo site=www

ホスト側から、ブラウザでIPアドレス(例:192.168.33.10):3000でアクセスするとデモサイトと同じ画面が表示されます。