DataExpress Web Server
DataExpress Web Server (далее веб-сервер) позволяет работать с базой данных через браузер на любом устройстве. Веб-сервер может работать с несколькими базами данных одновременно, обрабатывая запросы множества удаленных пользователей.
В настоящее время доступны альфа-версии для Windows 32-bit и Linux 64-bit, которые можно использовать в том числе в коммерческих целях. Еще не реализовано:
- свойство объекта «заполнить таблицу» (не планируется);
- диаграммы;
Для корректной работы на устройствах требуется современный браузер на основе Chromium (Google Chrome, Yandex, Microsoft Edge и т. д.). Веб-интерфейс адаптируется под экран устройства, что обеспечивает удобную работу как на компьютере, так и на смартфоне.
Веб-сервер поддерживает два режима запуска: консольное приложение и сервис (поддерживается только Linux). В первом случае достаточно просто запустить файл dxwebsrv. Но для постоянной работы лучше запускать программу, как сервис (будет рассказано ниже).
Для более быстрой работы рекомендуется устанавливать веб-сервер на тот же компьютер (виртуальный сервер), где и база данных. В системе Windows даже необязательно устанавливать СУБД Firebird 2.5, если планируется работать исключительно с веб-сервером. В Linux установка Firebird обязательна (статья по теме - http://dataexpress.wiki/stati:bd_v_oblake).
Установка в Windows
Программа будет работать во всех версиях Windows, начиная с Windows XP. Распакуйте архив с программой в любую папку. Для запуска веб-сервера просто запустите файл dxwebsrv.exe из проводника.
Установка в Linux (Ubuntu 16.04)
Сервер тестировался только в Ubuntu Linux 16.04, но скорее всего будет работать и в других сборках. Требования в окружению минимальны (графический интерфейс не требуется), так что запустить веб-сервер можно даже на самом дешевом VDS.
Убедитесь, что на вашем сервере установлена СУБД Firebird 2.5. О том, как установить Firebird, читайте здесь.
Распакуйте содержимое архива в любую удобную папку, например: /home/user/dxwebsrv_linux64. В консоли перейдите в папку программы, например:
cd /home/user/dxwebsrv_linux64
Для корректной работы веб-сервера с демобазой, да и вообще любой базой данных, необходимо сменить владельца файла базы данных на пользователя firebird.
sudo chown firebird DEMO_DB.FDB
В правах доступа к файлу dxwebsrv должен быть разрешен запуск:
sudo chmod 744 dxwebsrv
Чтобы запустить веб-сервер как консольное приложение, введите следующее:
./dxwebsrv
Установка сервиса
В папке программы есть файл dxwebsrv.service. Это файл настроек нашего сервиса. Файл имеет следующее содержимое:
[Unit] Description=DataExpress Web Server After=network.target [Service] Type=simple ExecStart=/var/web/dxwebsrv -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.
Работа в демобазе
Откройте браузер и наберите в адресной строке: http://IP-адрес веб-сервера/demodb/
. Если вы открыли веб-браузер на том же компьютере, где установлен веб-сервер, то в адресной строке наберите: http://127.0.0.1/demodb/
. Должна появится страница ввода имени пользователя и пароля. Ничего не вводите, просто нажмите кнопку «Вход».
Чтобы подключиться к базе данных с другого компьютера, находящегося в той же локальной сети, введите в браузере IP-адрес машины с веб-сервером, например: http://192.168.0.11/demodb/
.
Настройка веб-сервера
Для настройки веб-сервера нужно отредактировать файл dxwebserv.cfg. Файл имеет формат ini-файла и состоит из секции «Server» и секций с произвольными именами, описывающих параметры подключения к базам данных. В секции Server всего 2 параметра:
- Language - язык интерфейса, может принимать значения en, ru. Возможны и другие значения, например by, ua, если есть соответствующий файл языка languages\dxwebserv.XX.po.
- Port - порт сервера. По умолчанию - 80. Если порт отличается от 80, то его всегда нужно указывать в адресной строке браузера, например
http://192.168.1.10:8080
.
В этом же файле хранятся параметры подключения к базам данных. Для каждой базы данных создается своя секция. В названии секции можно использовать только символы латинского алфавита, цифры и символ _, регистр не имеет значения. Для примера пропишем параметры подключения к базе данных MyDB:
[MyDB] Database=127.0.0.1:/home/user/bases/MyDB.FDB Templates=templates SessionTime=30 DBPwd=anypassword
В параметре Database пропишите путь к файлу базы данных, в формате IP-адрес сервера БД:полный путь к файлу базы данных
. Так как обычно веб-сервер будет устанавливаться вместе с СУБД Firebird, IP-адресом обычно будет петлевой IP-адрес компьютера 127.0.0.1, как в примере выше. Обратите внимание, что в Linux регистр имеет значение. В параметре Templates пропишите путь к папке шаблонов. Путь может быть задан относительно папки программы. Параметр SessionTime задает время простоя сессии. Если пользователь указанное время был неактивен, то ему нужно будет повторно подключаться к базе данных. Параметр DBPwd задает пароль пользователя SYSDBA. Если вы не меняли пароль SYSDBA для СУБД Firebird, то параметр можно не задавать.
В примере выше для подключения к базе данных используется порт Firebird по умолчанию 3050. Если порт отличается, то его можно задать следующим образом:
Database=127.0.0.1/3055:/home/user/bases/MyDB.FDB
Чтобы изменения в cfg-файле вступили в силу, надо перезапустить веб-сервер:
sudo systemctl restart dxwebsrv
Теперь, чтобы подключится к базе MyDB, введите в адресной строке браузера: http://192.168.0.10/mydb/
, где 192.168.0.10 - IP-адрес компьютера, с установленным веб-сервером.
Особенности работы
- Сервер всегда запрашивает логин и пароль к базе данных. Если в базе нет пользователей, просто нажмите кнопку «Вход».
- Сервер позволяет заходить пользователям под одним и тем же логином, несмотря на запрет в настройках доступа.
- Монитор пользователей можно назначить на кнопку, а можно ввести адрес вручную. Например:
192.168.0.10/demodb/?usermon
. Монитор пользователей показывает подключенных пользователей как веб, так и десктопных. - Данные формы отображаются в представлении «только таблица».
- Вывод данных формы осуществляется постранично: по 20 записей.
- Записи редактируются на отдельной странице. Вы можете редактировать одновременно несколько записей, каждая в отдельной вкладке.
- Сервер игнорирует блокировку записей от редактирования. Вы всегда можете отредактировать запись, даже если кто-то другой в этот момент ее редактирует или просматривает. При этом если пользователи редактировали разные поля, будут сохранены изменения обоих пользователей.
- Нельзя загрузить изображение/файл, если указан способ хранения «Ссылка».
- Сервер запоминает 10 последних редактируемых записей (для каждой формы).
- Возможность создавать закладки на формы, отчеты, записи (средствами браузера).
- Некоторые элементы интерфейса имеет имеют фиксированное оформление и не зависят от свойств компонентов, например шрифт и фон таблицы на странице просмотра списка записей формы (табличная часть формы) задается в файле form.css.
- В списках, как и в объектах, можно фильтровать по фрагментам текста. Содержимое списков подгружается частями, по 100 элементов.
- Старайтесь минимизировать количество записей, выводимых в запросах на формах, т. к. сервер может потреблять много оперативной памяти при формировании ответа клиенту.