Настройка работы по сети или через интернет
БД - База данных. Файл базы данных по умолчанию находится в папке C:\OPSURT_DB\OPSURT_DB_[version].FDB. C этим файлом непосредственно работает система управления базы данных СУБД Firebird (поставляется в комплекте).
Сервер (компьютер) - ЭВМ, на которой находится БД, там же создаются резервные копии. На этой машине устанавливается "серверная часть". Сервер может быть только один.
Клиент (компьютер) - это ПК, который подключается к серверу. На нём устанавливается клиентская часть. Количество одновременно подключенных клиентов неограничено.
Возможные варианты подключения:
- Только один компьютер
- Локальная сеть
- Локальный компьютер как интернет-сервер
- Linux хостинг
- Файл базы данных в облаке
Автономная работа (только один компьютер)
Это вариант применяется по умолчанию при установке. На компьютер устанавливается как клиентская, так и серверная часть. Дополнительных настроек не требуется.
Настройка подключения по локальной сети
- Настроить локальную сеть. (Если Вы не знаете как это сделать - обратитесь к ближайшему системному администратору.)
- Установить ПО. Выбрать один главный компьютер для хранения БД (сервер) и установить на него "серверную часть" (можно одновременно установить "клиентскую часть", чтобы на нём тоже можно было работать, например: приходовать товар).
На остальных ПК - устанавливается ТОЛЬКО клиентская часть!
- Добавить исключение. На компьютере сервере добавьте правило для брандмауэра Windows: Пуск -> Панель управления -> Брандмауэр Windows -> Дополнительные параметры -> Правила для входящих подключений -> Создать правило -> Для программы -> Путь программы: %ProgramFiles% (x86)\Firebird\Firebird_2_5\bin\fbserver.exe (путь к фалу у Вас может быть отличаться!) -> Разрешить подключение -> Далее -> Готово. Если вы используете антивирусы или фаерволы, то добавьте вышеуказанный файл в исключения.
- Подключиться клиентом к серверу, для этого указать в настройках клиента IP адрес сервера.
Поле "Путь" - это путь к файлу базы данных НА СЕРВЕРЕ. Если Вы не перемещали файл в другое место, то менять это поле не нужно.
- Возможные ошибки подключения:
- Connection reject by remote interface. Означает, что соединение блокируется программно. Попробуйте выполнить п.3, а также временно отключить антивирус/фаервол.
- Unable to complete network request to host. Говорит о физической изоляции сервера. Нужно выяснить, на каком этапе обрывается соединение. Попробуйте соединить компьютеры "напрямую" или через "Switch", но без маршрутизаторов (роутеров). Если после этого соединение успешно установилось, то на маршрутизаторе нужно добавить разрешающее правило для встроенного фаервола на порт 3050. (См. инструкцию вашего роутера или обратитесь за помощью к системному администратору).
- Прочие ошибки. Смотрите в ответах
Локальный компьютер как интернет-сервер
- Выполните настройки для локальной сети (смотрите предыдущий пункт). Если подключить сервер и клиент в локальную сеть, то они должны успешно подключаться.
- На клиенте укажите внешний ip адрес сервера. Существует много онлайн-сервисов, отображающих Ваш ip адрес, например: https://2ip.ru/. На компьютере-сервере в любом броузере откройте эту страницу. Именно этот ip адрес нужно указывать в строке подключения программы на клиентах.
- Если подключиться не удалось.
- Настроить "проброс порта 3050" (Port forwarding). На роутере, который используется сервером для выхода в интернет, нужно настроить "Port forwarding" - проброс порта 3050. Инструкции у нас нет, т.к. это напрямую это зависит от производителя, модели и версии прошивки маршрутизатор, смотрите инструкцию к вашему устройству. В интернете много информации по этому поводу. Вот основные параметры:
Public Port 3050 Traffic Type TCP IP Address {Нужно указать локальный ip адрес сервера} Private port 3050
- Настроить "проброс порта 3050" (Port forwarding). На роутере, который используется сервером для выхода в интернет, нужно настроить "Port forwarding" - проброс порта 3050. Инструкции у нас нет, т.к. это напрямую это зависит от производителя, модели и версии прошивки маршрутизатор, смотрите инструкцию к вашему устройству. В интернете много информации по этому поводу. Вот основные параметры:
- Настроить Dynamic DNS. Практически все интернет-провайдеры предоставляют временные внешние ip адреса. Т.е. после каждой перезагрузки маршрутизатора, ему будет присвоен новый ip-адрес, а значит каждый раз при запуске программы нужно будет заново узнавать ip адрес сервера и указывать его в строке подключения. Есть Выхода два:
- Оформить у провайдера услугу "статический ip адрес". В этом случае ip адрес будет оставаться неизменным, даже после перезагрузки роутера.
- Использовать сервис Dynamic DNS. Например: dyn.com, noip.com, hldns.ru. В этом случае на клиенте нужно будет указвать не ip адрес, а доменной имя, которое останется неизменным. В современных прошивках роутеров производители уже закладывают возможность настройки DynDNS, но большинство сервисов из-за их популярности сейчас стали платными. Подробную информацию о настройке этих служб ищите в интеренте, сейчас об этом много статей.
Если у Вас возникают технические сложности, то проконсультируйтесь с системным администратором или ИТ-специалистом: они подскажут как поступить в конкретном случае.
Linux хостинг
Этот вариант не бесплатный, но довольно удобный. На момент написания статьи стоимость нужного тарифа на хостинге Fozzy составляет 79 руб./месяц.
Преимущества хостинга:
- не нужно держать включённым компьютер
- не нужно настраивать доступность внешних портов
- не нужно отслеживать изменения динамического ip адреса или покупать статичный
Регистрация
Первое что нужно сделать, зарегистрироваться по нашей реферальной ссылке https://accounts.fozzy.com/aff.php?aff=17927. Для нас это небольшой бонус, которым мы пользуемся при оплате нашего хостинга, на котором ведём разработку этого проекта.
На сайте Fozzy выбираем услугу "Linux VPS (79 руб месяц)" и оплачиваем первый месяц. После этого на почту аккаунта придёт сообщение с доступами. В дальнейшем в инструкции под доступами будут подразумеваться данные, которые указаны под заголовком: "Данные доступа к серверу по протоколу SSH" и которые имеют вид:
IP-адрес: XXX.XXX.XXX.XXX
Логин: root
Пароль: XXXXXXXXXXX
Теперь настало время придумать пароль администратора (именно этот пароль будет используется для входа в AdminTool). По умолчанию в Windows это пароль masterkey, но в нашем случае, программа будет эксплуатироваться через интернет и использовать стандартный пароль опасно. Итак, придумываем пароль, сохраняем его в какой-нибудь текстовый файл и пока не закрываем.
Загрузка файлов на сервер
Cкачиваем дистрибутив сервера базы данных Firebird SQL Server.
Загружаем дистрибутив на хостинг. Для этого воспользуемся популярным файловым менеджером Filezilla. Вводим данные для подключения и подключаемся
Далее переходим в папку "/var/opt" на сервере (это правая сторона файлового менеджера), в нёё будем загружать дистрибутив. Затем находим локальный файл Firebird SQL Server (в левой стороне файлового менеджера), который скачали ранее и закачиваем его на сервер.
В туже папку ("/var/opt") загружаем актуальный файл базы данных OPSURT_DB_XXX.FDB, по умолчанию он находится на локальном компьютере в папке C:\OPSURT_DB\.
Установка Firebird
Дистрибутив Firebird загружен на сервер, теперь его необходимо установить. Для этого скачиваем и устанавливаем программу Putty. Указываем ip адрес и нажимаем "Open".
Появится окно командной строки с надписью login as:
Теперь из предоставленных доступов копируем логин пользователя (root) переходим в окно Putty и нажимаем ПРАВОЙ кнопкой мыши для вставки, затем нажимаем "Enter". Аналогично поступаем с паролем.
Перед копированием важно выделить только знаковые символы (без пробелов в начале и конце).
Если всё сделано правильно, вид окна будет следующим:
Теперь вводим команды. Одна строка - одна команда. После выполнения одной команды подтверждаем клавишей "Enter"
sudo apt-get install libncurses5
sudo apt-get install ia32-libs
sudo apt-get install xinetd
cd /var/opt
chmod -R 777 ./
tar -xvf FirebirdSS-2.5.9.27139-0.amd64.tar.gz
cd ./FirebirdSS-2.5.9.27139-0.amd64
sh install.sh
Зупустится установка, на экране появится надпись "Press Enter to start installation or ^C to abort". Жмём "Enter".
Теперь ждём надпись "Starting Firebird server: Please enter new password for SYSDBA user:". Копируем пароль администратора (который придумали и сохранили ранее), кликаем ПРАВОЙ кнопкой мыши по окну консоли и жмём "Enter".
Установка Firebird завершена.
Инициализация пользователей
Открываем AdminTool, при запуске указываем:
- путь к файлу базы данных на сервере /var/opt/OPSURT_DB_2020.1.FDB
- ip адрес сервера
- пароль (который указывали при уставновке Firebird)
Теперь нужно инициализировать всех пользователей. Для этого кликаем по пользователю правой кнопкой мыши и выбираем "Инициализировать" и вводим пароль пользователя. Повторяем операцию для всех остальных пользователей.
На этом работы завершены, можно открывать основное приложение и продолжать работу в программе.
Файл базы данных в облаке (не для одновременной работы!!!)
Метод не рекомендуется, так как при разовом одновременном подключении нескольких пользователей целостность данных будет нарушена!
Вариант подходит, например если вечером дома делать аналитику или просматривать документы, которые сделали в магазине или создавать дома документы прихода для магазина. Например, если магазин работает с 8.00 до 19.00, тогда дома можно работать с 19.30 до 7.30 (зависит от скорости интернета и синхронизации БД между компьютерами)
- ОЧЕНЬ ВАЖНО! при таком варианте - ОДНОВРЕМЕННАЯ РАБОТА НЕ РАЗРЕШЕНА!!!!
- Устанавливается одна из программ - Яндекс.Диск, Гугл.Диск. Dropbox и т.д. на домашнем ПК и сервере в магазине
- Настраивается папка с БД на синхронизацию между ПК.
- Магазин прекращает работу в 19.00, все пользователи выходят из программы. Необходимо или оставить ПК включенным с работающим Интернетом, или дождаться пока произойдет синхронизация БД с интернет-хранилищем
- Дома, перед началом работы (не раньше 19.00) необходимо дождаться окончания синхронизации БД на домашнем ПК с интернет-хранилищем
- Работаете в программе, просматриваете, создаете и т.д. до 7.30
- Закрываете программу и обязательно дожидаетесь синхронизации БД с интернет-хранилищем
- В магазине, перед началом работы (не раньше 7.30) необходимо дождаться окончания синхронизации БД на рабочем ПК с интернет-хранилищем, и только после этого начинать работу