Решил сегодня задокументировать заметку по установке сервера Openfire на Ubuntu. Сегодня переставлял сервер и наткнулся на несколько старых грабель что отняло много времени и решил сделать полный цикл действия по установки под ключ сервера Openfire.
- Установка Ubuntu (я ставил десктопную версию 14.04)
- Накатить все обновления и перезагрузить систему
- Ставим доп пакеты на систему sudo apt-get install mc и sudo apt-get install aptitude
- Ставил LAMP (Linux + Apache + MYSQL + PHP ) сервер sudo apt-get install lamp-server^ (если будите работать с БД то можно поставить phpmyadmin aptitude install phpmyadmin)
- Ставим Java sudo add-apt-repository ppa:webupd8team/java и обновляемся sudo apt-get update (тут есть хороший манул если что по установки Явы http://help.ubuntu.ru/wiki/java)
- Если Вам нужно установить определенную версию Явы, то версии для установки можно посмотреть командой aptitude search oracle-java в моем случае я ставил 8 версию командой apt-get install oracle-java8-installer (парадокс но на 9 версии почему то клиенты не могли подключиться в серверу писало, что соединение закрыто и в статусе системы не было 5222 порта, хотя в настройках он был)
PS на скриншоте выделил два сервера openfire на 8 java и на 9, все по дефолту стоит и как видите Openfire на 8 версии при установки есть порты 5222 для подключения клиентов, а вот на 9 я так и не нашел почему их там нету и из-за этого как раз у меня клиент и не мог подключиться потому как порт не был открыт на сервере, хотя в настройках он стоял в явном виде (думаю что это как раз проблема может решится в след версии)
- Создаем базу MYSQL для Openfire
sudo mysql -u root -p
mysql> CREATE DATABASE openfire CHARACTER SET='utf8'; mysql> CREATE USER 'openfire'@'localhost' IDENTIFIED BY '12345678'; mysql> GRANT ALL PRIVILEGES ON `openfire`.* TO 'openfire'@'localhost' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES; mysql> use your_base (в примере мы используем базу openfire )
mysql> alter database character set utf8;
mysql> alter database collate utf8_general_ci;
mysql> quit
- Скачиваем последнюю версию OpenFire
wget http://download.igniterealtime.org/openfire/openfire_3.10.2_all.deb
-
Устанавливаем Openfire в системе dpkg -i openfire_3.10.2_all.deb
- Теперь переходим непосредственно к настройке Openfire, для этого переходим в браузер и в адресную строку вбиваем адрес http://ip_address_server:9090
- На третьем шаге выбираем БД MYSQL а URL указываем след jdbc:mysql://localhost:3306/your_base?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8 (данная строчка убирает косяк с козаряблами и восклицательными знаками когда в openfire заводите пользователе или переписываетесь на русском языке, т.е. настраиваем ее на работу с русским языком)
- Вот и все, далее уже тонкие настройки и каждый настраивает под себя, но все что я описал выше это 100% рабочий вариант Openfire с русским языком. Т.е. по факту по этой инструкии теперь можно настроить сервер за 2 часа и то 95% времени займет установка самой Ubuntu и обновление системы.
Всем удачи и хорошего настроения!
На правах заметки.
Я тестировал сервер на виртуальной машине, HostName которой содержит символ подчёркивания (_).
При первичной настройке OpanFire на второй странице в поле «Область» автоматически подставляется HostName сервера.
При сохранении такого имени OpenFire никак не ругается, однако после завершения настройки сервер падает без объяснения причин.
В логах OpenFire, конечно, написано, что имеется не валидное имя HostName, но почему оно не валидно — не сказано.
Данный баг обнаружен на OpenFire 4.0.3 в ОС Ubuntu 16.04.1 Server.
Сервер действиельно не работает с Java 9, но работает с Java 8.
Устанавливал сервак я без LAMP, то есть так:
sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer default-jre-headless mysql-server
wget http://download.igniterealtime.org/openfire/openfire_4.0.3_all.deb
sudo dpkg -i ./openfire_4.0.3_all.deb
Автору статьи большая благодарность за рецепт с кодировкой UTF8