2012-03-17 12 views
0

PostgreSQLを使用するためにejabberdを設定する際に問題があります。私の環境は、開発用のOSXとプロダクション用のDebianサーバです。PostgreSQLを使用したejabberdのセットアップ

OSXの話は次のようになります。 ejabberdはodbcサポートでソースからコンパイルされています。 erlangはmacportsを通してインストールされます。 私が遭遇した最初の問題は、erlang用のpsqlモジュールでした。ドキュメントでは、存在しないsvnの場所からコンパイルすることに言及しています。バイナリのインストールから関連する.beamを私のejabberd libにコピーしました。これは正常に動作するようです。

私のejabberd構成は意図的に最小限であり、現時点では、odbcを介してネイティブpgsqlドライバで認証するだけです。しかし、ejabberdはきれいに始まりますが、実際にはテーブル構造を作成することはありません。 processone's repoにはpg.sqlがありますが、廃止され、テーブルが自動的に作成されるという大きな警告があります。いつ、どのように起こりますか?私は、PostgreSQLにクエリを送信ん認証しようとしているインスタンスのためにそれを確認することができますが、そこにはテーブルが存在しないので、エラーが出て...

ejabberdの設定は、次のとおりです。

{loglevel, 4}. 

{hosts, ["localhost"]}. 

{listen, 
    [ 

    {{5222, {127, 0, 0, 1}}, ejabberd_c2s, [ 
     {access, c2s}, 
     {shaper, c2s_shaper}, 
     {max_stanza_size, 65536} 
      ]}, 

    {{5269, {127, 0, 0, 1}}, ejabberd_s2s_in, [ 
     {shaper, s2s_shaper}, 
     {max_stanza_size, 131072} 
     ]}, 

    {{5280, {127, 0, 0, 1}}, ejabberd_http, [ 
     http_bind, 
     web_admin 
     ]} 

]}. 

{odbc_server, {pgsql, "localhost", "ejabberd", "ejabberd", "ejabberd"}}. 

{auth_method, [odbc]}. 

{shaper, normal, {maxrate, 1000}}. 
{shaper, fast, {maxrate, 50000}}. 

{host_config, "localhost", [{acl, admin, {user, "admin", "localhost"}}]}. 

{acl, local, {user_regexp, ""}}. 

{access, max_user_sessions, [{10, all}]}. 

{access, local, [{allow, local}]}. 

{access, c2s, [{deny, blocked}, 
     {allow, all}]}. 

{access, c2s_shaper, [{none, admin}, 
      {normal, all}]}. 

{access, s2s_shaper, [{fast, all}]}. 

{access, announce, [{allow, admin}]}. 

{access, configure, [{allow, admin}]}. 

{access, muc_admin, [{allow, admin}]}. 

{access, muc, [{allow, all}]}. 
{access, muc_create, [{allow, local}]}. 

{access, register, [{allow, all}]}. 

{access, pubsub_createnode, [{allow, local}]}. 


{language, "en"}. 

{modules, 
[ 
    {mod_adhoc, []}, 
    {mod_announce, [{access, announce}]}, 
    {mod_caps,  []}, 
    {mod_configure,[]}, 
    {mod_disco, []}, 
    {mod_http_bind,[]}, 
    {mod_last,  []}, 
    {mod_offline, []}, 
    {mod_privacy, []}, 
    {mod_private, []}, 
    {mod_pubsub, [ 
     {access_createnode, pubsub_createnode}, 
     {ignore_pep_from_offline, false}, 
     {last_item_cache, false}, 
     {nodetree, "dag"}, 
     {plugins, ["dag", "flat", "hometree", "pep"]}, 
     {max_items_node, 1000} 
    ]}, 
    {mod_register, [ 
     {welcome_message, {"Welcome!", 
      "Welcome to localhost Jabber server."}}, 
     {access, register} 
    ]}, 
    {mod_roster, []}, 
    {mod_shared_roster,[]}, 
    {mod_time,  []}, 
    {mod_vcard, []}, 
    {mod_version, []} 
]}. 

答えて

3

右を、これはほとんどのためであります私がこれを最終的に考え出した後の文書化...同様の問題を抱えている人にとってはうまくいけば便利です。 ejabberd 2.1。*にも当てはまりますが、確かに3シリーズではありません。

  1. 私はPostgreSQL < 9.0を使用しなければならず、特に私は8.4を使用しました。これは、ejabberdによって引用符が\'としてエスケープされているためです。PostgreSQLの9. *シリーズではうまくいきません。
  2. 次の手順にはsubversionerlang-toolsがインストールされている必要があります。
  3. あなたは、DBを作成して、テーブル構造を作成するために、this fileをインポートhttp://svn.process-one.net/ejabberd-modules/pgsql/trunk/ コンパイルからpgsqlのためのドライバを入手し、パス/ libに/ ejabberd/ebin
  4. にコピーします。ファイルがそれが時代遅れだと言って無視する、ejabberdはあなたのための構造を作成しません。
+0

「erlang-tools」とは何ですか?私のディストリビューションにはこのようなパッケージはありません。私の 'erlang'のバイナリのリストは、十分ですか、何か不足していますか? https://wklej.stratushost.eu/id/116/ – Nowaker

関連する問題