Markdownで書ける、よさげなWikiサーバーソフトまとめ
を読んでみてRaspberryPiで練習がてら動かしてみた
環境
デバイス: RaspberryPi2 ModelB
OS: RASPBIAN JESSIE WITH PIXEL (KernelがLinux 4.4.38-v7)
Node.js: v4.4.7
MongoDB: 2.4.10
dockerだと動かなかったので自分で環境構築していく
最初のQiita記事の作者さんがdockerイメージ化してくれてたのだが
RaspberryPiだとCPUの関係?で使えないコンテナなどあって
うまくいかなかったので自分で環境を構築していくことにした
といってもほとんど下記記事を参考にしたらいける
Markdownで書けるWiki - Crowi
build-essential, python, git, kerberosをインストール
入ってない場合は下記をやる
(pythonは一応最初から入ってるとは思う)
$ sudo apt-get update
$ sudo apt-get install build-essential python git libkrb5-dev -y
MONGO DBのインストール
Mongoを3.x系入れようと四苦八苦したけどできなかったので
(後述するが一応RaspberryPiでも3.x系は使用可能らしい)
ひとまずapt-getで簡単に入る2.4を使用する
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install mongo-server -y
# 確認
$ mongo -version
MongoDB shell version: 2.4.10
もし3.x系が欲しい場合は下記やり方はあるっぽいけど自分はうまくいかなかった
Raspberry PI 3にMongoDB 3.xを入れる
MongoDBにuserをaddする
Mongo3.x系だとcreateUserだけど、こっちは2.4なのでaddUserを使用して
userを追加する
crowidb(データベース), pi(ユーザー名), raspberry(パスワード)
については自分の好きな名前をつけてよい
$ mongo
> use crowidb
> db.addUser("pi", "raspberry", true)
上記を打ち込んでいくがコンソールは下記のように表示されるはず
pi@raspberrypi ~ $ mongo
MongoDB shell version: 2.4.10
connecting to: test
Server has startup warnings:
Wed Feb 8 13:01:27.093 [initandlisten]
Wed Feb 8 13:01:27.093 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Wed Feb 8 13:01:27.093 [initandlisten] ** 32 bit builds are limited to less than 2GB of data (or less with --journal).
Wed Feb 8 13:01:27.093 [initandlisten] ** See http://dochub.mongodb.org/core/32bit
Wed Feb 8 13:01:27.094 [initandlisten]
> use crowidb
switched to db crowidb
> db.addUser("pi", "raspberry", true)
{
"user" : "pi",
"readOnly" : true,
"pwd" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"_id" : ObjectId("xxxxxxxxxxxxxxxxxxxxxx")
}
データベースができているかは下記コマンドで確認
> db.system.users.find()
{ "_id" : ObjectId("xxxxxxxxxxxxxxxxxxxxxx"), "user" : "pi", "readOnly" : true, "pwd" : "xxxxxxxxxxxxxxxxxxxxxxx" }
(pwdと_idのところは本当はアルファベットと数値の羅列が出てくるけどひとまず伏せてます)
MongoDBの準備はこれでいいので次にNode.jsを入れる
Node.js 4.xを入れる
公式githubを見てみると
どうやらNode.jsのバージョンが4.x系が必要とのことなので入れる
リンク先の方法で入れてもいいが自分はnodebrewを入れていたので
nodebrewを用いて、とりあえずv4.4.7を入れた
$ nodebrew install-binary v4.4.7
$ nodebrew use v4.4.7
# nodeコマンドやnpmコマンドでバージョンが確認出来たら成功
$ node -v
v4.4.7
$ sudo node -v
v4.4.7
$ npm -v
2.15.8
nodeの準備が整ったので次にCrowiを入れる
Crowiを入れる
適当なディレクトリでgit cloneする
$ npm install
する前にnode-gyp
というのを入れておくこと
(自分の場合はnode-gypを入れずにやったらエラーになった)
参考: CrowiをDebian jessieで動かしたときの手順(日本語で検索する方法つき)
もしそれでもエラーになるようならgit checkoutでCrowiのバージョンを1.5.0に指定しておく
(自分は一応やったけどやらなくてもよかったかも)
```
$ git clone --depth 1 https://github.com/crowi/crowi.git
$ cd crowi
$ sudo apt-get install node-gyp
Crowiのバージョンを1.5.0とする場合
$ git checkout -b v1.5.0
$ npm install
```
で、$ npm install
したらコンパイルが始まる(けっこう時間がかかる)
PASSWORD_SEEDとMONGO_URIを指定する
環境変数として必須の項目を設定
以下のようにcrowiディレクトリでシェル・スクリプトを作っておくとすると便利
MongoDBの設定を先ほどcrowidb, pi, raspberryという名前で作成したので
MONGO_URIの設定は下記のようになる
#!/bin/bash
export PASSWORD_SEED=raspberry
export MONGO_URI=mongodb://pi:raspberry@localhost/crowidb
npm start
で、実行する
$ sudo chmod +x crowi.sh
$ sudo ./crowi.sh
> crowi@1.5.3 start /home/pi/crowi
> node app.js
[development] Express server listening on port 3000
のように、3000ポートでserver listeningになったら成功
後は自分のRaspberryPiのIPアドレスにポート番号3000でアクセスしたら
Crowiのインストール画面が表示されるはずなので、表示されたら成功
RaspberryPiのIPアドレスはifconfig
コマンドで確認できます
例えばIPアドレスが 192.168.0.200
だったら http://192.168.0.200:3000 にアクセスすれば良い
自動起動したい場合は参考にしたリンク内を参考にすればできるかと思います