mongodbをyumでCentOSにインストール(UTF8対応版)

Database, mongodb, NoSQL

09:12:31, by dozo Email , 170 words, 631 views   Japanese (JP)

del.icio.us
UTF8対応でつまづいた。

(ノ・・)ン。。。。。。(((●コロコロッ

---
RDBばかり長いことやってきたので、
それ以外のデータベースを扱うのは概念自体を勉強しなおさなければならなくて、
全然理解が追いついていない状況。
以下の記事は内容が間違っていることだらけだと思うが。
ご了承いただきたい。
---

fuelPHPを触っていたときにmongodbに対応していることに気がついた。
ということでちょっと触ってみることに。
NoSQLという概念があることは知ってはいたものの深く関わることはないだろうと思っていたのだが、
さわりもせずに物事を判断するのは一番やってはいけないことだと思い、
丁度良いタイミングで触れそうな機会があったのでやってみることにした。
ただ、アプリケーションサーバををJavaScript(Node.js)にするのはちょっと厳しそうなので、
そこはPHPのままでやることに。

  1. yumでmongodb, mongodb-devel, mongodb-serverをインストール
  2. jsをソースからビルドしてインストール
  3. libjs.so.1を置き換え
  4. /var/lib/mongdbディレクトリ作成


普通にyumでインストールするだけだと以下のようなエラーが出る。
MongoDB shell version: 1.6.4
Tue Dec 6 11:06:30 *** warning: spider monkey build without utf8 support. consider rebuilding with utf8 support
connecting to: test



以下の手順ではUTF8の対策も施している。

[More:]




●yumでmongodb, mongodb-devel, mongdb-serverをインストール
$ sudo yum install mongodb mongodb-devel mongdb-server

mongodb-develは必須ではないが、
PHPプログラマなら後は言わなくてもわかるよね。

●/var/lib/mongdbディレクトリ作成
monbodb-serverのパッケージではデフォルトの保存ディレクトリを作ってくれないので手動で作成する。
任意の場所にすることも可能だが、
/etc/mongodb.confを修正することを忘れずに。
$ sudo mkdir /var/lib/mongodb
$ sudo chown mongodb.mongodb /var/lib/mongodb



●jsをソースからビルドしてインストール
●libjs.so.1を置き換え
インストールは完了しているのだが、
単にyumでインストールすると上記のようにエラーが表示される。
これはjs-1.7のrpmパッケージがデフォルトでUTF8に対応していないからのようだ。
公式サイトでもそのことが明記されている。
http://www.mongodb.org/display/DOCS/Building+Spider+Monkey
ただ、debianパッケージでの記載なので、
この通りにやっても上手くいかない。
ここは少々手動でやる必要がある。

ダウンロードしたjsソースファイルを、
UTF8に対応させた状態でコンパイルし、
適当なディレクトリ/usr/local/jsにインストールする。
そのごlibjsを置き換える。

ソースファイルのダウンロード、展開
$ wget ftp://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz
$ tar xvfz js-1.7.0.tar.gz
$ cd js/src


ソースコードのビルド
$ export CFLAGS="-DJS_C_STRINGS_ARE_UTF8"
$ make -f Makefile.ref
$ sudo JS_DIST=/usr/local/js make -f Makefile.ref export


ファイル置き換え
$ sudo mv /usr/lib/libjs.so.1 /usr/lib/libjs.so.1_old
$ sudo mv /usr/local/js/lib/libjs.so /usr/lib/libjs.so.1


2012/01/10追記:
※64bitOSの場合はディレクトリ名をlib→lib64にする必要がある



実際使ってみたが、正直さっぱりわからない。
何となく出来上がったデータをそのまま突っ込んでいる印象なのだが、
これでちゃんと動くのかどうか?レスポンスに影響がないかどうか?など不明点だらけだ。
これで設計もせずにデータベースを構築するというのが全く理解できない状況。

とりあえずこのまま運用してみようと思う。


参考:
http://blog.mamemomonga.com/item/460

Trackback address for this post:

http://hain.jp/htsrv/trackback.php/250

Comments, Trackbacks:

No Comments/Trackbacks for this post yet...

Leave a comment:

Your email address will not be displayed on this site.
Your URL will be displayed.

Allowed XHTML tags: <p, ul, ol, li, dl, dt, dd, address, blockquote, ins, del, span, bdo, br, em, strong, dfn, code, samp, kdb, var, cite, abbr, acronym, q, sub, sup, tt, i, b, big, small>
(Line breaks become <br />)
(Set cookies for name, email and url)
(Allow users to contact you through a message form (your email will NOT be displayed.))
This is a captcha-picture. It is used to prevent mass-access by robots.

Please enter the characters from the image above. (case insensitive)

powered by b2evolution

shinobi

Neighbors
Relative
Favorites

極論istの技術屋を始めて早幾年。 流れの速い業界の波にもまれながらも精一杯生きている様をとくとごらんあれ。

Archives
スポンサー

Latest bookmark
Search

Categories

Who's Online?
Misc
Syndicate this blog XML

Valid XHTML 1.0! Valid CSS! Valid RSS 2.0! Valid Atom 1.0!