Содержание
Установка DataExpress Web Server в Ubuntu 22.04
Прежде чем переходить к установке веб-сервера, убедитесь что у вас установлена СУБД Firebird. Инструкции по установке вы можете найти здесь и здесь. В качестве операционной системы будем использовать Ubuntu 22.04.
Хотя веб-сервер может быть установлен отдельно от Firebird, рекомендуется устанавливать их вместе — отзывчивость веб-сервера будет значительно выше.
Русификация системы
Сначала русифицируем систему:
# apt install language-pack-ru # dpkg-reconfigure locales
В первом окне находим и отмечаем строчку ru_RU.UTF8, во втором тоже выбираем ru_RU.UTF8. Перезагружаем систему:
# reboot
Установка веб-сервера
Установку веб-сервера будем производить в каталог /opt/dxwebsrv_linux64. Введите в терминале следующие команды:
# cd /opt # wget https://mydataexpress.ru/files/dxwebsrv_linux64.tar.gz # tar -xzf dxwebsrv_linux64.tar.gz # cd dxwebsrv_linux64
Теперь настроим автоматический запуск веб-сервера при загрузке системы. В папке веб-сервера есть файл dxwebsrv.service. Копируем его в каталог /etc/systemd/system:
# cp dxwebsrv.service /etc/systemd/system
Включаем сервис и стартуем его:
# systemctl enable dxwebsrv # systemctl start dxwebsrv
Проверить работает ли веб-сервер можно следующей командой:
# systemctl status dxwebsrv
Вывод будет примерно таким:
Если у вас чистая система, то проблем с запуском быть не должно. В случае успешного запуска статус будет active (running). А статус active (exited), например, говорит о том, что при запуске веб-сервера возникли проблемы. Все ошибки записываются в файл dxwebsrv.log. Посмотрите его, чтобы понять причину сбоя.
По умолчанию, веб-сервер использует порт 80 — HTTP. Если он будет занят каким-то процессом, то веб-сервер не запустится. Если порт занят, то нужно задать другой порт.
Базовая настройка веб-сервера
Все настройки веб-сервера находятся в конфигурационном файле dxwebsrv.cfg. Откройте файл в редакторе:
# mcedit /opt/dxwebsrv_linux64/dxwebsrv.cfg
Поменять порт можно в параметре Port. В параметре Firebird введите версию вашей СУБД Firebird. Возможные значения: 2.5 и 5. Если вы укажете неверную версию, то веб-сервер не запустится.
Теперь введите сведения о вашей базе данных. Для каждой базы данных создается своя секция. Название секции может быть любым. В названии допускается использовать латинские символы, цифры и знак подчеркивания. Например:
[DemoDB] Database=127.0.0.1:/opt/bases/DEMO_DB.DXDB
В параметре Database указывается строка подключения к базе данных. Строка подключения указывается точно так же, как и в настольной версии, в формате IP-адрес:ПолныйПутьКБазеДанных.
Обратите внимание на IP-адрес. Т. к. веб-сервер и Firebird установлены на одной системе, вводим именно указанный выше адрес. Также допустимо указывать localhost.
После изменения файла конфигурации требуется перезапустить веб-сервер:
# systemctl restart dxwebsrv
Проверка связи
Откройте браузер и введите в строке IP-адрес вашего сервера или имя домена.
Если вы видите эту страницу, то значит веб-сервер работает. Теперь подключитесь к базе данных. Для этого после IP-адреса, через слэш, введите название секции из конфигурационного файла (регистр значения не имеет).
Если порт веб-сервера отличается от 80, то обязательно укажите его после IP-адреса. Например: http://18.23.2.76:8080/demodb/
Безопасность веб-сервера
Можно ограничить права доступа для веб-сервера, чтобы случайно или преднамеренно не повредить систему. Для этого необходимо создать пользователя с ограниченными правами и запускать сервер от его имени.
Создаем нового пользователя:
# useradd dxweb # passwd dxweb
В конфигурационный файл сервиса добавляем параметр User:
[Unit] Description=DataExpress Web Server After=network.target [Service] Type=simple User=dxweb ExecStart=/opt/dxwebsrv_linux64/dxwebsrv -r RemainAfterExit=yes TimeoutSec=25 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
Убедитесь, что только у владельца есть права на запись.
# ls -l -rw-r--r-- 1 root root 11572 May 14 2024 LICENSE.txt -rw-r--r-- 1 root root 1619 May 14 2024 NOTICE.txt drwxr-xr-x 3 dxweb root 4096 Jan 8 10:38 cache -rwxr-xr-x 1 root root 8707536 Jan 8 10:37 dxwebsrv -rw-r--r-- 1 root root 201 Aug 25 2024 dxwebsrv.service -rw-r--r-- 1 root root 8317 Apr 5 2024 except.dic -rw-r--r-- 1 root root 1150 May 1 2022 favicon.ico drwxr-xr-x 2 root root 4096 Jan 6 22:21 fb5 drwxr-xr-x 2 root root 4096 Jan 6 22:21 html drwxr-xr-x 2 root root 4096 Jan 6 22:21 img drwxr-xr-x 2 root root 4096 Jan 6 22:21 languages -rw-r--r-- 1 root root 4226888 Apr 10 2024 libPadeg.so -rw-r--r-- 1 root root 862048 Jun 19 2019 libfbclient.so drwxr-xr-x 2 dxweb root 4096 Jan 6 22:25 logs -rw-r--r-- 1 root root 0 Jan 8 10:55 out.txt drwxr-xr-x 2 root root 4096 Jan 7 11:20 templates
Каталоги cache и logs должны быть доступны для записи. Сделать это можно, например, сменив владельца на dxweb:
# chown dxweb cache # chown dxweb logs
Перезапускаем сервис:
# systemctl restart dxwebsrv
Если у вас в системе нет разрешения на запись для прочих пользователей, то скрипты веб-сервера могут записывать и создавать файлы только в каталогах cache и logs.
Чтобы запретить чтение из важных каталогов, можно воспользоваться списками контроля доступа ACL. Например:
# apt-get install acl # setfacl -m u:dxweb--- /etc