Установка ejabberd из исходного кода на freebsd
Скачиваем архив с сайта или сразу скачиваем по моей ссылке, ejabberd 13.12:
# wget http://www.erlang.org/download/otp_src_R16B03-1.tar.gz # gunzip -c otp_src_R16B03-1.tar.gz | tar xf - # cd otp_src_R16B03-1
# Bourne shell $ LANG=C; export LANG
или можно:
# C-Shell $ setenv LANG C
Но чтобы понять с какими параметрами нужно компилировать, читаем README или документацию на официальном сайте, я приведу пару примеров сборки:
$ ./configure --prefix=/opt/local $ make $ make DESTDIR=/tmp/erlang-build install $ cd /tmp/erlang-build/opt/local $ # gnu-tar is used in this example $ tar -zcf /home/captain/my-erlang-build.tgz * $ su - Password: ***** $ cd /opt/local $ tar -zxf /home/me/my-erlang-build.tgz
$ ./configure $ make $ make RELEASE_ROOT=/home/me/OTP release $ cd /home/captain/OTP $ ./Install -minimal /home/captain/OTP $ mkdir -p /home/camptain/bin $ cd /home/captain/bin $ ln -s /home/captain/OTP/bin/erl erl $ ln -s /home/captain/OTP/bin/erlc erlc $ ln -s /home/captain/OTP/bin/escript escript ...
# mkdir /usr/local/src/ejabberd # cd /usr/local/src/ # wget http://www.process-one.net/downloads/ejabberd/13.12/ejabberd-13.12.tgz
# tar -xf ejabberd-13.12.tgz
Переходим в папку и начинаем конфигурировать:
# cd /usr/local/src/ejabberd-13.12 # ./configure --enable-odbc # gmake && gmake install
Джаббер сервер установлен, запустим его и проверим его запуск:
# ejabberdctl start # ejabberdctl status
Остановить можно так:
# ejabberdctl stop
Для ejabberd нужно установить MySQL, подробная информацию можно найти на моем сайте:
Установка MySQL на FreeBSD
# mysql -u root -p mysql> CREATE DATABASE 'ejabberd' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;Создаем так же пользователя: mysql> GRANT ALL PRIVILEGES ON * . * TO 'ejabberd'@'%' IDENTIFIED BY 'my_pass' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;
И обновим привилегии:
FLUSH PRIVILEGES;
БД мы создали, но необходимо еще создать саму структуру базы. sql файл можно взять из архива /usr/ports/distfiles/ejabberd. Темплейт mysql.sql естественно. Генерируем sslсертификат:
# opensslreq -new -x509 -nodes -newkeyrsa:1024 -days 3650 -keyout privatekey.pem -out server.pem cat privatekey.pem >> server.pem # rm privatekey.pem # mv server.pem ssl.pem
Сохраняем и закрываем ejabberd.cfg
# echo 'ejabberd_enable="YES"' >> /etc/rc.conf # /usr/local/etc/rc.d/ejabberd start
{loglevel, 4}.
{hosts, ["jabber.linux-notes.org"]}.
{listen,
[
{5222, ejabberd_c2s, [
%%
%% If TLS is compiled in and you installed a SSL
%% certificate, specify the full path to the
%% file and uncomment this line:
%%
%%{certfile, "/path/to/ssl.pem"}, starttls,
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}
]},
%%
%% To enable the old SSL connection method on port 5223:
%%
%%{5223, ejabberd_c2s, [
%% {access, c2s},
%% {shaper, c2s_shaper},
%% {certfile, "/path/to/ssl.pem"}, tls,
%% {max_stanza_size, 65536}
%% ]},
{5269, ejabberd_s2s_in, [
{shaper, s2s_shaper},
{max_stanza_size, 131072}
]},
%%
%% ejabberd_service: Interact with external components (transports, …)
%%
%%{8888, ejabberd_service, [
%% {access, all},
%% {shaper_rule, fast},
%% {ip, {127, 0, 0, 1}},
%% {hosts, ["icq.example.org", "sms.example.org"],
%% [{password, "secret"}]
%% }
%% ]},
%%
%% ejabberd_stun: Handles STUN Binding requests
%% Установка ejabberd из исходного кода на freebsd
%%{{3478, udp}, ejabberd_stun, []},
{5280, ejabberd_http, [
%%{request_handlers,
%% [
%% {["pub", "archive"], mod_http_fileserver}
%% ]},
captcha,
http_bind,
http_poll,
web_admin
]}
]}.
{s2s_certfile, «/usr/local/etc/ejabberd/ssl.pem»}.
{auth_method, odbc}.
{odbc_server, {mysql, «localhost», «jabber», «jab», «jabber»}}.
{shaper, normal, {maxrate, 1000}}.
{shaper, fast, {maxrate, 50000}}.
{max_fsm_queue, 1000}.
{acl, admin, {user, «admin», «jabber.linux-notes.org»}}.
{acl, local, {user_regexp, «»}}.
{access, max_user_sessions, [{10, all}]}.
{access, max_user_offline_messages, [{5000, admin}, {100, 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_create, [{allow, local}]}.
{access, muc, [{allow, all}]}.
{access, pubsub_createnode, [{allow, local}]}.
{access, register, [{allow, all}]}.
{language, «en»}.
{modules,
[
{mod_adhoc, []},
{mod_announce, [{access, announce}]}, % recommends mod_adhoc
{mod_caps, []},
{mod_configure,[]}, % requires mod_adhoc
{mod_disco, []},
%%{mod_echo, [{host, "echo.localhost"}]},
{mod_irc, []},
{mod_http_bind, []},
%%{mod_http_fileserver, [
%% {docroot, "/var/www"},
%% {accesslog, "/var/log/ejabberd/access.log"}
%% ]},
{mod_last, []},
{mod_muc, [
%%{host, "conference.@HOST@"},
{access, muc},
{access_create, muc_create},
{access_persistent, muc_create},
{access_admin, muc_admin}
]},
%%{mod_muc_log,[]},
{mod_offline, [{access_max_user_messages, max_user_offline_messages}]},
{mod_ping, []},
{mod_privacy, []},
{mod_private, []},
%%{mod_proxy65,[]},
{mod_pubsub, [
{access_createnode, pubsub_createnode},
{ignore_pep_from_offline, true}, % reduces resource comsumption, but XEP incompliant
%%{ignore_pep_from_offline, false}, % XEP compliant, but increases resource comsumption
{last_item_cache, false},
{plugins, ["flat", "hometree", "pep"]} % pep requires mod_caps
]},
{mod_register, [
%%
%% After successful registration, the user receives
%% a message with this subject and body.
%%
{welcome_message, {"Welcome!",
"Hi.nWelcome to this XMPP server."}},
%%
%% When a user registers, send a notification to
%% these XMPP accounts.
%%
%%{registration_watchers, ["admin1@example.org"]},
{access, register}
]},
{mod_roster, []},
%%{mod_service_log,[]},
{mod_shared_roster,[]},
{mod_stats, []},
{mod_time, []},
{mod_vcard, []},
{mod_version, []}
]}.
MAGIC!!!
Ну это уже просто пиздец