オープンソースソフトウェア シラサギをインストールする

グループウェアとして使用可能なオープンソースソフトウェア シラサギをインストールする

シラサギのシステム要件

CPU 2コア ※Xeon 2GHz以上
メモリ 3GB以上
HDD 30GB以上
OS CentOS 6, 7 64bit or Ubuntu Server 14.04LTS
Web Serer Nginx or Apache + Unicorn
DB MongoDB 3.4
Ruby 2.3.4
Ruby on Rails 4.2.5.2

シラサギのインストール

インストールはシラサギ公式サイト公開のインストールマニュアルに従ってインストールします。
http://shirasagi.github.io/installation/manual.html

当サイトの検証環境CentOSのインストール環境

メモリ 3GB
HDD 40GB
OS CentOS7 64bit
swap 6GB
  1. OSをインストールします
    当サイトの検証ではCentOS7をminimalでインストールしています
  2. 検証環境なため、マニュアルに従ってSELlinux, Firewalld を無効にします
  3. [root@centos7-sirasagi ~]# setenforce 0
    [root@centos7-sirasagi ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config
    sed: -e expression #1, char 39: `s' に対するオプションが不明です
    [root@centos7-sirasagi ~]# vi /etc/selinux/config
    [root@centos7-sirasagi ~]# systemctl stop firewalld
    [root@centos7-sirasagi ~]# systemctl disable firewalld
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
    
  4. wget,git,ImageMagick,ImageMagick-develをインストールします
  5. [root@centos7-sirasagi ~]# yum -y install wget git ImageMagick ImageMagick-devel
    
  6. ImageMagick のポリシーを修正します
  7. 修正前

    [root@centos7-sirasagi ~]# vi /etc/ImageMagick/policy.xml
    <policymap>
      <!-- <policy domain="system" name="precision" value="6"/> -->
      <!-- <policy domain="resource" name="temporary-path" value="/tmp"/> -->
      <!-- <policy domain="resource" name="memory" value="2GiB"/> -->
      <!-- <policy domain="resource" name="map" value="4GiB"/> -->
      <!-- <policy domain="resource" name="area" value="1GB"/> -->
      <!-- <policy domain="resource" name="disk" value="16EB"/> -->
      <!-- <policy domain="resource" name="file" value="768"/> -->
      <!-- <policy domain="resource" name="thread" value="4"/> -->
      <!-- <policy domain="resource" name="throttle" value="0"/> -->
      <!-- <policy domain="resource" name="time" value="3600"/> -->
      <policy domain="coder" rights="none" pattern="EPHEMERAL" />
      <policy domain="coder" rights="none" pattern="HTTPS" />
      <policy domain="coder" rights="none" pattern="HTTP" />
      <policy domain="coder" rights="none" pattern="URL" />
      <policy domain="coder" rights="none" pattern="FTP" />
      <policy domain="coder" rights="none" pattern="MVG" />
      <policy domain="coder" rights="none" pattern="MSL" />
      <policy domain="coder" rights="none" pattern="TEXT" />
      <policy domain="coder" rights="none" pattern="LABEL" />
      <policy domain="path" rights="none" pattern="@*" />
    </policymap>
    

    修正後

    <policymap>
      <!-- <policy domain="system" name="precision" value="6"/> -->
      <!-- <policy domain="resource" name="temporary-path" value="/tmp"/> -->
      <!-- <policy domain="resource" name="memory" value="2GiB"/> -->
      <!-- <policy domain="resource" name="map" value="4GiB"/> -->
      <!-- <policy domain="resource" name="area" value="1GB"/> -->
      <!-- <policy domain="resource" name="disk" value="16EB"/> -->
      <!-- <policy domain="resource" name="file" value="768"/> -->
      <!-- <policy domain="resource" name="thread" value="4"/> -->
      <!-- <policy domain="resource" name="throttle" value="0"/> -->
      <!-- <policy domain="resource" name="time" value="3600"/> -->
      <policy domain="coder" rights="none" pattern="EPHEMERAL" />
      <policy domain="coder" rights="read" pattern="HTTPS" />
      <policy domain="coder" rights="none" pattern="HTTP" />
      <policy domain="coder" rights="none" pattern="URL" />
      <policy domain="coder" rights="none" pattern="FTP" />
      <policy domain="coder" rights="none" pattern="MVG" />
      <policy domain="coder" rights="none" pattern="MSL" />
      <policy domain="coder" rights="none" pattern="TEXT" />
      <!--policy domain="coder" rights="read | write" pattern="LABEL" /-->
      <policy domain="path" rights="none" pattern="@*" />
      <policy domain="coder" rights="read | write" pattern="JPEG" />
      <policy domain="coder" rights="read | write" pattern="PNG" />
    </policymap>
    
    [root@centos7-sirasagi ~]#
    
  8. MongoDB Enterpriseをインストールします
  9. ※MongoDB Enterpriseのインストールは下記の公式サイトを参照ください(SElinuxを使っている場合など)
    https://docs.mongodb.com/manual/tutorial/install-mongodb-enterprise-on-red-hat/

    mongodb-enterprise.repoを作成します

    [root@centos7-sirasagi ~]# vi /etc/yum.repos.d/mongodb-enterprise.repo
    
    mongodb-enterprise.repoに以下を記載します。
    
    [mongodb-enterprise]
    name=MongoDB Enterprise Repository
    baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.4/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
    

    mongodb-enterprise.repoが作成されたことを確認します

    [root@centos7-sirasagi ~]# ls /etc/yum.repos.d/
    CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Sources.repo  CentOS-fasttrack.repo
    CentOS-CR.repo    CentOS-Media.repo      CentOS-Vault.repo    mongodb-enterprise.repo
    

    mongodb-enterprise.repoをyumインストールします

    [root@centos7-sirasagi ~]# yum install -y mongodb-enterprise
    読み込んだプラグイン:fastestmirror
    mongodb-enterprise                                                           | 2.5 kB  00:00:00
    mongodb-enterprise/7/x86_64/primary_db                                       |  41 kB  00:00:00
    Loading mirror speeds from cached hostfile
     * base: download.nus.edu.sg
     * extras: ftp.iij.ad.jp
     * updates: download.nus.edu.sg
    依存性の解決をしています
    
    長いので略
    
     検証中                  : cyrus-sasl-gssapi-2.1.26-20.el7_2.x86_64                          13/13
    
    :
      mongodb-enterprise.x86_64 0:3.4.7-1.el7
    
    依存性関連をインストールしました:
      cyrus-sasl.x86_64 0:2.1.26-20.el7_2
      cyrus-sasl-gssapi.x86_64 0:2.1.26-20.el7_2
      cyrus-sasl-plain.x86_64 0:2.1.26-20.el7_2
      lm_sensors-libs.x86_64 0:3.4.0-4.20160601gitf9185e5.el7
      mongodb-enterprise-mongos.x86_64 0:3.4.7-1.el7
      mongodb-enterprise-server.x86_64 0:3.4.7-1.el7
      mongodb-enterprise-shell.x86_64 0:3.4.7-1.el7
      mongodb-enterprise-tools.x86_64 0:3.4.7-1.el7
      net-snmp.x86_64 1:5.7.2-24.el7_3.2
      net-snmp-agent-libs.x86_64 1:5.7.2-24.el7_3.2
      net-snmp-libs.x86_64 1:5.7.2-24.el7_3.2
      perl-Data-Dumper.x86_64 0:2.145-3.el7
    
    完了しました!
    [root@centos7-sirasagi ~]#
    

    MongoDB Enterpriseを開始します

    [root@centos7-sirasagi ~]# systemctl start mongod
    [root@centos7-sirasagi ~]# systemctl enable mongod
    
  10. Rubyをインストールします
  11. 次のコマンドを実行します

    # gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
    # \curl -sSL https://get.rvm.io | bash -s stable
    # source /etc/profile
    # rvm install 2.3.4
    # rvm use 2.3.4 --default
    # gem install bundler
    

    実行例

    [root@centos7-sirasagi ~]# gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
    gpg: 鍵D39DC0E3をhkpからサーバkeys.gnupg.netに要求
    gpg: /root/.gnupg/trustdb.gpg: 信用データベースができました
    gpg: 鍵D39DC0E3: 公開鍵"Michal Papis (RVM signing) "をインポートしました
    gpg: 絶対的に信用する鍵が見つかりません
    gpg:         処理数の合計: 1
    gpg:           インポート: 1  (RSA: 1)
    [root@centos7-sirasagi ~]# curl -sSL https://get.rvm.io | bash -s stable
    Downloading https://github.com/rvm/rvm/archive/1.29.2.tar.gz
    Downloading https://github.com/rvm/rvm/releases/download/1.29.2/1.29.2.tar.gz.asc
    gpg: 2017年06月23日 01時18分38秒 JSTにRSA鍵ID BF04FF17で施された署名
    gpg: "Michal Papis (RVM signing) "からの正しい署名
    gpg:                 別名"Michal Papis "
    gpg:                 別名"[jpeg image of size 5015]"
    gpg: *警告*: この鍵は信用できる署名で証明されていません!
    gpg:       この署名が所有者のものかどうかの検証手段がありません。
    主鍵のフィンガー・プリント: 409B 6B17 96C2 7546 2A17  0311 3804 BB82 D39D C0E3
    副鍵のフィンガー・プリント: 62C9 E5F4 DA30 0D94 AC36  166B E206 C29F BF04 FF17
    GPG verified '/usr/local/rvm/archives/rvm-1.29.2.tgz'
    Creating group 'rvm'
    
    Installing RVM to /usr/local/rvm/
    Installation of RVM in /usr/local/rvm/ is almost complete:
    
      * First you need to add all users that will be using rvm to 'rvm' group,
        and logout - login again, anyone using rvm will be operating with `umask u=rwx,g=rwx,o=rx`.
    
      * To start using RVM you need to run `source /etc/profile.d/rvm.sh`
        in all your open shell windows, in rare cases you need to reopen all shell windows.
    
    # Administrator,
    #
    #   Thank you for using RVM!
    #   We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
    #
    # ~Wayne, Michal & team.
    
    In case of problems: https://rvm.io/help and https://twitter.com/rvm_io
    [root@centos7-sirasagi ~]#
    
    [root@centos7-sirasagi ~]# source /etc/profile
    [root@centos7-sirasagi ~]# rvm install 2.3.4
    Searching for binary rubies, this might take some time.
    No binary rubies available for: centos/7/x86_64/ruby-2.3.4.
    Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
    Checking requirements for centos.
    Installing requirements for centos.
    Installing required packages: patch, libyaml-devel, glibc-headers, autoconf, gcc-c++, glibc-devel, patch, readline-devel, libffi-devel, openssl-devel, bzip2, automake, libtool, bison, sqlite-devel...-
    Requirements installation successful.
    Installing Ruby from source to: /usr/local/rvm/rubies/ruby-2.3.4, this may take a while depending on your cpu(s)...
    ruby-2.3.4 - #downloading ruby-2.3.4, this may take a while depending on your connection...
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 13.7M  100 13.7M    0     0  8341k      0  0:00:01  0:00:01 --:--:-- 8345k
    No checksum for downloaded archive, recording checksum in user configuration.
    ruby-2.3.4 - #extracting ruby-2.3.4 to /usr/local/rvm/src/ruby-2.3.4....
    ruby-2.3.4 - #configuring..........................................................
    ruby-2.3.4 - #post-configuration..
    ruby-2.3.4 - #compiling............................................................................-
    ruby-2.3.4 - #installing.............................
    ruby-2.3.4 - #making binaries executable..
    ruby-2.3.4 - #downloading rubygems-2.6.13
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  750k  100  750k    0     0  1236k      0 --:--:-- --:--:-- --:--:-- 1239k
    No checksum for downloaded archive, recording checksum in user configuration.
    ruby-2.3.4 - #extracting rubygems-2.6.13....
    ruby-2.3.4 - #removing old rubygems.........
    ruby-2.3.4 - #installing rubygems-2.6.13..........................
    ruby-2.3.4 - #gemset created /usr/local/rvm/gems/ruby-2.3.4@global
    ruby-2.3.4 - #importing gemset /usr/local/rvm/gemsets/global.gems..................................-
    ruby-2.3.4 - #generating global wrappers........
    ruby-2.3.4 - #gemset created /usr/local/rvm/gems/ruby-2.3.4
    ruby-2.3.4 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems evaluated to empty gem list
    ruby-2.3.4 - #generating default wrappers........
    ruby-2.3.4 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
    Install of ruby-2.3.4 - #complete
    Ruby was built without documentation, to build it run: rvm docs generate-ri
    [root@centos7-sirasagi ~]#
    [root@centos7-sirasagi ~]# rvm use 2.3.4 --default
    Using /usr/local/rvm/gems/ruby-2.3.4
    [root@centos7-sirasagi ~]#
    [root@centos7-sirasagi ~]# gem install bundler
    Fetching: bundler-1.15.4.gem (100%)
    Successfully installed bundler-1.15.4
    Parsing documentation for bundler-1.15.4
    Installing ri documentation for bundler-1.15.4
    Done installing documentation for bundler after 4 seconds
    1 gem installed
    
  12. シラサギをダウンロードします
  13. 次のコマンドを実行します

    # git clone -b stable --depth 1 https://github.com//shirasagi /var/www/
    

    実行例

    [root@centos7-sirasagi ~]# git clone -b stable --depth 1 https://github.com/shirasagi/shirasagi /var/www/shirasagi
    Cloning into '/var/www/shirasagi'...
    remote: Counting objects: 8264, done.
    remote: Compressing objects: 100% (6370/6370), done.
    remote: Total 8264 (delta 1383), reused 6006 (delta 972), pack-reused 0
    Receiving objects: 100% (8264/8264), 15.09 MiB | 1.45 MiB/s, done.
    Resolving deltas: 100% (1383/1383), done.
    [root@centos7-sirasagi ~]#
    
  14. Webサーバを起動します
  15. 実行コマンド

    $ cd /var/www/shirasagi
    $ cp -n config/samples/*.{rb,yml} config/
    $ bundle install --without development test
    $ rake unicorn:start
    

    実行例

    [root@centos7-sirasagi ~]# cd /var/www/shirasagi
    [root@centos7-sirasagi shirasagi]# cp -n config/samples/*.{rb,yml} config/
    [root@centos7-sirasagi shirasagi]# bundle install --without development test
    Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as
    root will break this application for all non-root users on this machine.
    Fetching gem metadata from https://rubygems.org/.........
    Fetching version metadata from https://rubygems.org/...
    Fetching dependency metadata from https://rubygems.org/..
    Fetching rake 11.1.1
    Installing rake 11.1.1
    
    長いので略
    
    Bundle complete! 87 Gemfile dependencies, 161 gems now installed.
    Gems in the groups development and test were not installed.
    Use `bundle info [gemname]` to see where a bundled gem is installed.
    Post-install message from compass:
        Compass is charityware. If you love it, please donate on our behalf at http://umdf.org/compass Thanks!
    Post-install message from haml:
    
    HEADS UP! Haml 4.0 has many improvements, but also has changes that may break
    your application:
    
    * Support for Ruby 1.8.6 dropped
    * Support for Rails 2 dropped
    * Sass filter now always outputs <style> tags
    * Data attributes are now hyphenated, not underscored
    * html2haml utility moved to the html2haml gem
    * Textile and Maruku filters moved to the haml-contrib gem
    
    For more info see:
    
    http://rubydoc.info/github/haml/haml/file/CHANGELOG.md
    
    Post-install message from rdoc:
    Depending on your version of ruby, you may need to install ruby rdoc/ri data:
    
    <= 1.8.6 : unsupported
     = 1.8.7 : gem install rdoc-data; rdoc-data --install
     = 1.9.1 : gem install rdoc-data; rdoc-data --install
    >= 1.9.2 : nothing to do! Yay!
    [root@centos7-sirasagi shirasagi]#
    [root@centos7-sirasagi shirasagi]# rake unicorn:start
    bundle exec unicorn_rails -c /var/www/shirasagi/config/unicorn.rb -E production -D
    [root@centos7-sirasagi shirasagi]#
    

    Webサーバへアクセスすると、次のようなログイン画面が表示されます。何も設定していないので表示されるだけです。

ふりがな機能のインストール

次のコマンドを実行します

# cd /usr/local/src
# wget -O mecab-0.996.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE"
# wget -O mecab-ipadic-2.7.0-20070801.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM"
# wget -O mecab-ruby-0.996.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7VUNlczBWVDZJbE0"
# wget https://raw.githubusercontent.com/shirasagi/shirasagi/stable/vendor/mecab/mecab-ipadic-2.7.0-20070801.patch

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

# cd /usr/local/src
# tar xvzf mecab-ipadic-2.7.0-20070801.tar.gz && cd mecab-ipadic-2.7.0-20070801
# patch -p1 < ../mecab-ipadic-2.7.0-20070801.patch
# ./configure --with-charset=UTF-8 && make && make install

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

# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig

音声読み上げ機能のインストール

次のコマンドを実行します

# cd /usr/local/src
# wget http://downloads.sourceforge.net/hts-engine/hts_engine_API-1.08.tar.gz \
    http://downloads.sourceforge.net/open-jtalk/open_jtalk-1.07.tar.gz \
    http://downloads.sourceforge.net/lame/lame-3.99.5.tar.gz \
    http://downloads.sourceforge.net/sox/sox-14.4.1.tar.gz

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

# cd /usr/local/src
# tar xvzf open_jtalk-1.07.tar.gz && cd open_jtalk-1.07
# sed -i "s/#define MAXBUFLEN 1024/#define MAXBUFLEN 10240/" bin/open_jtalk.c
# sed -i "s/0x00D0 SPACE/0x000D SPACE/" mecab-naist-jdic/char.def
# ./configure --with-charset=UTF-8 && make && make install

# cd /usr/local/src
# tar xvzf lame-3.99.5.tar.gz && cd lame-3.99.5
# ./configure && make && make install

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

# ldconfig

新規サイトの作成(DBにインデックスを作成します)

次のコマンドを実行します

$ cd /var/www/shirasagi
$ rake db:drop
$ rake db:create_indexes

ここまででインストールは完了です。サンプルデータを使用するか、サンプルデータを使用しないかによって、ユーザ等の作成方法が変わります。公式サイトのマニュアルを参照ください。

シラサギ公式サイト
http://shirasagi.github.io/installation/manual.html

ここではサンプルを使用せずに新規でユーザを作成しました。
設定としては、ユーザ名:mail address、パスワード:passでadminというユーザを作成しています。

[root@centos7-sirasagi shirasagi]# rake ss:create_user data='{ name: "admin", email: "mail address", password: "pass" }'
  created  admin
[root@centos7-sirasagi shirasagi]#

ログイン画面でアカウントとパスワードを入力します

初期表示画面(何も設定していないので、表示はこれだけです)

インストールについて

今回は確認のためにマニュアルに従ってインストールしました。オープンソースソフトウェアの場合、マニュアル通りにインストールしてもできないことが多々あるのですが、シラサギはマニュアル通りにインストールすれば問題なく稼働しました。とても良くできたマニュアルです。

スポンサーリンク
spdsk-side
spdsk-side