0

ejabberdサーバーを実行して、Androidアプリケーションでリアルタイムチャットとして使用しようとしています。

32ビットバイナリを使用してサーバーをインストールし、Webインターフェイスを使用してログインできるようにサーバーを構成しました。ただし、クライアントとの接続に問題があります。サーバーから返されるエラーは{open_error、-10}であり、これはtls_drv.soファイルを読み取ろうとしたときのエラーであると考えられます。

ウェブで検索したところ、私と同じ問題を抱えている人がいることがわかりましたが、具体的な解決策が見つからないようです。このスレッドhttp://www.ejabberd.im/node/4200には、私が抱えている問題とまったく同じ問題が記載されており、OPは新しいバージョンのドライバーを使用して問題を修正したようです。しかし、それらのドライバーをどこでどのように入手するかはわかりません。

ここの誰かが私がこれを修正するのを手伝ってくれますか?ありがとうございました。

4

2 に答える 2

2

そのlddコマンドをどうもありがとう!それは私の問題を解決しました:-D

どうやらtls_drv.soはlibssl.so.0.9.8とlibcrypto.so.0.9.8を探しており、ejabberdには0.9.7が含まれています。たまたまlibssl.so.0.9.8eとlibcrypto.so.0.9.8eをインストールしましたが、これらはtls_drv.soでは見つかりませんでした(「e」が原因ですか?)。

私がしたことは、0.9.8という名前の0.9.8eへのシンボリックリンクを作成することでした。そして、voilà!機能した!

ここにいくつかのより多くの情報があります:

  • Centos 5.5、32ビット
  • ejabberd 2.1.8
  • バイナリインストーラーをwww.process-one.net(www.ejabberd.im)から直接ダウンロードしました
  • インストーラーに必要なホスト名と管理者ユーザーを除いて、まだデフォルトの構成があります。
  • ジャバークライアントからの接続は、TLSがなくても正常に機能しているようです。問題は、利用可能な場合に接続を暗号化するようにクライアントを構成したときに発生しました。

修正前に文句を言っているerlangログは次のとおりです。

=CRASH REPORT==== 12-Sep-2011::22:48:56 ===
  crasher:
    pid: <0.372.0>
    registered_name: []
    exception exit: {{case_clause,{error,{open_error,-10}}},
                     [{tls,tcp_to_tls,2},
                      {ejabberd_socket,starttls,3},
                      {ejabberd_c2s,wait_for_feature_request,2},
                      {p1_fsm,handle_msg,10},
                      {proc_lib,init_p,5}]}
      in function  p1_fsm:terminate/7
    initial call: gen:init_it(p1_fsm,<0.258.0>,<0.258.0>,ejabberd_c2s,
                              [{ejabberd_socket,
                                   {socket_state,gen_tcp,#Port<0.406>,
                                       <0.371.0>}},
                               [inet,
                                {certfile,
                                    "/opt/ejabberd-2.1.8/conf/server.pem"},
                                starttls,
                                {access,c2s},
                                {shaper,c2s_shaper},
                                {max_stanza_size,65536},
                                {ip,{0,0,0,0}}]],
                              [])
    ancestors: [ejabberd_c2s_sup,ejabberd_sup,<0.36.0>]
    messages: []
    links: [<0.258.0>]
    dictionary: [{'$internal_queue_len',0}]
    trap_exit: false
    status: running
    heap_size: 987
    stack_size: 23
    reductions: 3258
  neighbours:

=SUPERVISOR REPORT==== 12-Sep-2011::22:48:56 ===
     Supervisor: {local,ejabberd_c2s_sup}
     Context:    child_terminated
     Reason:     {{case_clause,{error,{open_error,-10}}},
                  [{tls,tcp_to_tls,2},
                   {ejabberd_socket,starttls,3},
                   {ejabberd_c2s,wait_for_feature_request,2},
                   {p1_fsm,handle_msg,10},
                   {proc_lib,init_p,5}]}
     Offender:   [{pid,<0.372.0>},
                  {name,undefined},
                  {mfa,
                      {ejabberd_c2s,start_link,
                          [{ejabberd_socket,
                               {socket_state,gen_tcp,#Port<0.406>,<0.371.0>}},
                           [inet,
                            {certfile,"/opt/ejabberd-2.1.8/conf/server.pem"},
                            starttls,
                            {access,c2s},
                            {shaper,c2s_shaper},
                            {max_stanza_size,65536},
                            {ip,{0,0,0,0}}]]}},
                  {restart_type,temporary},
                  {shutdown,brutal_kill},
                  {child_type,worker}]

これを修正するプロセスは次のとおりです。

root@mail [/opt/ejabberd-2.1.8]# find . -name tls_drv.so
./lib/ejabberd-2.1.8/priv/linux-x86/lib/tls_drv.so
root@mail [/opt/ejabberd-2.1.8]# cd lib/ejabberd-2.1.8/priv/linux-x86/lib/
root@mail [/opt/ejabberd-2.1.8/lib/ejabberd-2.1.8/priv/linux-x86/lib]# ldd tls_drv.so 
linux-gate.so.1 =>  (0x00f9c000)
libssl.so.0.9.8 => not found
libcrypto.so.0.9.8 => not found
libc.so.6 => /lib/libc.so.6 (0x00d9c000)
/lib/ld-linux.so.2 (0x00943000)
root@mail [/lib]# cd /lib
root@mail [/lib]# ll libcrypto.so.* libssl.so.*
-rwxr-xr-x 1 root root 1296964 Mar  6  2011 libcrypto.so.0.9.8e*
lrwxrwxrwx 1 root root      14 Nov 24  2009 libcrypto.so.4 -> libcrypto.so.6*
lrwxrwxrwx 1 root root      19 Apr 26 11:06 libcrypto.so.6 -> libcrypto.so.0.9.8e*
-rwxr-xr-x 1 root root  293044 Mar  6  2011 libssl.so.0.9.8e*
lrwxrwxrwx 1 root root      11 Nov 24  2009 libssl.so.4 -> libssl.so.6*
lrwxrwxrwx 1 root root      16 Apr 26 11:06 libssl.so.6 -> libssl.so.0.9.8e*
root@mail [/lib]# ln -s libcrypto.so.0.9.8e libcrypto.so.0.9.8
root@mail [/lib]# ln -s libssl.so.0.9.8e libssl.so.0.9.8
root@mail [/lib]# cd -
/opt/ejabberd-2.1.8/lib/ejabberd-2.1.8/priv/linux-x86/lib
root@mail [/opt/ejabberd-2.1.8/lib/ejabberd-2.1.8/priv/linux-x86/lib]# ldd tls_drv.so 
./tls_drv.so: /lib/libcrypto.so.0.9.8: no version information available (required by ./tls_drv.so)
./tls_drv.so: /lib/libssl.so.0.9.8: no version information available (required by ./tls_drv.so)
linux-gate.so.1 =>  (0x0088c000)
libssl.so.0.9.8 => /lib/libssl.so.0.9.8 (0x00110000)
libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0x00ebf000)
libc.so.6 => /lib/libc.so.6 (0x00252000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x008ef000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00ae0000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x0077c000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00527000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00158000)
libdl.so.2 => /lib/libdl.so.2 (0x0016c000)
libz.so.1 => /usr/lib/libz.so.1 (0x00a67000)
/lib/ld-linux.so.2 (0x00943000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00df3000)
libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x00e2a000)
libselinux.so.1 => /lib/libselinux.so.1 (0x008cc000)
libsepol.so.1 => /lib/libsepol.so.1 (0x00171000)
root@mail [/opt/ejabberd-2.1.8/lib/ejabberd-2.1.8/priv/linux-x86/lib]#

ejabberdを再起動しました。それだけです。

グーグルで同じ問題を抱えている人をたくさん見つけることができたので、それが他の誰かに役立つことを本当に願っていますが、単一の解決策ではありません。

よろしく!

maganap

于 2011-09-13T03:56:44.437 に答える
0

最新のインストーラーは、ejabberdへのこの依存関係を解決します。

報告ありがとうございます!

于 2012-03-26T07:42:31.317 に答える