
Установка 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!!!
Ну это уже просто пиздец