Рабочее место 1С на Linux через WSL. Часть 3 - Публикация баз данных 1С на веб-сервере (Apache) в WSL
В предыдущих лабораторных работах мы развернули СУБД PostgreSQL, сервер «1С:Предприятие 8» и настроили их автоматический запуск. Однако современная разработка редко ограничивается работой внутри локальной сети или десктопным клиентом. Для полноценной отладки HTTP- и SOAP-сервисов, интеграции со сторонними веб-приложениями, работы через веб-клиент и тестирования мобильных приложений необходим веб-сервер. В этой работе мы разберем установку популярного веб-сервера Apache HTTP Server (Apache2) внутри подсистемы WSL, настроим связку с веб-модулями 1С, решим проблему конфликтов портов и опубликуем нашу демонстрационную базу данных DemoDB.
Теоретическая часть
Зачем разработчику веб-сервер в WSL? Локальный веб-сервер позволяет превратить ваше рабочее место программиста в полноценную веб-платформу. Это открывает следующие возможности:
- Веб-клиент: запуск и тестирование работы базы данных непосредственно в окне браузера (Chrome, Firefox, Edge) без необходимости установки тонкого клиента на клиентские ПК.
- Отладка интеграций: отладка HTTP-сервисов и Web-сервисов (SOAP), которые ваша конфигурация предоставляет внешним системам.
- Мобильная разработка: публикация мобильной конфигурации или мобильного приложения для подключения мобильного клиента с физического смартфона или эмулятора. Архитектура взаимодействия компонентов При обращении пользователя к опубликованной базе данных задействуется следующая технологическая цепочка:
- Браузер или HTTP-клиент отправляет запрос на порт веб-сервера (например, http://192.168.1.10:8080/demo).
- Веб-сервер Apache2 принимает запрос и, руководствуясь директивами конфигурации, передает управление проприетарному модулю расширения веб-сервера от компании 1С - файлу библиотеки <b>wsap24.so</b> (входит в пакет 1c-enterprise83-ws).
- Модуль wsap24.so считывает файл параметров публикации <b>default.vrd</b> (XML-формат), который содержит настройки подключения к базе.
- Модуль транслирует запрос к кластеру серверов 1С:Предприятия (процессу rmngr/rphost), который выполняет бизнес-логику на сервере и возвращает результат обратно веб-серверу для отправки клиенту. Решение проблемы конфликтов портов в WSL По умолчанию веб-сервер Apache слушает стандартный порт 80. Однако в Windows-хосте порт 80 часто уже занят локальным сервером IIS, другим экземпляром Apache (например, из состава XAMPP), веб-сервером СУБД или сторонним софтом. Поскольку WSL и хост-система Windows делят единый сетевой стек на низком уровне, одновременный запуск веб-серверов на одном и том же порту в Windows и WSL приведет к конфликту адресов. Чтобы избежать этого, мы настроим Apache в WSL на использование альтернативного незанятого порта - 8080.
Пошаговая инструкция
Шаг 1. Установка веб-сервера Apache2
- Откройте терминал Ubuntu в ConEmu.
- Обновите индекс пакетов и установите веб-сервер Apache2 стандартной командой:
sudo apt update
sudo apt install -y apache2
- Проверьте статус службы:
service apache2 status
Если служба запущена, остановите её на время конфигурирования: sudo service apache2 stop.
Шаг 2. Перевод Apache на альтернативный порт (8080)
Для предотвращения конфликтов со службами Windows переведём веб-сервер на порт 8080.
- Откройте конфигурационный файл портов Apache в текстовом редакторе nano:
sudo nano /etc/apache2/ports.conf
- Найдите строку Listen 80 и замените её на Listen 8080: # Было: Listen 80 Listen 8080 Сохраните изменения [Ctrl + O, Enter] и выйдите из редактора [Ctrl + X].
- Теперь отредактируйте конфигурацию виртуального хоста по умолчанию:
sudo nano /etc/apache2/sites-enabled/000-default.conf
- Измените порт в первой строке файла: # Было: <VirtualHost *:80> <VirtualHost *:8080> Сохраните файл и закройте редактор.
Шаг 3. Подготовка веб-модуля 1С и проверка путей
Для публикации баз нам потребуется утилита <b>webinst</b> и библиотека <b>wsap24.so</b>. Они поставляются в составе пакета 1c-enterprise83-ws...deb, который мы установили в работе №1.
- Убедитесь, что пакет публикации веб-сервисов 1С установлен в вашей системе:
apt list --installed | grep 1c-enterprise83-ws
- Определите точный путь к вашей установленной платформе. Для версии 8.3.16.1148 файлы находятся в каталоге: /opt/1cv8/x86_64/8.3.16.1148/ Примечание: в более новых версиях платформы путь может выглядеть как /opt/1C/v8.3/x86_64/.
Шаг 4. Публикация базы данных через утилиту webinst
Утилита webinst выполняет автоматическую пропись модулей 1С в конфигурационный файл Apache и формирует структуру каталога публикации.
- Создайте каталог, в котором будут лежать файлы публикации нашей базы DemoDB:
sudo mkdir -p /var/www/demo
- Запустите утилиту публикации со следующими параметрами:
sudo /opt/1cv8/x86_64/8.3.16.1148/webinst \
-apache24 \
-wsdir demo \
-dir /var/www/demo \
-conn "Srvr=PEN-PC;Ref=DemoDB;" \
-confPath /etc/apache2/apache2.conf
Разбор ключевых параметров запуска webinst:
- -apache24 - указывает, что мы публикуемся на веб-сервере Apache версии 2.4.
- -wsdir demo - имя виртуального каталога, по которому база будет доступна в URL (например, http://localhost:8080/demo).
- -dir /var/www/demo - физический каталог на диске Linux, куда запишется файл параметров публикации default.vrd.
- -conn "Srvr=PEN-PC;Ref=DemoDB;" - строка подключения к кластеру серверов 1С (замените PEN-PC на имя вашего хоста, а DemoDB на имя вашей базы).
- -confPath /etc/apache2/apache2.conf - путь к основному конфигурационному файлу Apache, куда утилита допишет загрузку модуля wsap24.so.
Шаг 5. Настройка прав доступа (Права www-data)
Типичная ошибка при публикации - запуск Apache от системного пользователя www-data, который по умолчанию не имеет прав на чтение и запись файлов в созданном каталоге /var/www/demo.
- Передайте права владения на каталог публикации системной учетной записи, под которой работает веб-сервер Apache:
sudo chown -R www-data:www-data /var/www/demo
- Убедитесь, что файл конфигурации default.vrd доступен для чтения:
ls -la /var/www/demo
Шаг 6. Перезапуск веб-сервера и проверка работы
- Запустите или перезапустите веб-сервер Apache2:
sudo service apache2 restart
- Перейдите в хост-систему Windows, откройте любой современный веб-браузер и введите в адресной строке: http://localhost:8080/demo
- На экране должно появиться стандартное окно авторизации и запуска веб-клиента «1С:Предприятие» для нашей демонстрационной базы.
Практическое задание
Цель работы: Развернуть веб-сервер Apache в изолированном WSL-окружении, опубликовать демонстрационную базу данных и настроить сетевую маршрутизацию для обеспечения доступа к базе с мобильных устройств. Задание:
- ☐ Выполните установку Apache2 и смените стандартный порт на 8080 для предотвращения конфликтов сетевых сокетов с IIS/Windows-службами.
- ☐ Создайте каталог /var/www/demo_lab и опубликуйте в нём демонстрационную базу данных DemoDB под псевдонимом (wsdir) demo_lab.
- ☐ Предоставьте корректные права доступа пользователю www-data на каталог публикации.
- ☐ Найдите статический IP-адрес вашего компьютера в локальной сети (например, через команду ipconfig в Windows или ifconfig в WSL).
- ☐ С мобильного телефона или планшета, подключенного к той же локальной Wi-Fi сети, введите в адресной строке мобильного браузера: http://<Ваш_IP_адрес>:8080/demo_lab.
- ☐ Проверка результата: Сделайте скриншот экрана мобильного устройства с успешно загрузившимся интерфейсом веб-клиента 1С.
Проверьте себя
- Зачем при настройке Apache в WSL изменять стандартный порт 80 на порт 8080? Ответ: WSL и Windows делят единый сетевой стек. Если на хосте Windows запущен другой веб-сервер (например, IIS или XAMPP) на 80 порту, запуск Apache в WSL на том же порту вызовет критический конфликт сокетов "Address already in use". Порт 8080 решает эту проблему.
- Какая системная учетная запись в ОС Ubuntu по умолчанию используется для запуска процессов веб-сервера Apache2, и почему это важно при публикации баз 1С? Ответ: Apache2 запускается под системным пользователем www-data. Если этот пользователь не будет назначен владельцем каталога публикации (например, /var/www/demo), веб-сервер выдаст ошибку HTTP 500 или 403, так как не сможет прочитать файл конфигурации default.vrd или сделать в него запись.
- За что отвечает файл конфигурации default.vrd и какой формат разметки он использует? Ответ: Файл default.vrd представляет собой XML-документ, который описывает параметры подключения веб-клиента к конкретной базе данных на кластере 1С (имя сервера, имя базы, таймауты, включенные HTTP/SOAP-сервисы и др.).
- Какой пакет технологической платформы 1С:Предприятие обязательно должен быть установлен в Linux для обеспечения возможности веб-публикации? Ответ: Должен быть установлен специализированный пакет 1c-enterprise83-ws (расширение веб-сервера), содержащий библиотеку-адаптер wsap24.so.
- Какое действие выполняет утилита webinst при указании флага -confPath? Ответ: Утилита находит основной файл конфигурации веб-сервера Apache (по указанному пути, например /etc/apache2/apache2.conf) и автоматически прописывает в него директиву загрузки модуля расширения 1С (LoadModule _1cws_module ... wsap24.so), чтобы Apache знал, как обрабатывать запросы к 1С.
Попробовать НОПик →
Проверить свой уровень бесплатно →