Веб-сервер Apache и публикация базы 1С: от установки до проверки

· 10 мин

Содержание

Чтобы установить Apache для 1С, нужны три вещи: Apache 2.4 той же разрядности, что и платформа, компонент платформы «Модули расширения веб-сервера» и публикация базы через Администрирование → Публикация на веб-сервере в Конфигураторе. Конфигуратор сам пропишет модуль wsap24 в httpd.conf и создаст файл default.vrd. После перезапуска службы база открывается в браузере по адресу вида http://сервер/buh.

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

Windows или Linux: что подготовить до установки

Apache работает с 1С на обеих системах. Выбор обычно определяет не Apache, а то, где уже стоит сервер 1С и кто будет администрировать машину.

КритерийWindowsLinux (Debian, Ubuntu, РЕД ОС, Astra)
Откуда брать ApacheСборка Apache Lounge (zip-архив)Пакет из репозитория дистрибутива
Файл модуля 1Сwsap24.dll в папке bin платформыwsap24.so в каталоге платформы
Как публиковатьКонфигуратор или webinstУтилита webinst из каталога платформы
Главный конфигC:\Apache24\conf\httpd.conf/etc/apache2/apache2.conf или /etc/httpd/conf/httpd.conf
Учётная запись службыLocalSystem или выделеннаяwww-data или apache

Перед установкой проверьте четыре вещи:

  • 🧩 Разрядность. 64-разрядная платформа работает только с 64-разрядным Apache. 32-разрядный модуль в 64-разрядный Apache не загрузится, и наоборот.
  • 🔢 Версия Apache. Для 8.3 берите ветку 2.4 и модуль wsap24. Модуль wsap22 — для устаревшей ветки 2.2, путать их нельзя.
  • 🚪 Свободный порт. Порт 80 (и 443 для HTTPS) не должен быть занят IIS или другой программой.
  • 🔑 Лицензия. Сеансы веб-клиента и тонкого клиента через веб-сервер расходуют клиентские лицензии. Для серверной базы их выдаёт сервер 1С. Для файловой базы лицензия должна быть доступна на компьютере с Apache.

На одной машине можно держать и IIS, и Apache, но только на разных портах. Если IIS не нужен, отключите его роль, чтобы не ловить конфликт за порт 80.

Установка Apache HTTP Server на Windows и Linux

Windows: Apache Lounge как служба

Официальный проект Apache не выпускает готовые сборки под Windows. Обычно берут архив с сайта Apache Lounge — там есть 64-разрядная сборка ветки 2.4.

  1. Установите распространяемый пакет Microsoft Visual C++ той версии, под которую собран архив (указана на странице загрузки). Без него httpd.exe падает с ошибкой об отсутствии VCRUNTIME140.dll.
  2. Распакуйте папку Apache24 из архива в корень диска: C:\Apache24. Этот путь уже прописан в httpd.conf строкой Define SRVROOT "c:/Apache24". Распаковали в другое место — исправьте эту строку.
  3. Откройте командную строку от имени администратора и проверьте конфигурацию:
cd /d C:\Apache24\bin
httpd.exe -t
  1. Если ответ Syntax OK, зарегистрируйте службу и запустите её:
httpd.exe -k install
net start Apache2.4
  1. Откройте в браузере http://localhost. Страница It works! означает, что веб-сервер работает.
  2. Откройте порт в брандмауэре, если к базе будут подключаться с других компьютеров:
netsh advfirewall firewall add rule name="Apache HTTP" dir=in action=allow protocol=TCP localport=80

Ставьте Apache службой до публикации. Конфигуратор ищет установленный веб-сервер, и без службы публикация на Apache 2.4 не выполнится.

Linux: пакет из репозитория

На Debian и Ubuntu:

sudo apt update
sudo apt install apache2
sudo systemctl enable --now apache2

На дистрибутивах семейства RHEL пакет называется httpd, служба — тоже httpd. Проверка та же: страница по адресу сервера должна открыться.

Модуль расширения 1С для веб-сервера

Apache сам ничего не знает про 1С. Запросы к базе обрабатывает модуль из комплекта платформы, и его нужно поставить отдельно.

Как поставить модуль

На Windows запустите установщик платформы той же версии, что у сервера 1С или у файловой базы. В списке компонентов включите «Модули расширения веб-сервера». Если платформа уже стоит, запустите установщик ещё раз, выберите изменение состава компонентов и добавьте этот пункт.

После установки в папке C:\Program Files\1cv8\<версия>\bin появятся wsap24.dll и wsap22.dll.

На Linux модуль ставится вместе с платформой, если в установщике выбран тот же компонент. Файл лежит в каталоге платформы, например /opt/1cv8/x86_64/<версия>/wsap24.so. Там же находится утилита webinst.

Почему важно совпадение версий

Модуль общается с сервером 1С по своему протоколу. Если на сервере 8.3.25, а модуль от 8.3.22, при входе появится ошибка несовпадения версий клиента и сервера. После каждого обновления платформы проверяйте путь к модулю в конфиге Apache — он указывает на папку конкретной версии, и при удалении старой платформы Apache перестанет запускаться.

Публикация базы на Apache

Публикация делает две вещи: создаёт каталог с файлом default.vrd и добавляет в конфиг Apache блок с модулем 1С.

Через Конфигуратор (Windows)

  1. Запустите Конфигуратор от имени администратора. Без повышенных прав он не сможет записать httpd.conf.
  2. Откройте нужную базу и выберите Администрирование → Публикация на веб-сервере.
  3. Заполните форму:
    • Имя — латиницей, без пробелов, например buh. Это часть адреса: http://сервер/buh.
    • Веб-сервер — Apache 2.4.
    • Каталог — папка, где будет лежать default.vrd, например C:\Apache24\htdocs\buh.
  4. Отметьте, что публиковать: тонкий клиент и веб-клиент, веб-сервисы, HTTP-сервисы, стандартный интерфейс OData. Лишнее не включайте.
  5. Нажмите «Опубликовать» и согласитесь на перезапуск веб-сервера.

Что появится в httpd.conf

В конец файла добавится блок такого вида:

LoadModule _1cws_module "C:/Program Files/1cv8/8.3.25.1445/bin/wsap24.dll"

# 1c publication
Alias "/buh" "C:/Apache24/htdocs/buh/"
<Directory "C:/Apache24/htdocs/buh/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/Apache24/htdocs/buh/default.vrd"
</Directory>

Строка LoadModule должна встречаться в файле один раз, даже если опубликовано десять баз. Каждая база получает свой Alias и свой блок Directory.

А в каталоге публикации окажется 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="/buh"
       ib="Srvr=&quot;srv1c&quot;;Ref=&quot;buh&quot;;">
</point>

Для файловой базы в атрибуте ib будет File=&quot;D:\Bases\Buh&quot;;.

Через webinst (Linux и Windows без Конфигуратора)

Утилита webinst делает то же самое из командной строки. Пример для Ubuntu и серверной базы:

cd /opt/1cv8/x86_64/8.3.25.1445
sudo ./webinst -publish -apache24 -wsdir buh -dir /var/www/buh \
  -connstr "Srvr=srv1c;Ref=buh;" -confpath /etc/apache2/apache2.conf
sudo systemctl restart apache2

Каталог из -dir создайте заранее. Чтобы снять публикацию, запустите ту же команду с ключом -delete вместо -publish.

Опубликовали и всё работает — сохраните копию httpd.conf и default.vrd. При переустановке Apache их хватит, чтобы восстановить публикацию за пару минут.

Публикация файловой базы: на что обратить внимание

Файловую базу тоже можно опубликовать, и для небольшой команды это рабочий вариант. Но есть ограничения:

  • 📍 Каталог базы должен быть доступен с машины, где стоит Apache. Сетевой путь вида \\nas\bases\buh работает, только если у учётной записи службы есть права на эту шару — у LocalSystem их обычно нет.
  • 👥 Все пользователи веб-клиента работают через процессы Apache на одном компьютере. При десятке активных пользователей нагрузка на этот компьютер заметно вырастет.
  • 💾 Перед обновлением конфигурации файловой базы остановите Apache или снимите публикацию: открытые сеансы веб-клиента мешают получить монопольный доступ.

Как подключиться к опубликованной базе

  • 🌐 Веб-клиент — просто откройте http://сервер/buh в браузере.
  • 🖥️ Тонкий клиент — в окне запуска нажмите «Добавить», выберите добавление существующей базы, тип расположения «На веб-сервере» и укажите тот же адрес.

Права доступа и защита веб-публикации

Права учётной записи Apache

Модуль 1С работает от имени учётной записи службы Apache. От неё зависит, сможет ли он открыть базу .

  • 📁 Файловая база. Учётной записи службы нужны права на чтение и изменение каталога базы. На Windows проверьте вкладку «Безопасность» в свойствах папки, на Linux — владельца и права каталога (например, sudo chown -R www-data:www-data /srv/bases/buh).
  • 🗄️ Серверная база. К файлам базы Apache не обращается: он подключается к кластеру 1С по сети. Нужны доступность сервера 1С и открытые порты кластера с машины, где стоит Apache.
  • 📝 Каталог публикации. Учётная запись службы должна читать default.vrd.

Если служба Apache на Windows запущена от выделенной учётной записи, а не от LocalSystem, выдавайте права именно ей.

Защита публикации, которая смотрит в интернет

Публикация открывает базу любому, кто знает адрес и пароль. Минимальный набор мер:

  1. Только HTTPS. Подключите модуль mod_ssl, установите сертификат и закройте порт 80 снаружи или перенаправляйте с него на 443. Без шифрования логин и пароль пользователя 1С идут по сети открытым текстом.
  2. Пароли у всех пользователей 1С. Пользователь без пароля в опубликованной базе — открытая дверь.
  3. Публикуйте только нужное. Не нужны OData и веб-сервисы — не включайте их при публикации.
  4. Ограничьте доступ по адресам, если базой пользуются только из офиса: в блоке Directory замените Require all granted на Require ip 203.0.113.0/24 со своей подсетью.
  5. Не выносите публикацию на сервер с базой, если есть выбор: отдельная машина с Apache снижает риск для самого сервера 1С.

Изменения в httpd.conf вступают в силу после перезапуска Apache. Перезапуск обрывает текущие сеансы веб-клиента — делайте его вне рабочего времени или предупредите пользователей.

Ошибки Apache и 1С: где смотреть и что исправлять

Где лежат журналы

  • 🪟 Windows: C:\Apache24\logs\error.log и access.log.
  • 🐧 Debian и Ubuntu: /var/log/apache2/error.log.
  • 🎩 RHEL-подобные: /var/log/httpd/error_log.

Первым делом после любой правки запускайте проверку синтаксиса: httpd.exe -t на Windows или apachectl configtest на Linux. Она показывает строку, на которой конфиг сломан.

Если служба на Windows не стартует и молчит, запустите httpd.exe из командной строки без параметров — текст ошибки появится прямо в консоли.

Диагностика: выберите симптом

Если база открывается, но медленно

Проверьте, где стоит Apache относительно сервера 1С. Веб-сервер в другом городе или за медленным VPN добавляет задержку к каждому вызову сервера. Лучшая схема — Apache в той же сети, что и кластер 1С, а пользователи ходят к Apache по HTTPS.

Частые ошибки при установке

  • ❌ Скачали Apache с сайта первой попавшейся сборки. Берите проверенный источник — Apache Lounge на Windows или репозиторий дистрибутива на Linux.
  • ❌ Обновили платформу и удалили старую. Строка LoadModule продолжает указывать на удалённую папку, служба не стартует. Обновляйте путь сразу после установки новой версии.
  • ❌ Дважды опубликовали разные базы с одним именем. Второй Alias перекрывает первый, и пользователи попадают не в ту базу.
  • ❌ Публиковали Конфигуратором без прав администратора. Каталог создан, а httpd.conf не изменён. Повторите публикацию, запустив Конфигуратор от администратора.
  • ❌ Правили httpd.conf «Блокнотом» с другой кодировкой. Пути с кириллицей ломаются. Держите каталоги публикации и баз на латинице.

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

Можно ли опубликовать на одном Apache несколько баз?
Да. Каждая база получает своё имя, каталог и блок Directory, а строка LoadModule остаётся одна на весь файл.
Нужен ли Apache, чтобы работать с 1С через интернет?
Нет, есть и другие варианты: удалённый рабочий стол или прямое подключение тонкого клиента к серверу 1С через VPN. Apache нужен для веб-клиента, тонкого клиента по HTTP, веб-сервисов, HTTP-сервисов и OData.
Подойдёт ли бесплатный Apache для коммерческой работы?
Да. Apache HTTP Server распространяется под лицензией Apache 2.0, платить за него не нужно. Лицензии 1С на клиентские подключения покупаются отдельно, как и при обычной работе.
Что выбрать для 1С: Apache или IIS?
На Windows работают оба. IIS уже встроен в серверную Windows, Apache проще переносить между машинами и он единственный вариант из этих двух на Linux.
Можно ли поменять порт с 80 на другой?
Да. Измените директиву Listen в httpd.conf, перезапустите Apache и добавьте порт в адрес: http://сервер:8080/buh.