Обычно во всех инструкциях по установке сервера 1С на платформе Linux вместе с ним устанавливают и веб-сервер Apache, что не совсем правильно с точки зрения безопасности и удобства администрирования. С учетом того, что веб-сервер обычно используется для работы с внешними пользователями, то крайне желательно использовать на нем актуальные версии ПО с последними обновлениями безопасности. Это не всегда возможно, если веб-сервер установлен на одном узле с сервером 1С, так как обновление критически важного для предприятия сервера — это весьма непростая задача.
С выносом веб-сервера на отдельную машину многие задачи автоматически снимаются, мы всегда можем использовать самые последние и актуальные версии ПО, а в случае компрометации сервера злоумышленник не получит доступ к серверу 1С, тем более что отдельно стоящий веб-сервер всегда можно вынести в отдельную подсеть или демилитаризованную зону. Кроме того, появляются новые возможности.
Например, веб-сервер можно использовать как единую точку консолидации для нескольких серверов, единственное условие — одинаковые версии технологической платформы. Это удобно, не нужно запоминать какая база расположена на каком сервере, кроме того, пробросить один сервер на внешний интерфейс или в VPN-сеть легче, чем группу серверов, для которых придется использовать нестандартные порты, что в ряде случаев может составить проблему.
Возможна также и иная схема, когда несколько веб-серверов работают с одним сервером 1С. Это оправдано, когда следует разделить набор доступных баз и обеспечить разный уровень безопасности, высокий для внешних пользователей и стандартный для внутренних, либо обеспечить балансировку нагрузки.

Настройка сервера
В первую очередь установим веб-сервер Apache, так как 1С:Предприятие, начиная с версии платформы 8.3.8 поддерживает актуальную версию Apache 2.4, то вся установка сводится к единственной команде:
apt install apache2
Компания 1С рекомендует использовать модуль мультипроцессной обработки worker, поэтому следует выяснить с каким модулем работает ваш сервер, для этого выполним:
apachectl -V | grep -i mpm
Если это prefork или event, то их следует отключить:
a2dismod mpm_prefork
или
a2dismod mpm_event
После чего включим worker и перезапустим веб-сервер:
a2enmod mpm_worker
systemctl restart apache2
Установка модуля расширения веб-сервера для платформы 8.3.19 и ниже
cd ~/1C
dpkg -i 1c*.deb
systemctl disable srv1cv83
Установка модуля расширения веб-сервера для платформы 8.3.20 и выше
echo "deb http://ftp.ru.debian.org/debian buster main" > /etc/apt/sources.list.d/buster.list
apt updatecd ~
tar -xzf server64_8_3_20_1710.tar.gz./setup-full-8.3.20.1710-x86_64.run --mode unattended --enable-components ws
Рекомендуется использовать тонкий клиент везде, где это возможно. Для подключения следует использовать строку http://SRV-WEB-1C/InfoBase или http://192.168.16.136/InfoBase, для подключения можно использовать FQDN, плоское имя или IP-адрес.
Публикация клиент-серверных баз
192.168.16.130 SRV-1C
mkdir /var/www/infobase
cd /opt/1C/v8.3/x86_64cd /opt/1cv8/x86_64/8.3.20.1710
./webinst -publish -apache24 -wsdir InfoBase -dir /var/www/infobase -connstr "Srvr=SRV-1C;Ref=Infobase;" -confpath /etc/apache2/apache2.confsystemctl restart apache21C веб-клиент не умеет использовать лицензии 1С текущего узла, а сначала пытается найти локальную лицензию на веб-сервере, а затем ищет их на сервере 1С, если их там нет, то вы не сможете запустить информационную базу даже при наличии на компьютере активной лицензии 1С.
Публикация файловых баз
Возможно, вы удивитесь, но модуль расширения веб-сервера позволяет публиковать файловые базы на сервере без графического интерфейса и без установки клиента 1С, единственное условие — база физически должна располагаться на веб-сервере.
Также нам потребуется установить все необходимые для работы 1С библиотеки и шрифты. Для этого потребуется подключить несвободные репозитории, откройте файл /etc/apt/sources.list и в Debian добавьте в конце каждой строки:
contribа в Ubuntu раскомментируйте строки содержащие в конце
multiverseВ Debain 11 нужно также добавить репозиторий от предыдущего выпуска для установки библиотеки libenchant1c2a:
echo «deb http://ftp.ru.debian.org/debian buster main» > /etc/apt/sources.list.d/buster.list
Затем выполните:
apt update
apt install ttf-mscorefonts-installer
apt install libfontconfig1
apt install libgsf-1-114
apt install libglib2.0-0
apt install libodbc1
В зависимости от используемого вами дистрибутива часть библиотек может быть уже установлена, о чем вы получите сообщение, так в Debian 9/10 по умолчанию установлены libfontconfig1 и libglib2.0-0.
Затем установим библиотеки ImageMagick, в разных дистрибутивах они могут иметь разные версии, поэтому выполним:
apt search libmagickwand-6В выводе найдем нужную версию с окончанием на q16-x и установим ее.

В нашем случае это библиотека libmagickwand-6.q16-6:
apt install libmagickwand-6.q16-6
Теперь создадим директорию для расположения файловой базы, например:
mkdir /opt/1C_bases/InfoBase2И поместим в нее любым доступным способом, скажем, через SFTP, файл базы данных 1Cv8.1CD, имейте ввиду, что клиента 1С на веб-сервере нет и загрузить на нем DT-файл мы не можем, поэтому его нужно развернуть в другом месте и передать на сервер именно 1CD.
Затем обязательно изменим владельца директории на пользователя веб-сервера:
chown -R www-data:www-data /opt/1C_bases
Создадим каталог публикации:
mkdir /var/www/infobase2Затем перейдем с каталог с установленной платформой, для версии 8.3.17 и ниже выполните:
cd /opt/1C/v8.3/x86_64
Для 8.3.18 и выше (учитывайте, что путь содержит номер платформы):
cd /opt/1cv8/x86_64/8.3.20.1710Теперь можно публиковать базу:
./webinst -publish -apache24 -wsdir InfoBase2 -dir /var/www/infobase2 -connstr "File=/opt/1C_bases/InfoBase2;" -confpath /etc/apache2/apache2.confПерезапустим веб-сервер и базой можно работать:
systemctl restart apache2Но для работы следует использовать исключительно тонкий клиент, так как веб-клиент не сможет получить лицензию.
Для корректной работы с файловыми базами следует ограничить Apache одним рабочим процессом, в противном случае вы можете столкнуться с ошибкой Объект заблокирован. Чтобы избежать этого, откроем /etc/apache2/mods-available/mpm_worker.conf и установим следующие значения:
StartServers 1
MinSpareThreads 1
MaxSpareThreads 1
Если вы используете иные модули мультипроцессной обработки, то нужно внести изменения в их конфигурационные файлы, для event это /etc/apache2/mods-available/mpm_event.conf, настройки выполняются аналогично модулю worker (приведены выше).
В случае использования prefork откройте /etc/apache2/mods-available/mpm_prefork.conf и установите следующие значение опциям:
StartServers 1
MinSpareServers 1
MaxSpareServers 1
После чего не забудьте перезапустить веб-сервер.
Данная настройка может существенно снизить производительность и поэтому мы не рекомендуем совмещать на одном сервере публикацию файловых и клиент-серверных баз, особенно при большом количестве обслуживаемых клиентов.
Особенности обновления платформы 8.3.18 и выше
Несмотря на то, что начиная с этой версии можно устанавливать сразу несколько платформ расширение веб-сервера может работать только с одной версией платформы, поэтому предыдущие версии при обновлении нужно удалить, автоматической замены версии пакета, как это было в 8.3.17 и ниже не произойдет.
Для платформ 8.3.18 — 8.3.19 выполните:
apt remove 1c-ent*
Для 8.3.20 и выше:
/opt/1cv8/x86_64/8.3.20.1549/uninstaller-fullЗатем установите новую версию платформы, как это сделать — смотрите в соответствующем разделе нашей статьи.
После чего откройте файл /etc/apache2/apache2.conf и найдите в нем строку:
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.20.1549/wsap24.so"И исправьте в ней путь согласно установленной вами версии платформы, после чего перезапустите веб-сервер:
systemctl restart apache2
- Автор: Уваров А.С.