Создан: 14.07.2008
Иванов Аркадий.
Технология Jabber-а очень удобна для построения офисных систем мгновенной передачи сообщений. В отличие от ICQ и ей подобных, ваш сервер работает в вашей сети, а не где-то там далеко на другом краю света. И вы не зависите от причуд работы этих серверов, от Internet-провайдеров, от каналов связи за пределами офиса и вас никто не может заставить получать назойливый спам, как в ICQ, и вас никто не заставит менять версию софта насильственным образом в самый неподходящий момент, как это сделали разработчики ICQ со своими пользователями 1 июля 2008 года.
Программы-клиенты есть для всех операционных систем, например PSI.
Установка и настройка ejabberd.
Сам сервер мгновенной передачи сообщений устанавливается из пакета ejabberd. Инсталлятор для Linux для архитектуры x86 я брал с сайта разработки: www.ejabberd.im/download . На момент написания этой статьи я использовал версию сервера 2.0.0. В версии 2.0.1 содержались непреодолимые достоинства для того, что я описываю в этой статье, так что, её не рекомендую.
1. Запуском файла инсталлятора ejabberd-2.0.0-rc1-linux-x86-installer.bin (не забудьте сделать его исполняемым) и доведением процедуры до победного конца, получаем каталог /opt/ejabberd-2.0.0 со всем полезным содержимым сервера.
Предположим, что наш компьютер называется jabber.mycompany.ru.
2. Редактируем conf/ejabberd.cfg:
Оно должно содержать теперь следующие строки:
... {hosts, ["jabber.mycompany.ru"]}. ... |
В секции listen:
.... {5280, ejabberd_http, [ {request_handlers, [ {["web"], mod_http_fileserver} ]}, http_bind, http_poll, web_admin ]} ]}. ... |
В секции modules:
... {mod_http_fileserver, [ {docroot, "/var/lib/ejabberd/www"}, {accesslog, "/var/log/ejabberd/webaccess.log"} ]}, ... |
3. Запускаем jabber-сервер из каталога bin:
Если захотим в будущем прибить сервер, то:
./ejabberdctl stop killall -9 epmd |
4. Запускаем какого-либо клиента, например, PSI, проверяем, что можем зарегистрироватьcя на jabber.mycompany.ru.
Установка и настройка jwchat.
Мелким недостатком многих систем мгновенной передачи сообщений является то, что для работы с ними необходимо устанавливать отдельную программу-клиента. Для многих таких систем, например для YAHOO, AOL, MSN, ... уже разработан доступ через броузер. Вот JWCHAT и является такой системой доступа к JABBER-серверу через броузер.
1. Скачиваем jwchat с jwchat.sourceforge.net/download.shtml
В момент написания этой статьи это был файл jwchat-1.0beta3.tar.gz
2. Создаём каталог /var/lib/ejabberd/www, раскрываем скачанный файл в этот каталог:
mkdir -p /var/lib/ejabberd/www cd /var/lib/ejabberd/www tar xzf jwchat-1.0beta3.tar.gz |
3. Переименовываем получившийся каталог:
mv jwchat-1.0beta3 jwchat |
4. Переходим в каталог и переписываем все файлы с суффиксом ".ru" в такие же без суффикса, т.е. проводим руссификацию пакета:
cd jwchat for a in $(ls *.ru); do b=${a%.ru}; cp $a $b; done |
5. Редактируем config.js. Указываетм название нашего сайта:
var SITENAME = "jabber.mycompany.ru"; |
6. Редактируем config.js. Оставляем там только режим подключения к Jabber-серверу "http-bind":
var BACKENDS = [ { name:"Native Binding", description:"Ejabberd's native HTTP Binding backend", httpbase:"/http-bind/", type:"binding", servers_allowed:[SITENAME] } ]; |
Настройка Apache2.
Для того, чтобы удобно обращаться к нашему jabber-серверу из броузера, в Apache2 надо сделать некоторые переделки:
1. Разрешим mod_proxy и mod_rewrite. Тут изобретатели дистрибутивов стараются кто во что горазд. Для этого у себя
в Alt Linux Master 4.0 в каталог /etc/httpd2/conf/mods-enabled из каталога mods-available я переписал файлы:
proxy.conf
proxy.load
proxy_http.load
rewrite.load
2. В proxy.conf редактируем:
ProxyRequests Off <Proxy *> AddDefaultCharset off <IfModule authz_host_module> Order deny,allow Deny from all Allow from all </IfModule> </Proxy> |
3. В конфигурации для виртуального хоста с jabber-ом написал следующее:
<VirtualHost *:80> ServerName jabber.mycompany.ru DocumentRoot /var/lib/ejabberd/www/jwchat ErrorLog /var/log/httpd2/jabber-error_log CustomLog /var/log/httpd2/jabber_log common <Directory /var/lib/ejabberd/www/jwchat> Options +Indexes +MultiViews </Directory> AddDefaultCharset UTF-8 ProxyRequests Off ProxyPass /http-bind/ http://127.0.0.1:5280/http-bind/ ProxyPassReverse /http-bind/ http://127.0.0.1:5280/http-bind/ Alias /jwchat /var/lib/ejabberd/www/jwchat RewriteEngine on RewriteRule http-bind/ http://127.0.0.1:5280/http-bind/ [P] </VirtualHost> |
4. Не забываем рестартовать Apache2:
Проверка.
Осталось только запустить браузер и в адресе указать: http://jabber.mycompany.ru