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
Особенности работы
- Сервер всегда запрашивает логин и пароль к базе данных. Если в базе нет пользователей, просто нажмите кнопку «Вход».
- Данные формы отображаются только в табличном представлении.
- Вывод данных формы осуществляется постранично: по 20 записей.
- Записи редактируются на отдельной странице.
- Нельзя загрузить изображение/файл, если указан способ хранения «Ссылка».
- Сервер запоминает 10 последних редактируемых записей (для каждой формы).
- Возможность создавать закладки на формы, отчеты, записи (средствами браузера).
- Фиксированное оформление табличных частей форм и таблиц, в формах фон и шрифт компонентов берется из базы.
- В списках, как и в объектах, можно фильтровать по фрагментам текста. Содержимое списков подгружается частями, по 100 элементов.