Erlang入門してejabberdでプライベートなJabberサーバ立ち上げたメモ

環境は

Erlang入門

以下の日本語PDFがわかり易くて良かった。
Thinking in Erlang (Japanese version)

「ふつうのhaskell」やってて関数型言語のイメージが既にできてたのでだいたい理解できた。
だいたい6時間くらい。

erlangのインストール

とりあえず、mac ports でインストールしたはず... 記憶が...

$ sudo port install erlang

exmppのインストール

なんでか忘れたけど、exmppが必要だということでインストールする。

exmpp home - Erlang XMPP library (exmpp) - ProcessOne - Documentation

svnリポジトリからソースを取ってきてビルド/インストール
configureスクリプトは autoreconf コマンドで作成すること。

$ svn co http://svn.process-one.net/exmpp/trunk exmpp-trunk

$ autoreconf -vif

$ ./configure
$ make

これで、ライブラリが /opt/local/lib/erlang/lib/exmpp-0.9.1 にインストールされた。

ejabberdのインストール

やっとejabberdのビルド/インストール

ejabberd - Installation and Operation Guide - ProcessOne

ここもsvnからソースとってくる

$ svn co http://svn.process-one.net/ejabberd/trunk ejabberd

で make & install

$ cd ejabberd
$ cd src
$ ./configure
$ make
$ sudo make install

これでインストール完了

管理者アカウント/一般アカウントの作成

ejabberdを起動して管理者アカウントを登録する。

$ sudo ejabberdctl start
$ sudo ejabberdctl register admin1 localhost password
$ sudo ejabberdctl stop

で、/etc/ejabberd/ejabberd.cfg を編集して'admin1'ユーザに管理者権限を付与するため、以下の一行を追加する。

{acl, admin, {user, "admin1", "localhost"}}.

で、もういちどejabberdを起動

$ sudo ejabberd start

ついでに一般ユーザも追加しとく

$ sudo ejabberd register snaka localhost password

jabberクライアントからつないでみる

さっそくjabberクライアントからつないでみる
Psiというクライアントが良さそうだったのでそれを使ってみる。

Psi - The Cross-Platform Jabber/XMPP Client For Power Users

"Account Setup"を開き
http://gyazo.com/5016d24570c45801dd9f290292f120fd.png

[Add]ボタンクリック
http://gyazo.com/eb7e1874777dd39fe1bf6b9eb8186b6e.png

名前を聞いてくるので適当な名前を付ける。
※このとき、"Register new account"のチェックをはずしておくこと(すでにejabberdにはregisterしてあるので不要。
http://gyazo.com/11b974c0adc325120fc8e93dd176c2d6.png

いましがた追加したアカウントを選択して[Modify]をクリック
http://gyazo.com/98444fea571b9e8820bc3b95c691fa15.png

Jabber ID の欄に"admin1@localhost"と入力して[Save]をクリック
http://gyazo.com/42098d55d5faf47b4a1ddec8003c7310.png

メインのウィンドウにアカウントが追加されているのでその上で右クリック(control+click)、[Status]-[Online]を選択
http://gyazo.com/724d866176a1ea8cea943b278092c739.png

すると、こんな風に星が黄色くなるはず...
http://gyazo.com/c9e3c7d0e64d092685b3113f716d1014.png

これでサーバへの接続完了。

ためしに"admin1"をダブルクリックするとチャットウィンドウが開くので適当にメッセージを入れると自分自身にそのメッセージがかえってくるはず...

http://gyazo.com/f55e0b454c3ed39d99411d1df0becd4c.png

あとは、ユーザを増やすなどしたらjabber環境のできあがり?