Веб-сервер Apache и публикация базы 1С: от установки до проверки
Содержание
Чтобы установить Apache для 1С, нужны три вещи: Apache 2.4 той же разрядности, что и платформа, компонент платформы «Модули расширения веб-сервера» и публикация базы через Администрирование → Публикация на веб-сервере в Конфигураторе. Конфигуратор сам пропишет модуль wsap24 в httpd.conf и создаст файл default.vrd. После перезапуска службы база открывается в браузере по адресу вида http://сервер/buh.
Процедура одинакова для серверной и файловой базы. Разница только в строке подключения и в правах: файловой базе нужен доступ учётной записи Apache к папке с данными, серверной — сетевой доступ к кластеру 1С.
Windows или Linux: что подготовить до установки
Apache работает с 1С на обеих системах. Выбор обычно определяет не Apache, а то, где уже стоит сервер 1С и кто будет администрировать машину.
| Критерий | Windows | Linux (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.
- Установите распространяемый пакет Microsoft Visual C++ той версии, под которую собран архив (указана на странице загрузки). Без него
httpd.exeпадает с ошибкой об отсутствииVCRUNTIME140.dll. - Распакуйте папку
Apache24из архива в корень диска:C:\Apache24. Этот путь уже прописан вhttpd.confстрокойDefine SRVROOT "c:/Apache24". Распаковали в другое место — исправьте эту строку. - Откройте командную строку от имени администратора и проверьте конфигурацию:
cd /d C:\Apache24\bin
httpd.exe -t
- Если ответ
Syntax OK, зарегистрируйте службу и запустите её:
httpd.exe -k install
net start Apache2.4
- Откройте в браузере
http://localhost. СтраницаIt works!означает, что веб-сервер работает. - Откройте порт в брандмауэре, если к базе будут подключаться с других компьютеров:
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)
- Запустите Конфигуратор от имени администратора. Без повышенных прав он не сможет записать
httpd.conf. - Откройте нужную базу и выберите
Администрирование → Публикация на веб-сервере. - Заполните форму:
- Имя — латиницей, без пробелов, например
buh. Это часть адреса:http://сервер/buh. - Веб-сервер — Apache 2.4.
- Каталог — папка, где будет лежать
default.vrd, напримерC:\Apache24\htdocs\buh.
- Имя — латиницей, без пробелов, например
- Отметьте, что публиковать: тонкий клиент и веб-клиент, веб-сервисы, HTTP-сервисы, стандартный интерфейс OData. Лишнее не включайте.
- Нажмите «Опубликовать» и согласитесь на перезапуск веб-сервера.
Что появится в 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="srv1c";Ref="buh";">
</point>
Для файловой базы в атрибуте ib будет File="D:\Bases\Buh";.
Через 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, выдавайте права именно ей.
Защита публикации, которая смотрит в интернет
Публикация открывает базу любому, кто знает адрес и пароль. Минимальный набор мер:
- Только HTTPS. Подключите модуль
mod_ssl, установите сертификат и закройте порт 80 снаружи или перенаправляйте с него на 443. Без шифрования логин и пароль пользователя 1С идут по сети открытым текстом. - Пароли у всех пользователей 1С. Пользователь без пароля в опубликованной базе — открытая дверь.
- Публикуйте только нужное. Не нужны OData и веб-сервисы — не включайте их при публикации.
- Ограничьте доступ по адресам, если базой пользуются только из офиса: в блоке
DirectoryзаменитеRequire all grantedнаRequire ip 203.0.113.0/24со своей подсетью. - Не выносите публикацию на сервер с базой, если есть выбор: отдельная машина с 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 «Блокнотом» с другой кодировкой. Пути с кириллицей ломаются. Держите каталоги публикации и баз на латинице.