К статье
Практический материал

Администрирование · 11 мин

Как опубликовать базу 1С на веб-сервере Apache в Linux

Пошаговая публикация базы 1С на Apache в Linux: установка модулей, настройка wsap24, default.vrd, права доступа, проверка работы и типичные ошибки.

Публикация информационной базы 1С на веб-сервере Apache под Linux позволяет пользователям работать с программой через браузер или тонкий клиент по протоколу HTTP, без установки платформы на каждом рабочем месте. Это стандартный способ организации удалённого доступа к файловым и клиент-серверным базам, и он полностью поддерживается вендором.

Процедура сводится к четырём этапам: установке Apache и модулей 1С, созданию файла публикации default.vrd, настройке прав доступа и проверке работы через браузер. Основные сложности связаны не с самой публикацией, а с правами на каталоги, разрядностью модулей и совместимостью версий платформы.

Ниже разобрана вся цепочка действий на примере распространённых дистрибутивов (Debian/Ubuntu и CentOS-совместимых), с командами, проверками результата и разбором типичных ошибок, из-за которых публикация не открывается.

Что потребуется перед началом работы

Для публикации понадобятся: сервер с Linux и правами root (или sudo), установленная платформа 1С:Предприятие с компонентом «Модули расширения веб-сервера», веб-сервер Apache 2.4 и доступ к самой информационной базе — файловой (каталог с файлом 1Cv8.1CD) или клиент-серверной (кластер 1С и СУБД).

Критично совпадение двух параметров. Во-первых, разрядность: модуль расширения веб-сервера 1С и Apache должны быть одинаковой архитектуры — обычно оба 64-битные. Во-вторых, версия модуля wsap24 должна соответствовать установленной версии платформы: модуль от 8.3.22 не всегда корректно работает с базой на другой версии, поэтому лучше использовать модуль из того же дистрибутива платформы.

Разрядность ApacheОпределяет нужную версию модуля 1С

Команда apachectl -V или httpd -V покажет архитектуру сборки

Тип базыФайловая или клиент-серверная

Файловая требует доступа к каталогу с 1Cv8.1CD, клиент-серверная — к кластеру 1С

Версия платформыДолжна совпадать с модулем wsap24

Смотрите каталог /opt/1cv8/x86_64/ — там перечислены установленные версии

Установка Apache и веб-компонентов 1С

В Debian/Ubuntu Apache ставится из репозитория одной командой. После установки проверьте, что служба запущена и отвечает на запросы.

bash
sudo apt update && sudo apt install apache2 -y
sudo systemctl enable --now apache2
curl -I http://localhost

В CentOS-совместимых системах пакет называется httpd, а служба запускается так же через systemctl. Убедитесь, что брандмауэр пропускает порт 80 (и 443, если планируется HTTPS): в firewalld это делается командами firewall-cmd --add-service=http --permanent и последующей перезагрузкой правил.

Модули расширения веб-сервера входят в дистрибутив платформы 1С для Linux. При установке платформы из deb- или rpm-пакетов нужно отметить компонент «Модули расширения веб-сервера» (ws). Если платформа уже установлена без этого компонента, доустановите соответствующий пакет из того же дистрибутива. После установки модуль обычно находится по пути /opt/1cv8/x86_64/<версия>/wsap24.so.

Подключение модуля wsap24 к Apache

Модуль подключается директивой LoadModule в конфигурации Apache. В Debian/Ubuntu удобно создать отдельный файл /etc/apache2/conf-available/1c.conf и активировать его командой a2enconf, в CentOS — файл в каталоге /etc/httpd/conf.d/.

bash
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.22.1750/wsap24.so"

Путь к модулю подставьте свой — с точным номером версии платформы. Проверить наличие файла можно командой ls /opt/1cv8/x86_64/. После правки конфигурации обязательно проверьте её синтаксис командой apachectl configtest: ответ «Syntax OK» означает, что Apache готов к перезапуску. Если модуль указан с ошибкой в пути, Apache просто не стартует, и причина будет видна в журнале /var/log/apache2/error.log.

Перезапустите веб-сервер: systemctl restart apache2 (или httpd). Убедиться, что модуль загружен, можно командой apachectl -M — в списке должен присутствовать _1cws_module.

Создание файла публикации default.vrd

Файл default.vrd описывает параметры публикации: имя, путь к базе и наборы сервисов. Создайте каталог для публикации, например /var/www/1c/demo, и разместите в нём файл default.vrd следующего содержания для файловой базы:

xml
<?xml version="1.0" encoding="UTF-8"?>
<point name="demo" xmlns="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <base ib="File=&quot;/srv/1c/bases/demo&quot;;"/>
  <ws pointEnableCommon="false"/>
</point>

Для клиент-серверной базы строка подключения другая: ib="Srvr="server1c";Ref="demo";", где Srvr — адрес сервера 1С, Ref — имя базы в кластере. Имя в атрибуте point name станет частью URL: база откроется по адресу http://сервер/demo.

Проще и надёжнее не писать файл вручную, а воспользоваться утилитой webinst из состава платформы. Она создаёт default.vrd и сразу прописывает публикацию в конфигурацию Apache:

bash
/opt/1cv8/x86_64/8.3.22.1750/webinst -publish -apache24 -wsdir demo -dir /var/www/1c/demo -connstr "File=/srv/1c/bases/demo;" -confPath /etc/apache2/apache2.conf

После работы webinst проверьте, что в конфигурации Apache появился блок с директивой ManagedApplicationDescriptor, указывающей на ваш default.vrd, и снова перезапустите службу.

Права доступа — самая частая причина сбоев

Процесс Apache работает от имени служебного пользователя (www-data в Debian/Ubuntu, apache в CentOS). Этому пользователю нужны права на чтение каталога публикации и default.vrd, а также на чтение и запись в каталог файловой базы — ведь именно процесс веб-сервера будет изменять данные.

bash
sudo chown -R www-data:www-data /srv/1c/bases/demo
sudo chmod -R 750 /srv/1c/bases/demo
sudo chmod 644 /var/www/1c/demo/default.vrd

Дополнительно пользователю веб-сервера нужен доступ к каталогу временных файлов платформы и к каталогу с лицензиями 1С (обычно /var/1C/licenses или ~/.1cv8). Если после публикации появляется ошибка «не обнаружено лицензий», проверьте, что файл лицензии читается пользователем www-data.

Проверка публикации и диагностика ошибок

Откройте в браузере адрес http://сервер/demo. Признак успеха — стартовая страница веб-клиента 1С с окном авторизации. Если вместо неё отображается ошибка, смотрите журнал /var/log/apache2/error.log и технологический журнал платформы.

Контрольные точки

Как проверить результат

Открытие URL публикации
Норма

Страница входа веб-клиента 1С

Тревожный признак

Ошибка 404 — Apache не видит публикацию, 500 — проблема модуля или прав

Загрузка модуля
Норма

_1cws_module есть в выводе apachectl -M

Тревожный признак

Модуля нет — ошибка в LoadModule или неверный путь к wsap24.so

Работа тонкого клиента
Норма

Клиент подключается по тому же URL и открывает базу

Тревожный признак

Ошибка соединения — проверьте строку подключения в default.vrd

Ошибка 404 означает, что Apache не сопоставил URL с публикацией: проверьте, что блок с ManagedApplicationDescriptor действительно загружен (не закомментирован, файл включён через a2enconf или Include). Ошибка 500 чаще всего указывает на несовпадение разрядности модуля и Apache, отсутствие прав на каталог базы или битый default.vrd — проверьте его XML-синтаксис.

Типичные ошибки
01
Модуль wsap24 от другой версии платформы — публикация падает с ошибкой 500 или веб-клиент ведёт себя нестабильно
02
Неверный путь к базе в строке подключения — 1С создаёт пустую базу в несуществующем каталоге или сообщает о недоступности
03
Публикация без HTTPS при доступе через интернет — пароли и данные передаются открытым текстом
04
Забытый перезапуск Apache после правки конфигурации — изменения не применяются, и администратор ищет несуществующую проблему

Ограничения и альтернативные варианты

Публикация на Apache под Linux — рабочее решение для небольших и средних нагрузок, но у него есть ограничения. Файловая база при работе через веб-сервер всё равно остаётся файловой: при росте числа одновременных пользователей (ориентировочно более 10–15 активных сеансов) стоит переходить на клиент-серверный вариант. Также учитывайте, что тонкий и веб-клиент требуют, чтобы конфигурация работала в режиме управляемого приложения — обычное приложение через веб не публикуется.

Сравнение вариантов доступа

Apache + wsap24 (эта статья)

Универсальный способ: веб-клиент, тонкий клиент, веб-сервисы. Требует ручной настройки прав и конфигурации

Публикация через IIS на Windows

Подходит, если инфраструктура уже на Windows; на Linux-сервере не применимо

Сервер 1С + прямое подключение тонкого клиента

Быстрее в настройке, но требует открытия портов кластера и установки клиента у пользователя

1С:Фреш / облачный арендатор

Когда нет своего сервера и не хочется администрировать инфраструктуру; ограничения по доработкам конфигурации

Для доступа из интернета обязательно настройте HTTPS (например, с бесплатным сертификатом Let's Encrypt через certbot) и ограничьте доступ к публикации средствами Apache — как минимум надёжной аутентификацией. Открытая по HTTP публикация с доступом извне — прямой риск утечки учётных данных и данных базы.

Держите под рукой команду полной диагностики: tail -f /var/log/apache2/error.log в одном терминале и повторение запроса в браузере в другом. Почти все ошибки публикации — права, пути, разрядность — видны в журнале сразу, без технологического журнала 1С.
ПЗ
Практическое замечание

Частые вопросы

Можно ли опубликовать несколько баз на одном Apache?

Да. Для каждой базы создаётся отдельный каталог публикации со своим default.vrd и отдельный блок в конфигурации Apache со своим URL (/base1, /base2 и т.д.). Один модуль wsap24 обслуживает все публикации, главное — не забывать перезапускать Apache после добавления каждой.

Нужна ли отдельная лицензия 1С для веб-сервера?

Отдельной лицензии на публикацию не требуется, но каждому сеансу пользователя нужна клиентская лицензия, как и при обычной работе. Веб-сервер должен иметь доступ к файлу программной лицензии или к серверу 1С, раздающему лицензии.

Почему веб-клиент открывается, но работает очень медленно?

Частые причины: файловая база на медленном диске или сетевом ресурсе, недостаток оперативной памяти на сервере, включённый отладочный режим. Также проверьте, что база лежит на локальном диске сервера, а не на NFS/SMB-шаре — сетевые файловые системы заметно замедляют файловый режим.

Как опубликовать веб-сервисы 1С вместе с базой?

В default.vrd в секции ws нужно включить публикацию сервисов (pointEnableCommon и атрибут enable). После этого веб-сервисы, описанные в конфигурации, становятся доступны по адресу вида http://сервер/имя_публикации/ws/ИмяСервиса. Не забудьте про аутентификацию: анонимный доступ к сервисам открывать небезопасно.

Что делать, если после обновления платформы публикация перестала работать?

Обновите путь к wsap24.so в конфигурации Apache — он содержит номер версии и после обновления указывает на несуществующий файл. Проще всего заново выполнить webinst для каждой публикации, затем проверить конфигурацию через apachectl configtest и перезапустить службу.

Итог

Что важно запомнить

Публикация базы 1С на Apache в Linux состоит из четырёх шагов: установка Apache и модуля wsap24 той же версии и разрядности, подключение модуля в конфигурации, создание default.vrd (лучше через webinst) и настройка прав для пользователя веб-сервера. Проверяйте результат через браузер и журнал error.log, не ослабляйте права до 777, а для доступа из интернета обязательно включайте HTTPS.