<%CollapsedContents()%>

備忘録とかもろもろ

Windowsサーバーでjabberを動かす

ということでイントラの中で、IMを動かしたいと考えましてJabberサーバーを立ててみました。
Linuxでやれば情報もあって早いんでしょうが、もし今後常用する場合にLinixサーバーでは管理しきれない面があるので、あえて社内にあるWindows2000サーバーで動かすことを試してみました。
3日かかりましたが、まぁなんとか動いたのでそのメモ。

サーバーソフトの選定

条件としてはフリーでWindowsで動くもの。こちらで探してみたところ、jabberd 1.x、jabberd 2.x、ejabberd、Jive Messengerというところがフリーで動きそうなものでした。
このうち、Jabberd2の設定に関して、お気楽JabberサーバにLinux版の情報があったので、これを参考にということでサーバーソフトはJabberd2で決定。

バイナリのダウンロード

ダウンロードはここから、と言いたいところですがここにあるのはソースです。自分でmakeしないといけないというもの。
そんな環境は「ない&作るのめんどくさい(できるかもわからんし…)」のでmake済みのものを求めてぐぐってみました。
で、見つかったのがPackages - Jabberd2。一番下に、s7とs8をビルドしたもののリンクがありました。当然s8で。

ここには3つのビルドがあるのですが、お気楽Jabberサーバの情報を参考にするため、mysqlを利用した「jabberd-2.0-CVS20050523-win32-mysql.zip」をダウンロードします。

設定

まず、Mysqlは4系でなくてはいけないので、そちらのインストール&設定。
手順は他を参考にしてください。

次にテキトウなフォルダを作成して(c:\jabberd2)とかそこにダウンロードしたファイルを展開。
設定は全部xmlファイルになってますので、お気楽Jabberサーバ - jabberd2を参考に設定。

起動とテスト

router.exe、sm.exe、resolver.exe、s2s.exe、c2s.exeをダブルクリックして実行し、コマンドプロンプト画面が表示され続けることを確認。
5つの画面がでているならば、無事起動ができていると思われるのでテキトウなJabberクライアントを使用して接続テストを実行。(見た目からいうとPandionがオススメ)

users-agentを使用してJUDを提供する

このままでも普通に使用できますが、社内で使用するという目的から考えると、誰が登録しているのかがわからないというのは辛い。
一覧表示できればいいのでしょうが、それは難しそうなので検索ができるようにJUD(Jabber User Directory)を稼動させる。

お気楽Jabberサーバ - jabberd2によればusers-agentというperlスクリプトでJUDが構築できるようなので、Windows用のActivePerlを使用して動かしてみました。
結論としては動いたのですが、かなり苦労しました。

perlの準備

まず、ActivePerlのインストール。5.6系と5.8系がありますが、うちでは5.6系でうまくいかなかったので5.8系をインストールしてください。
(ダウンロードはこちらから)

インストール後、users-agentに必要なperlモジュールをインストールします。方法はCPANを使用する方法とPPMを使用する2つの方法があります。PPMの方が簡単で準備が楽ですが、依存関係は処理しない(たぶん)のと、Packageが存在しない場合があります。よって、私はCPANとPPMを併用し
ました。
CPANの使用方法はこちら → Perlモジュール/インストール(CPAN) - Walrus,Digit.
PPMの使用方法はこちら → Perlモジュール/インストール(PPM) - Walrus,Digit.

必要なモジュールはNet::JabberとDBI。とりあえずCPANでインストールしてうまくいかなければPPMという手順で行いました。
また、make用としてMSのnmake.exeを使用しましたが、test makeでエラーを起こして進まなかったため、

force install Net::Jabber

でインストールしています。
DBIはCPANでは「clがない」とエラーを吐くのでPPMでインストール。

users-agentのダウンロードと設定

http://www.jabberstudio.org/projects/users-agent/releases/ からusers-agentをダウンロードしてテキトウなフォルダに展開(例:C:\jabberd2\users-agent\)。
お気楽Jabberサーバ の手順ではdatabaseを別に作成していますが、これだとそのDBにデータを別途作成する必要があるため、ここは飛ばします。
config.xmlの設定は基本的にはお気楽Jabberサーバ - jabberd2を参考にしますが、だけは

<dbname>jabberd2</dbname>

の様にjabberd2で使用するDB名を指定します。

users-agentファイルの書き換え

通常のスクリプトのままだとJUDテーブルがあることが前提のため、こちらの記述を参考に「users-agent」ファイルを書き換えます。(-がついている行を+のついている行に書き換える)

Windows環境でエラーが出ますので、1,4,6行目を削除
削除する内容

#!/bin/sh exec perl -x $0 "$@"; #!perl

これで起動はしますが、日本語が文字化けるので、削除した部分あたりに以下の行を追加

use encoding "utf8"; binmode STDERR, ":encoding(utf8)";

users-agent起動

コマンドラインからusers-agentを展開したディレクトリへ移動し、以下のコマンドで起動。

perl users-agent

また、終了してしまう、動きがわからないというのであれば

perl users-agent -D 1

で起動すると動作状態が画面表示されます。
(たぶん足りないモジュールがエラーとして表示されるので、それは都度PPMでインストール)

users-agentテスト

Jabberクライアントを起動し、自分のプロフィールとして姓、名、ニックネーム、メールアドレスを編集します。
ユーザーの追加で検索サーバーが表示され、検索ができればOK。
Pandionではできました。Psiではどこで検索画面が出てくるかわからず、Exodusはメニューが日本語にならなかったのでパス。

サービス化

このままだとログオンしていないと起動できないので、Windowsのサービスとして動かします。
使用したツールはExecSVC(ssk's Home)
テキトウなフォルダに展開し、ExcSvc.iniファイルに以下の内容を記述

[router] EXE = C:\jabberd2\router.exe ARG = DIR = C:\jabberd2\ PRI = LOW [resolver] EXE = C:\jabberd2\resolver.exe ARG = DIR = C:\jabberd2\ PRI = LOW [c2s] EXE = C:\jabberd2\c2s.exe ARG = DIR = C:\jabberd2\ PRI = LOW [s2s] EXE = C:\jabberd2\s2s.exe ARG = DIR = C:\jabberd2\ PRI = LOW [sm] EXE = C:\jabberd2\sm.exe ARG = DIR = C:\jabberd2\ PRI = LOW [users-agent] EXE = c:\perl\bin\perl.exe ARG = C:\jabberd2\Users-Agent\users-agent.pl DIR = C:\jabberd2\Users-Agent\ PRI = LOW

コマンドプロンプトから展開したフォルダに移動して以下のコマンドを実行すればサービス化の完了です。

instsvc C:\展開したフォルダ\ExecSvc.exe -a -s Jabberd2

以下のコマンドを実行してサービスを起動させてください。

net start Jabberd2

クライアントから接続、検索がきちんとできることを確認したらすべて完了。

ちなみに、完全に試行錯誤で行いましたので質問は受け付けられません(答えられるとは思えない…)。特にperlはまったくわからないので、「やったら動いた」レベルの記述です。
むしろおかしいところがあったらコメント希望です。

2005年06月29日 16時51分00秒 藤咲記す - カテゴリ: 調べ物 - <%Views()%>
関連記事
日本語環境でSpark2.0を動かす 2006-09-07
以前「Windowsサーバーでjabberを動かす」としてjabberサーバの 構築をしてみましたが、その後使用していたJabberd2は止めてしまい、現在はWildfire Serverを使用しています。 日本語情報はほっとんどありませ...

TrackBack

トラックバック URI←この記事にトラックバックする際使用してください。
(右クリックからショートカットのコピーを選択)
TechNet/Jabber orz... (PukiWiki/TrackBack 0.4) pinged on 2007/06/06 10:10
Jabberd2インストール お気楽Jabberサーバ - jabberd2 に書いてることやればOK。 ここ からダウンロードしたが、Sleipnirやwgetじゃダメだった。仕方なくIEで... 但し、configureのパラメタは --with-extra-library-path=/usr/lib/mysql を追加した。 ./configure --pr...

コメント

コメントを書く

このBlogへコメントを追加するにはメンバーとしてログインしなければいけません。

この記事を携帯で読む

この記事のQRコード