0

ejabberd に必要なすべての mysql .beam ファイルがあります。そして、apt経由でejabberdをインストールしました。しかし、これらの .beam ファイルを/usr/lib/ebinディレクトリにコピーして ejabberd を実行しようとすると、次のように ejabberd.log にエコーされます。

=INFO REPORT==== 2012-05-31 09:46:02 === アプリケーション: ejabberd が終了しました: {bad_return,{{ejabberd_app,start,[normal,[]]}, {'EXIT',database_module_missing}}タイプ: 一時的

私が間違っていることは何ですか?

ejabberd aptインストールにmysqlドライバーを追加する正しい方法は何ですか?

4

2 に答える 2

2

この ERROR が簡単にトリガーされる原因を確認してください。モジュールのハードコーディングされたリストが Erlang VM パスにあるかどうかをチェックします。odbc ファイルが存在し、適切なファイル所有権があることを確認してください。必要なファイルは次のとおりです。

check_database_module(odbc) ->
    check_modules(odbc, [odbc, odbc_app, odbc_sup, ejabberd_odbc, ejabberd_odbc_sup, odbc_queries]);
check_database_module(mysql) ->
    check_modules(mysql, [mysql, mysql_auth, mysql_conn, mysql_recv]);
check_database_module(pgsql) ->
    check_modules(pgsql, [pgsql, pgsql_proto, pgsql_tcp, pgsql_util]).
于 2012-05-31T21:10:04.970 に答える
2

ejabberd が使用する BEAM ファイルは別の場所にあります — ファイルをそこに置いてみてください。

余談ですが、これらの BEAM ファイルは本当に大丈夫ですか? Erlang は、バイナリの移植性に関してはあまり寛大ではないため、ターゲット マシンで ejabberd を実行するのと同じリリースの Erlang を使用して、必要なコードを再コンパイルすることを常にお勧めします。

于 2012-05-31T23:13:40.677 に答える