Установка ejabberd під linux
Розглянемо установку сервера ejabberd на комп'ютери під управлінням одного з дистрибутивів GNU / Linux для використання в локальній мережі з відкритим доступом з Інтернет і з використанням служби DynDNS.
Ejabberd може бути встановлений на ваш сервер різними способами. Опишу три спаданням перевагу:
- Установка зі сховищ / портів. Ідеальний по оптимізації і найпростіший варіант.
- Збірка з вихідного коду. Якщо цього пакета немає в репозиторіях до вашого дистрибутива, але дуже хочеться, щоб сервер був оптимізованим і працював без помилок - засучівать рукава і переходимо до відповідного розділу. Тут вам знадобляться деякі знання про Linux і / або допомогу гуру.
- Попередньо зібрані бінарні файли з інсталятором. Варіант досить простий, але навряд чи оптимізований саме під ваш дистрибутив.
Далі детально розглянуті ці варіанти.
Установка зі сховищ [ред]
Дистрибутивів Linux безліч, і немає ніякої можливості розглянути деталі установки в кожному з них. Згадаємо найбільш популярні (передбачається наявність прав root):
openSuSE 11.4 [ред]
Спочатку підключимо репозиторій, присвячений програмам обміну повідомленнями:
Потім встановимо сервер:
Fedora [ред]
За замовчуванням потрібний репозиторій зазвичай підключений.
Debian-based дистрибутиви (Debian, * Ubuntu і інші) [ред]
Ejabberd входить в основну гілку репозиторію, тому для установки просто скомандуйте:
Gentoo [ред]
Для установки ejabberd в Gentoo GNU / Linux виконайте команди
Збірка з вихідних [ред]
Розглянемо складання stable-версії ejabberd-2.0.5.
Для початку потрібно, щоб на сервері був встановлений компілятор gcc і необхідні бібліотеки (включаючи devel-частини). Перевірте, чи є у вас:
- GNU Make
- GNU C compiler (GCC)
- libexpat 1.95 або вище
- OpenSSL 0.9.6 або вище
- Zlib 1.2.3
- GNU Iconv 1.8 або вище
- flex / yacc
У різних дистрибутивах перевірка і установка робиться різними способами. Дистрибутивів багато, описувати кожен сенсу не має. Якщо ви не знаєте, як це зробити на вашому сервері, зверніться до документації або гуру з даного дистрибутива.
Для простоти операцій будемо працювати користувачем root в його домашньому каталозі. Не забудьте потім прибрати.
Отже, нам потрібен вихідний код ejabberd. Йдемо на офіційний сайт і вибираємо, що потрібно. Краще вибирати stable версію, але якщо ви дуже любите нові фішки і не боїтеся нестабільної роботи, то беріть beta, testing або SVN версії.
Я вибрав stable-версію 2.0.5 і скачав її:
Звичайно ж, у вас є ця зручна утиліта - wget. ;)
Ще нам знадобиться свіженький Erlang - це компілятор мови, на якому написаний ejabberd. Якщо Erlang є в ваше сховище, то краще скористатися ним. Якщо немає - покажу, як зібрати його з вихідних кодів.
Як програміст, не втримаюся від пояснень, навіщо було використовувати цей на вигляд громіздкий і незручний мову. Він громіздкий і незручний дійсно лише на вигляд, для написання програм на зразок hello world, проте надає прекрасний інструментарій многопоточного і розподіленого програмування. Це дозволить вам одного разу написану і зібрану програму використовувати на величезних кластерах, що складаються з машин будь-якої архітектури, в які буде простіше простого додати нові обчислювальні потужності. Навіть Java не має подібних можливостями. Саме тому ejabberd вважається одним з найшвидших і масштабованих серверів протоколу XMPP.
Але досить лірики.
Якщо у вас є в наявності всі інструменти, бібліотеки і вихідні коди, приступимо.
Створимо тимчасовий каталог для наших збірок:
erlang [ред]
У моєму випадку скачаний архів називається otp_src_R13B01.tar.gz. Розпаковуємо його в тимчасовий каталог:
Переходимо в каталог і збираємо erlang:
Звичайно ж, стежимо за процесом, а не просто набираємо команди. Програма складання може повідомити про помилку, але не кожен error або warning означає непоправну помилку. Наприклад, процес конфігурації (команда configure) може повідомити, що не знайшла компілятора java, бібліотек odbc і wx, але це не є помилкою. Просто відповідні частини erlang-а будуть відключені. Перераховані бібліотеки нам не знадобляться для роботи ejabberd.
Після складання повернемося в домашній каталог командою cd.
ejabberd [ред]
У моєму випадку архів називається ejabberd-2.0.5.tar.gz. Розпаковуємо його в тимчасовий каталог:
Переходимо в каталог з вихідними кодами і збираємо ejabberd:
Після всіх цих маніпуляцій все потрібні файли розкладені згідно з традиціями UNIX / Linux. Конфіги, зокрема, - в / etc / ejabberd. Скрипт запуску - / sbin / ejabberdctl - відпрацьовує команду start, що дозволяє відразу додати в rc.d, хоча краще все ж написати правильний сценарій керування службою згідно з правилами вашого дистрибутива.
Установка готових бінарників [ред]
Розглянемо установку stable-версії 2.0.5 для 32-бітного Linux. Для початку потрібно скачати інсталятор:
Далі дотримуйтеся вказівок програми установки.
Налаштування [ред]
А далі треба налаштувати сервер: що робити при завантаженні, які модулі використовувати, які порти прослуховувати, і т.п.
У першому параметрі задається Jabber ID адміністратора, а в другому - доменне ім'я сервера. Наведіть ці рядки приблизно до такого виду:
В даному випадку JID адміністратора заданий [email protected]. а ім'я сервера, як вже домовилися вище - myjabber.ath.cx.
Тепер в тому ж файлі знайдіть рядки
і замініть deny на allow - без цього користувачі сервера не зможуть реєструватися безпосередньо зі свого Jabber-клієнта.
Логін в веб-інтерфейсі