Развертывание клиент-серверного варианта 1С:Предприятия на виртуальном выделенном сервере (VPS) под управлением Linux — популярное решение для обеспечения круглосуточного доступа к данным. Однако при попытке опубликовать информационную базу стандартным способом через меню Конфигуратора на клиентском компьютере системные администраторы часто сталкиваются с ошибкой «Веб-серверы не обнаружены». Разберем архитектурные особенности платформы 1С на Linux, выясним причину этой ошибки и рассмотрим по шагам, как перенести базу данных на сервер и опубликовать ее для доступа через интернет.
Проанализируем механику работы графического интерфейса. Пункт меню «Администрирование — Публикация на веб-сервере» в Конфигураторе 1С выполняет поиск установленных веб-серверов (Apache или IIS) исключительно на том локальном компьютере, на котором запущен сам Конфигуратор. Он проверяет локальные службы и реестр операционной системы.
Если сервер 1С и веб-сервер функционируют на удаленной машине с Linux, локальный Конфигуратор не сможет обнаружить веб-сервер дистанционно. Соответственно, выполнить публикацию напрямую из оконного интерфейса клиентской Windows-машины на удаленный сервер Linux невозможно. Эту операцию необходимо выполнять непосредственно на самом сервере.
Прежде чем публиковать базу в веб-пространстве, разберем порядок переноса локальной файловой базы в кластер серверов 1С и СУБД PostgreSQL на удаленном VPS:
.dt.PostgreSQL;localhost (или IP-адрес сервера СУБД);.dt.Альтернативный вариант управления кластером без графического интерфейса — использование утилиты командной строки rac, взаимодействующей с демоном администрирования ras (запускается на сервере командой ras cluster --daemon).
Рассмотрим основной способ публикации информационной базы на веб-сервере Apache под управлением Linux. Для этого в дистрибутив сервера 1С входит консольная утилита webinst. Она находится в каталоге установки платформы (например, /opt/1cv8/x86_64/8.3.XX.XXXX/ или /opt/1C/v8.3/x86_64/).
Для публикации базы выполним в терминале сервера команду от имени суперпользователя:
/opt/1cv8/x86_64/8.3.10.2299/webinst -publish \
-apache24 \
-wsdir base_name \
-dir /var/www/base_name \
-connstr "Srvr=localhost;Ref=base_name;" \
-confpath /etc/httpd/conf/httpd.conf
Разберем параметры команды подробнее:
-publish — флаг выполнения публикации;-apache24 — версия используемого веб-сервера (для Apache 2.4);-wsdir — виртуальный каталог (алиас), по которому база будет доступна в браузере (например, http://ip-сервера/base_name);-dir — физическая папка на сервере, в которую утилита запишет файл дескриптора публикации default.vrd;-connstr — строка подключения к информационной базе в кластере 1С;-confpath — абсолютный путь к основному конфигурационному файлу Apache (в зависимости от дистрибутива Linux это может быть /etc/httpd/conf/httpd.conf или /etc/apache2/apache2.conf).Если требуется настроить публикацию вручную или отредактировать существующую конфигурацию, разберем структуру необходимых настроек:
LoadModule _1cws_module /opt/1cv8/x86_64/8.3.10.2299/wsap24.so
/var/www/base_name/) создадим файл default.vrd следующего содержания:
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/base_name"
ib="Srvr=localhost;Ref=base_name;">
<standardOdata enable="true"/>
<httpServices publishByDefault="true"/>
</point>
Alias "/base_name" "/var/www/base_name/"
<Directory "/var/www/base_name/">
AllowOverride None
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "/var/www/base_name/default.vrd"
</Directory>
systemctl restart httpd или systemctl restart apache2.Посмотрим на важные архитектурные нюансы при развертывании 1С на Linux:
apache или www-data) должен иметь права на чтение бинарных файлов 1С (включая модуль wsap24.so) и полные права на чтение и запись в каталог с файлом default.vrd.80 (HTTP) и 443 (HTTPS). Порты кластера 1С (1540, 1541, 1560–1591) открывать во внешнюю сеть не требуется, так как веб-сервер и кластер взаимодействуют локально.После успешной публикации подключиться к базе можно двумя способами:
http://<IP_или_домен_сервера>/base_name.