DataExpress Web Server

DataExpress Web Server (далее веб-сервер) позволяет работать с базой данных через браузер на любом устройстве. Веб-сервер может работать с несколькими базами данных одновременно, обрабатывая запросы множества удаленных пользователей.

В настоящее время доступны альфа-версии для Windows 32-bit и Linux 64-bit, которые можно использовать в том числе в коммерческих целях. Еще не реализовано:

  • свойство объекта «заполнить таблицу»;
  • диаграммы;
  • кнопки;
  • блокировка редактируемых записей;
  • веб-пользователей не видно в мониторе пользователей;
  • скрипты;
  • расширения.

На самом деле, недоработок больше. Они будут постепенно устраняться.

Для корректной работы на устройствах требуется современный браузер на основе Chromium (Google Chrome, Yandex, Microsoft Edge и т. д.). Веб-интерфейс адаптируется под экран устройства, что обеспечивает удобную работу как на компьютере, так и на смартфоне.

Веб-сервер поддерживает два режима запуска: как консольное приложение и как сервис. В первом случае достаточно просто запустить файл dxwebsrv. Для постоянной работы лучше запускать программу как сервис (будет рассказано далее).

Для более быстрой работы рекомендуется устанавливать веб-сервер на тот же компьютер (виртуальный сервер), где и база данных. В системе Windows даже необязательно устанавливать СУБД Firebird 2.5, если планируется работать исключительно с веб-сервером. В Linux установка Firebird обязательна (статья по теме - http://dataexpress.wiki/stati:bd_v_oblake).

Установка в Windows

Программа будет работать во всех версиях Windows, начиная с Windows XP. Достаточно просто распаковать архив с программой в любую папку. Для запуска в режиме консольного приложения просто запустите файл dxwebsrv.exe. Откройте браузер и наберите в адресной строке: http://127.0.0.1/demodb/ Должна появится страница ввода имени пользователя и пароля. Ничего не вводите, просто нажмите кнопку «Вход».

Для постоянной работы рекомендуется запускать веб-сервер как сервис. Для этого запустите командную строку от имени администратора, перейдите в папку программы и запустите install.bat. Например:

d:
cd d:\dxwebsrv_win32\
install.bat

Для удаления сервиса в командной строке от имени администратора запустите uninstall.bat.

Установка в Linux (Ubuntu 16.04)

Сервер тестировался только в Ubuntu Linux 16.04, но скорее всего будет работать и в других сборках. Требования в окружению минимальны (графический интерфейс не требуется), так что запустить веб-сервер можно и в облаке.

Убедитесь, что на вашем сервере установлена СУБД Firebird 2.5. О том, как это сделать, можно узнать здесь.

Распакуйте содержимое архива в любую удобную папку. Для корректной работы веб-сервера с демо-базой, да и вообще любой базой данных, необходимо сменить владельца файла базы данных на пользователя firebird.

sudo chown firebird DEMO_DB.FDB

В правах доступа к файлу dxwebsrv должен быть разрешен запуск:

chmod 744 dxwebsrv

Чтобы запустить веб-сервер как консольное приложение, введите следующее:

./dxwebsrv

Установка сервиса

В папке программы есть файл dxwebsrv.service. Это файл настроек нашего сервиса. Файл имеет следующее содержимое:

[Unit]
Description=DataExpress Web Server
After=network.target

[Service]
Type=simple
ExecStart=/var/web/dxwebapp -r
RemainAfterExit=yes
TimeoutSec=25

[Install]
WantedBy=multi-user.target

В параметре ExecStart заменить путь к исполняемому файлу программы на реальный. Затем скопируйте файл в системную папку:

sudo cp dxwebsrv.service /etc/systemd/system

После этого можно запускать сервис:

sudo systemctl enable dxwebsrv
sudo systemctl start dxwebsrv

Если веб-сервер был установлен на виртуальном сервере (VDS), то для проверки работы в адресной строке вашего браузера введите IP-адрес виртуального сервера. Например: http://80.60.12.8/demodb/

Проблемы с локалью

В Ubuntu 16.04 для корректной работы сервера требуется русификация системы. Для этого выполняем следующие команды (требуются права админа):

sudo apt install language-pack-ru
sudo dpkg-reconfigure locales

Вторая команда запустит диалог настройки локали. Выбираем в списке ru_RU.UTF-8 UTF-8. Более подробно о русификации можно узнать, перейдя по следующей ссылке: https://obu4alka.ru/rusificziruem-ubuntu-server-16-04-lts.html.

Настройка веб-сервера

Для настройки веб-сервера нужно отредактировать файл dxwebserv.cfg. Файл имеет формат ini-файла. В секции Server всего 2 параметра:

  • Language - язык интерфейса, может принимать значения en, ru. Возможны и другие значения, например by, ua, если есть соответствующий файл языка languages\dxwebserv.XX.po.
  • Port - порт сервера. По умолчанию - 80. Если порт отличается от 80, то его всегда нужно указывать в адресной строке браузера, например 192.168.1.10:8080.

В этом же файле хранятся параметры подключения к базам данных. Для каждой базы данных создается своя секция. В названии секции можно использовать только символы латинского алфавита, цифры и символ _, регистр не имеет значения. Для примера пропишем параметры подключения к базе данных DEMODB:

[DemoDB]
Database=127.0.0.1:/home/user/bases/DEMO_DB.FDB
Templates=templates
SessionTime=30
DBPwd=anypassword

В параметре Database пропишите путь к файлу базы данных. Обратите внимание, что в Linux регистр имеет значение. В параметре Templates пропишите путь к папке шаблонов. Путь может быть задан относительно папки программы. Параметр SessionTime задает время простоя сессии. Если пользователь указанное время был неактивен, то ему нужно будет повторно подключаться к базе данных. Параметр DBPwd задает пароль пользователя SYSDBA. Если вы не меняли пароль SYSDBA для СУБД Firebird, то параметр можно не задавать.

В примере выше для подключения к базе данных используется порт Firebird по умолчанию 3050. Если порт отличается, то его можно задать следующим образом:

Database=127.0.0.1/3055:/home/user/bases/DEMO_DB.FDB

Чтобы изменения в cfg-файле вступили в силу, надо перезапустить веб-сервер:

sudo systemctrl restart dxwebsrv

Особенности работы

  1. Сервер всегда запрашивает логин и пароль к базе данных. Если в базе нет пользователей, просто нажмите кнопку «Вход».
  2. Данные формы отображаются только в табличном представлении.
  3. Вывод данных формы осуществляется постранично: по 20 записей.
  4. Записи редактируются на отдельной странице.
  5. Нельзя загрузить изображение/файл, если указан способ хранения «Ссылка».
  6. Сервер запоминает 10 последних редактируемых записей (для каждой формы).
  7. Возможность создавать закладки на формы, отчеты, записи (средствами браузера).
  8. Фиксированное оформление табличных частей форм и таблиц, в формах фон и шрифт компонентов берется из базы.
  9. В списках, как и в объектах, можно фильтровать по фрагментам текста. Содержимое списков подгружается частями, по 100 элементов.