この日記のはてなブックマーク数 Subscribe with livedoor Reader

最近 5 日分 / 今月の一覧

2016-04-28 Thu


Crowi を CentOS7 にインストール [Crowi]


Crowi 1.4.0 がリリースされました。
https://medium.com/crowi-book/crowi-v1-4-0-43762793741d#.pxjx1gk0k

Crowiは、Markdown 記法を用いた Wikiシステムです。
検索機能は残念ながら見送られたようですが、それは次回リリースに期待ということで。

今回は、これを CentOS7 にインストールしてみます。SELinux は Permissive もしくは Disable前提です。

まずは必要なパッケージを以下に。

# yum -y install epel-release
# yum -y install git mongodb-server gcc gcc+ mongodb


つぎに mongo 関連です。

# systemctl start mongod


これで mongoサーバが起動されますので、mongo shell で crowi用のアカウントを作成します。

$ mongo
\> use crowidb
switched to db crowidb
\> db.createUser({user: "ユーザ名", pwd: "パスワード", roles: [{role: "readWrite", db: "データベース名"}]})
Successfully added user: {
  "user" : "crowi",
  "roles" : [
{
"role" : "readWrite",
"db" : "crowidb"
}
   ]
}


ユーザができたかの確認

\> use admin
\> db.system.users.find()
{ "_id" : "crowidb.crowi", "user" : "crowi", "db" : "crowidb", "credentials" : { "MONGODB-CR" : "2d47a95cc02ac854bd6cc4ce2496682c" }, "roles" : [ { "role" : "readWrite", "db" : "crowidb" } ] }


で、肝心の node.js なんですが、CentOS7 のは古いのでうまく動きません。node.js 4.2 系である必要があります。とりあえず node.js 4.3.3でも動いたので、私は 4.4.3 をインストールしました。

# rpm -Uvh https://rpm.nodesource.com/pub_4.x/el/7/x86_64/nodejs-4.4.3-1nodesource.el7.centos.x86_64.rpm


Crowi の clone と npm install

$ mkdir src
$ cd src
$ git clone --depth=1 -b v1.4.0 https://github.com/crowi/crowi
$ cd crowi
$ npm install


npm install はそれなりに時間がかかります。で、ここからは CentOS7 固有の話。systemd で起動できるようにします。

# touch /etc/sysconfig/crowi
# chmod 600 /etc/sysconfig/crowi
# vi /etc/sysconfig/crowi


PORT=3000
#NODE_ENV=
MONGO_URI="mongodb://ユーザ名:パスワード@localhost/DB名"
#REDIS_URL
PASSWORD_SEED=hgoehogehoge
#SECRET_TOKEN=
FILE_UPLOAD=local


このファイルで記述したものが環境変数として取り込まれることになります。MONGO_URIで指定しているユーザ名、パスワード、DB名は、db.createUserで指定したものです。PASSWORD_SEED は適当なランダム文字列を指定しておきましょう。


# vi /etc/systemd/system/crowi.service


[Unit]
Description=Crowi - The Simple & Powerful Communication Tool Based on Wiki
After=network.target mongod.service

[Service]
WorkingDirectory=/home/vagrant/src/crowi
EnvironmentFile=/etc/sysconfig/crowi
ExecStart=/usr/bin/node app.js

[Install]
WantedBy=multi-user.target


これを systemd に反映させます(WorkingDirectoryは、ソースコードを展開したディレクトリ名です。適当に修正してください)

# systemctl daemon-realod


あとは

# systemctl start crowi


で起動します。3000番ポートを Listen しているので、適当にfirewalld でフィルタを開けてください。

なお、

vi ~/src/crowi/lib/crowi/express-init.js




config.crowi['app:url'] = baseUrl = .....


ということころは、明示的に書きなおしていた方が、共有用のリンクとかで幸せにになれるかもしれません。
また、データバックアップは、~/src/crowi/public/upload 以下と mongodb の dump データでいいはず。



2016-04-11 Mon


tsung について [Benchmark]


会社のブログで新しいエントリーが公開されました。

負荷テストツールの tsung を使ってみる
https://toe.bbtower.co.jp/20160407/93/

tsung は erlang で書かれたツールです。JMeter ほど細かな制御ができるわけではないですが、大きな負荷を掛けたいときには便利なツールです。特に設定をしなくても、cookie とかも勝手に食ってくれたかと思うので、ページ遷移にも追随してくれるはずです。



会社で技術ブログ書き始めました [よもやま]


そういえば、会社でもブログを書き始めました。

ドキュメントで利用可能なIPアドレスなど
https://toe.bbtower.co.jp/20160331/132/

真面目に調べているうちに肥大化しました。多分、この手の話題を扱った記事としては、一番詳しく掛けたんじゃないかなぁと思ってます。よろしければご一読を。


2016-04-04 Mon


ChaChaについて [TLS]


GoogleがTLSでの採用を提唱している共通鍵暗号方式「ChaCha」についてまとめた
http://sonickun.hatenablog.com/entry/2016/04/03/183220

新しいTLSの暗号方式ChaCha20-Poly1305
http://d.hatena.ne.jp/jovi0608/20160404/1459748671

目を通しておくのがヨサゲ



React に入門してみる [React]


React に入門してみようかと

https://facebook.github.io/react/docs/getting-started.html

を軽く目を通して

$ npm install --save react react-dom babelify babel-preset-react
$ npm -g install browserify
$ npm install -g react-tools


まで実行したところで、日本語ドキュメントがあることに気づく。

https://facebook.github.io/react/docs/getting-started-ja-JP.html

で、これに従ってできるところまで……と思ったらいきなり動かない。Chrome のデベロッパーツールで見ると

Uncaught ReferenceError: ReactDOM is not defined


とのこと。日本語版だと、ドキュメントが古いのかと思って

https://facebook.github.io/react/docs/getting-started.html

を改めて見てみると、結構内容が違う。どうやら、0.14 から react.js から react-dom.js が分離されたようで、

    <script src="build/react-dom.js"></script>


を入れたら動いた。さすがに react-0.14.8.zip を解凍した中にある examples/ 以下のファイルは、普通にちゃんと動くみたい。
以下、OSXにて。

$ cd react-0.14.8
$ python -m SimpleHTTPServer
$ open http://localhost:8000/examples/


これらを流し読みしたあとで、tutorial 読むかなぁ……なんで今さらこんなことしてるかというと

10年のツケを支払ったフロント界隈におけるJavaScript開発環境(2016年4月現在)。
http://d.hatena.ne.jp/tomoya/20160403/1459665374

を読んだから。さすがに全然わかりませんじゃダメだよねぇ、と思ったのがきっかけ。


2016-04-03 Sun


長命寺の桜もち [よもやま]


わりと毎年のように、長命寺の桜餅を買いにいくわけですが、毎年長蛇の列です。twitter で行列具合について触れられてたりするかと思って検索を掛けてみたら



とのこと。松屋浅草で売ってるならそっちで買って見るかと 松屋 浅草店を目指してでかけました。

松屋が有りました。

松屋 浅草店

大失敗です。EKIMISE ASAKUSAの B1〜 3F までが松屋浅草だったのね。ということで、松屋浅草に行ったんですが、すでに 16:00 を回ってたので売り切れでした。まぁそうだよね。

ということで、そこから長命寺まで歩いて行ったわけですが、16:30 ぐらいには着いたかな?いままで一番空いてて、5分とかからず買えました。並ばずに買いたいなら、ちょっと遅いぐらいがいいのかなぁ……


2016-03-25 Fri


Firewall で Reject した時の挙動について [Network]


以下、単なる疑問で結論はないです。

Firewall では、ポートを閉じた時に、Drop か Reject を選べるものがあります。Drop は、本当にパケットを叩き落とすだけですが、Reject は、相手側にポートを落とした旨、通知します。

ずっと、そういう時には ICMP の Destination unreacable を返すもんだと思ってたんですが、

たまたま

PF: 実行時オプション
http://ftp.tuwien.ac.at/.vhost/www.openbsd.org/xxx/faq/pf/ja/options.html

を読んでたら、set block-policy の部分で

return - ブロックされた TCP パケットに対して TCP RST パケットが返され、 他の
すべてのパケットに対しては ICMP UNREACHABLE パケットが返されます。


ん? TCP RST?

実際試してみると、確かに PFで set block-policy return を設定していると、TCP の RST が返ってくる……

Wikipedia の

https://en.wikipedia.org/w/index.php?title=Internet_Control_Message_Protocol&redirect=no#Destination_unreachable

を読んでみても

A Destination Unreachable message may be generated as a result of
a TCP, UDP or another ICMP transmission. Unreachable TCP ports
notably respond with TCP RST rather than a Destination Unreachable
type 3 as might be expected.


とあり、TCP に関しては RSTパケットで返すことが期待されるとのこと。なんでだろ……(ICMPはフィルタリングされてることが多く、TCP だと届きやすいとかいう理由?)

関連する RFC があると思うんだけど、ちらっと探した限りでは見つけられなかった。モヤモヤ……


IPv4/IPv6 meter
検索キーワードは複数指定できます
ChangeLogを検索
Google
Web www.kunitake.org
思ったより安い……時もある、Amazon

カテゴリ