1. KYhei

    No comment

    KYhei
Changes in body
Source | HTML | Preview
@@ -1,205 +1,205 @@
[Markdownで書ける、よさげなWikiサーバーソフトまとめ](http://qiita.com/Bakudankun/items/740ac8ba1395fe4e40a6)
を読んでみて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イメージ化](https://hub.docker.com/r/bakudankun/crowi/)してくれてたのだが
RaspberryPiだとCPUの関係?で使えないコンテナなどあって
うまくいかなかったので自分で環境を構築していくことにした
といってもほとんど下記記事を参考にしたらいける
[Markdownで書けるWiki - Crowi](http://qiita.com/nullsnet/items/a6e69e44087339127b35)
### 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を入れる](https://www.hytech-design.net/?p=105)
### 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](https://github.com/crowi/crowi)を見てみると
どうやらNode.jsのバージョンが4.x系が必要とのことなので入れる
[リンク先](http://qiita.com/nullsnet/items/a6e69e44087339127b35)の方法で入れてもいいが自分は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で動かしたときの手順(日本語で検索する方法つき)](http://d.hatena.ne.jp/hogehiga/20160907/1473197660)
もしそれでもエラーになるようなら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の設定は下記のようになる
```sh:crowi.sh
#!/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.24.200` だったら http://192.168.0.200:3000 にアクセスすれば良い
+例えばIPアドレスが `192.168.0.200` だったら http://192.168.0.200:3000 にアクセスすれば良い
自動起動したい場合は[参考にしたリンク](http://qiita.com/nullsnet/items/a6e69e44087339127b35)内を参考にすればできるかと思います