ラック
Home > ブログ > 記事 > 2017年10月 > CrowiをCentOS7にインストール

CrowiをCentOS7にインストール

カテゴリ: Linux,サーバ,Webサービス

CrowiをCentOS(用意したのはCentOS7.3)環境でも使いたくなったので、インストールすることにしました。

1. 前準備

前準備として、Crowiの作業ディレクトリを作成。git cloneするので二重になってしましますが、気分的な問題……。

# cd /
# mkdir crowi
# cd crowi/

2. 必要なライブラリのインストール

# yum install build-essential python git libkrb5-dev
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
パッケージ build-essential は利用できません。
パッケージ libkrb5-dev は利用できません。

## (略)

完了しました!

build-essentialはUbuntuやDebian用で、CentOSにはないらしいです。同じようなことをするには

# yum groupinstall "Development Tools"
# yum install kernel-devel kernel-headers

とすれば良いらしいので、これを実行して完了させます。

一方、libkrb5-devはRedHat系だとkrb5-develという名前とのことです。

# yum install krb5-devel

## (略)

完了しました!

#

これで必要なライブラリはそろいました。

3. mongoDBインストール

mongoDBはそのままでは入らないので、リポジトリを作成してからインストールします。

# vi /etc/yum.repos.d/mongodb.repo

[mongodb]
name=MongoDB repo
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

# yum install mongodb-org

## (略)

完了しました!

# mongo -version
MongoDB shell version: 2.6.12

OK。2.6.12が入りました。

ただ、このままだとmongoDBが起動していなかったので起動させ、ユーザ作成します。

# systemctl start mongod
# systemctl enable mongod
mongod.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig mongod on

# mongo
MongoDB shell version: 2.6.12
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user
> use crowidb
switched to db DBNAME
> db.addUser("USERNAME", "PASSWORD", true)
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "USERNAME", "roles" : [ "read" ] }

OK。ただ、addUserは廃止予定で、createUserを使えと出ましたね。とりあえずは作成できましたが、今後に備えてメモしておきます。

4. node.jsインストール

必要なライブラリをインストール……と思いましたが、入っているようなのでOKと出ました。

# yum install gcc gcc-c++
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
パッケージ gcc-4.8.5-16.el7.x86_64 はインストール済みか最新バージョンです
パッケージ gcc-c++-4.8.5-16.el7.x86_64 はインストール済みか最新バージョンです
何もしません

node.jsもデフォルトでは入らないのでEPELリポジトリをインストールし、そこから入手します。

# yum install epel-release

## (略)

完了しました!

# yum install nodejs npm --enablerepo=epel

## (略)

完了しました!

# node --version
v6.11.3
# npm --version
3.10.10

OK.

# npm install -g n
/usr/bin/n -> /usr/lib/node_modules/n/bin/n
/usr/lib
mqq n@2.1.8

#

ついでにnも入れておきます。

5. Crowiインストール

# git clone --depth 1 https://github.com/crowi/crowi.git
Cloning into 'crowi'...
remote: Counting objects: 286, done.
remote: Compressing objects: 100% (261/261), done.
remote: Total 286 (delta 6), reused 118 (delta 0), pack-reused 0
Receiving objects: 100% (286/286), 422.47 KiB | 365.00 KiB/s, done.
Resolving deltas: 100% (6/6), done.

## (略)

完了しました!

# cd crowi/
# npm install

## (略)

入りました。

5.1. 自動起動シェルスクリプト設定

次に、自動起動の設定をしておきます。

# vi crowi.sh

#!/bin/bash

export PASSWORD_SEED=PASSPHRASE
export MONGO_URI=mongodb://USERNAME:PASSWORD@localhost/DBNAME
export FILE_UPLOAD=local
npm start

# chmod +x crowi.sh

起動用シェルスクリプトを記述し、実行権限を付与します。スクリプト中のUSERNAME, PASSWORD, DBNAMEはmongoDBインストール時に設定したものを、PASSPHRASEは何らかの文字列を入力します。

これで一度./crowi.sh &で起動を確認。

が、cssが適用されていない状態になってしまったので対処します。

5.2. Crowiのcss適用のための対処

# npm run build

> crowi@1.6.3 build /crowi/crowi
> gulp

## (略)

npm run buildで直る」という記事を見たので、その方法を試します。

試した後、エラーで上がらなくなってしまったのですが、一度rebootした後に./crowi.sh &で起動したところ、直っていました。何だったのでしょうか……。

これで一通り整ったので、作業ディレクトリを固定する記述を自動起動シェルスクリプトに付け加えます。

# vi crowi.sh

#!/bin/bash

cd `dirname $0`

export PASSWORD_SEED=PASSPHRASE
export MONGO_URI=mongodb://USERNAME:PASSWORD@localhost/DBNAME
export FILE_UPLOAD=local
npm start

最後にcrontabに再起動後必ず実行するようにタスク設定。

crontab -e

@reboot                  sudo /crowi/crowi/crowi.sh &

これで再起動、自動的にCrowiが起動するのを確認しました。

6. Elasticsearchインストール

検索を有効にするために、Elasticsearchを入れます。ElasticsearchはJavaで動くため、Javaからインストール開始。

# yum install java-1.8.0-openjdk

## (略)

完了しました!

続いてElasticsearch。通常では入らないのでリポジトリを作成し、インストール。

# vi /etc/yum.repos.d/elasticsearch.repo

[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

# yum install elasticsearch

## (略)

完了しました!

起動・自動起動の設定を行い、curlでテスト、最後に日本語プラグイン(kuromoji)のインストール。

# systemctl start elasticsearch
# systemctl enable elasticsearch
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
# curl http://127.0.0.1:9200
{
  "name" : "DHIovBv",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "xi_FMSYnRlySmCAIFRm5Xw",
  "version" : {
    "number" : "5.6.2",
    "build_hash" : "57e20f3",
    "build_date" : "2017-09-23T13:16:45.703Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}
# /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
-> Downloading analysis-kuromoji from elastic
[=================================================] 100%??
-> Installed analysis-kuromoji
#
# vi crowi.sh

#!/bin/bash

cd `dirname $0`

export PASSWORD_SEED=PASSPHRASE
export MONGO_URI=mongodb://USERNAME:PASSWORD@localhost/DBNAME
export ELASTICSEARCH_URI=http://XXX.XXX.XXX.XXX:9200
## 上の一行を追記
export FILE_UPLOAD=local
npm start

これで再起動。

どうも再起動直後だとCrowiが起動に失敗するっぽいので、sleepを挟むことにします。

# vi crowi.sh

#!/bin/bash

cd `dirname $0`

sleep 5m

export PASSWORD_SEED=PASSPHRASE
export MONGO_URI=mongodb://USERNAME:PASSWORD@localhost/DBNAME
export ELASTICSEARCH_URI=http://127.0.0.1:9200
export FILE_UPLOAD=local
npm start

5分も見ておけば大丈夫だと思いますが……。

「Index Build」の「Build Now」ボタンをクリックしてElasticsearchのインデックスを生成

無事起動した後、Webの管理画面にログインして、「管理」→「検索管理」→「Index Build」の「Build Now」ボタンをクリック。これで検索も有効になりました。

これで「Markdown記法の使えるWiki + 検索」の環境が整いました。

参考

2. 必要なライブラリのインストール

3. mongoDBインストール

4. node.jsインストール

5.2. Crowiのcss適用のための対処

6. Elasticsearchインストール

タグ: Markdown,Node.js

 



関連する記事一覧