Как установить и настроить 1С:Предприятие 8.3 на CentOS 7: решение проблем с архитектурой, лицензированием и веб-публикацией

Системный администратор 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

Переход на операционную систему Linux для работы с 1С часто сопровождается трудностями на начальных этапах. В данной статье мы подробно рассмотрим процесс развертывания платформы 1С:Предприятие 8.3 на дистрибутиве CentOS 7, разберем типичные ошибки при установке пакетов, настроим получение лицензий по сети и выполним публикацию информационной базы на веб-сервере Apache.

Разбор конфликтов архитектур при установке 1С

Одной из первых проблем, с которой сталкиваются администраторы, является попытка смешивания пакетов разной разрядности. В CentOS 7, которая является исключительно 64-битной системой, важно соблюдать единообразие устанавливаемых компонентов. Рассмотрим ситуацию, когда при установке 32-битного клиента (i386) возникают конфликты с уже установленными 64-битными общими компонентами (common).

Проанализируем типичную ошибку при выполнении команды установки:


yum localinstall 1C_Enterprise83-client-*.rpm
Ошибка: Пакет: 1C_Enterprise83-client-8.3.13-1690.i386
Необходимо: libstdc++.so.6(GLIBCXX_3.4.22)

Выясним причину этой ошибки: штатная библиотека libstdc++ в CentOS 7 версии 4.8.5 не содержит необходимых версий символов (GLIBCXX_3.4.20 и выше), которые требуются для работы современных 32-битных клиентов 1С. Кроме того, установка 32-битного клиента на 64-битную систему требует наличия всех соответствующих 32-битных зависимостей, что может привести к «замусориванию» системы.

Рекомендация: Если вы используете 64-битную CentOS, настоятельно рекомендуется использовать 64-битные пакеты 1С (x86_64). Это избавит вас от проблем с библиотеками и обеспечит нативную поддержку системы. Если же вам принципиально нужен 32-битный клиент (например, для совместимости со старыми внешними компонентами), вам придется установить огромное количество i686 библиотек вручную.

Настройка сетевых лицензий HASP и Firewall

После успешной установки пакетов часто возникает проблема с поиском ключей защиты. В ОС Linux механизмы автоматического поиска HASP-ключей через широковещательные UDP-запросы часто работают некорректно. Рассмотрим, как правильно настроить доступ к ключам, если база файловая, а ключ находится на другом сервере в сети.

Многие пытаются решить проблему простым открытием порта в firewalld:


firewall-cmd --permanent --add-port=475/tcp
firewall-cmd --permanent --add-port=475/udp
firewall-cmd --reload

Однако даже с открытыми портами 1С может не видеть ключ. Проанализируем ситуацию: для стабильной работы в Linux необходимо явно указать адрес сервера лицензирования. Разберем создание «правильного» конфигурационного файла nethasp.ini. Мы должны создать или отредактировать этот файл (обычно он находится в /opt/1C/v8.3/x86_64/conf/ или /opt/1C/v8.3/i386/conf/).

Добавим в секцию [NH_COMMON] и [NH_TCPIP] следующие параметры:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; IP-адрес вашего сервера с ключами
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = Disabled

Использование этого метода позволяет 1С подключаться напрямую к серверу лицензирования, минуя нестабильный механизм широковещательного поиска. Это критически важно для Linux-инсталляций.

Публикация информационной базы на Apache

Теперь рассмотрим процесс публикации файловой информационной базы для работы через веб-браузер или тонкий клиент. Здесь часто совершается фатальная ошибка — попытка использовать 32-битный модуль 1С (wsap24.so) с 64-битным веб-сервером Apache.

Если в файле httpd.conf вы видите строку:

LoadModule _1cws_module "/opt/1C/v8.3/i386/wsap24.so"

а ваш Apache установлен из стандартных репозиториев CentOS (64-бит), то сервер не запустится с ошибкой синтаксиса. Выясним причину: 64-битный процесс не может загрузить 32-битную динамическую библиотеку.

Разберем правильный алгоритм публикации с использованием утилиты webinst:

  1. Убедитесь, что установлен 64-битный клиент или сервер 1С.
  2. Перейдите в каталог с установленной платформой: cd /opt/1C/v8.3/x86_64/.
  3. Выполните команду публикации (пример для базы «base»):

./webinst -apache24 -wsdir 'base' -dir '/var/www/html/base/' -connStr 'File="/pub/InfoBase/";' -confPath /etc/httpd/conf/httpd.conf

Важный момент: Обратите внимание на права доступа. Пользователь, под которым работает Apache (обычно это apache), должен иметь права на чтение и запись (rwx) ко всему каталогу с базой данных 1С (в нашем примере /pub/InfoBase/), а также к каталогу публикации /var/www/html/base/.

Настройка SELinux для работы веб-сервисов 1С

Даже если публикация прошла успешно, при попытке зайти в базу вы можете столкнуться с ошибкой HTTP: Not found или ошибками синтаксического анализа XML. В CentOS 7 основной причиной часто является работа системы безопасности SELinux.

Рассмотрим, как проверить влияние SELinux. Временно переведем систему в режим обучения:

setenforce 0

Если после этого 1С начала работать корректно, значит, необходимо настроить политики безопасности, а не отключать их полностью. Разберем необходимые команды для разрешения работы веб-сервера с сетью и файлами:

  1. Разрешим Apache устанавливать сетевые соединения (необходимо для связи с лицензиями и внешними ресурсами):
  2. setsebool -P httpd_can_network_connect on
  3. Установим правильный контекст безопасности для папки с информационной базой:
  4. chcon -R -t httpd_sys_rw_content_t /pub/InfoBase/

После выполнения этих действий верните SELinux в активный режим: setenforce 1.

Шрифты и графические библиотеки

Для корректного отображения интерфейса (GUI) в Linux, особенно при формировании печатных форм, 1С требуются шрифты Microsoft Core Fonts. Без них вместо текста вы можете увидеть пустые квадраты. Проанализируем, как это исправить.

Вам необходимо установить пакет msttcorefonts. В стандартных репозиториях CentOS его нет, поэтому его установку обычно выполняют через репозиторий EPEL или путем сборки из rpm пакета. Также убедитесь, что установлены следующие библиотеки:

Совместное выполнение этих шагов обеспечит стабильную работу платформы 1С на CentOS 7. Мы разобрали основные подводные камни: от архитектурного соответствия модулей до тонких настроек прав доступа и системы безопасности. Помните, что Linux требует более внимательного отношения к правам на файловую систему и явного указания параметров сети, чем среда Windows.

← На главную