Для обеспечения гостей гостиницы в которой я работаю беспроодным доступом в сеть Интернет была изыскана возможность развернуть на территории хотспот на оборудовании Ubiquity UniFi. В состав этого решения входит программный контроллер который моно установить на операционные системы Windows. MacOS и Linux, поскольку он основан на Java. Кстати, это удинственная зависимость, просто поставьте последнюю jre перед установкой, или начните установку и инсталлятор сам перекинет Вас на страницу с последней версией.

Контроллер под Windows устанавливается очень просто, как и многие приложения для этой ОСи, и очень быыстро, чем многие ругие приложения позвастаться не могут. Но после успешного окончания установки у меня возникла ошибка при запуске. Программа упорно твердила мне, что сервер остановлен из-за слишком долго запуска:

Initializing UniFi Controller ... Starting UniFi Controller ... Server taking too long to start... Start-up failed.

На официальном сайте данное сообщение рассматривалось в связи с ситуайией, что порты используемые приложение уже кем-то заданы и рекомендовалось изменить порты на другие в конфигурационном файле. В соём же случае проблема была в том, что встроенная база на движке MongoDB не запускалась из-за отсутствия файлов БД и невозможности их содать самостоятельно. В логах БД ./logs/mongod.txt у меня были следующие сообщения об ошибке:

Tue Jul 29 16:34:06 [conn1] Create/OpenFile failed C:/Users/Администратор/Ubiquiti UniFi/data/db/ace.ns errno:3

Tue Jul 29 16:34:06 [conn1] error couldn't open file C:/Users/Администратор/Ubiquiti UniFi/data/db/ace.ns terminating

Tue Jul 29 16:34:06 dbexit:

Tue Jul 29 16:34:06 [conn1] shutdown: going to close listening sockets...

Как я это решил:

По-умолчанию контроллер устанавливается в директорию

C:\Users\<Имя текущего пользователя>\Ubiquiti UniFi.

Откуда её впоследствии легко можно перенести просто остановив все процессы контроллера, если он запущен, скопировав папку в нужное место и поправив ярлык запуска. Относительно неё и будут указываться все пути.

Это корневая папка приложения, в ней размещена папки data, logs, bin и другие.

Как раз на невозможность создания файла ace.ns в папке data/db движок БД и ругается в логе.

Исполняемый файл лежит в папке bin.

Запускаем консоль. Переходим в папку ./bin.

Запускаем процесс СУБД с указанием порта на котором слушаем пользовательские соединения (27117 - порт по-умолчанию) и директории с файлами БД:

mongod --port=27117 --dbpath=..\data\db

В другом окне консоли соединяемся с запущенным экземпляром с помощью клиента mongo.exe на указанный выше порт:

mongo --port=27117

Указываем что будем работать с БД формате ace:

use ace

Запускаем процесс починки файлов БД:

db.repairDatabase()

В результате в директории ./data/db должны появиться несколько файлов вида ace.???. После чего контроллер у меня заработал.

Предыдущая запись Следующая запись