Как опубликовать базу 1С на веб-сервере Apache в Ubuntu и решить проблемы с лицензированием?

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

Публикация базы 1С:Предприятие на веб-сервере под управлением ОС Linux (в частности, Ubuntu 18.04) — это стандартная задача для системного администратора, которая, однако, часто сопровождается трудностями. Ошибки могут варьироваться от невозможности загрузить компоненты системы до проблем с поиском аппаратных ключей защиты (HASP). Разберем пошагово, как диагностировать и исправлять наиболее частые сбои при такой настройке.

Анализ ошибки загрузки компонентов файловой базы

Одной из первых проблем, с которой сталкиваются пользователи, является сообщение: "Error loading file-based infobase support components". Рассмотрим причины её возникновения. В среде Linux веб-сервер Apache обычно запускается от имени системного пользователя www-data. Если процесс веб-сервера не имеет достаточных прав на чтение и исполнение файлов платформы 1С или файлов самой базы данных, возникает ошибка инициализации.

Проанализируем ситуацию: часто публикация проходит успешно через конфигуратор или утилиту webinst, но при попытке входа через браузер система выдает ошибку. Это происходит потому, что утилита публикации работает от имени администратора (root), а сам сервис Apache — от ограниченного пользователя. Выясним, как правильно выставить права доступа.

Для корректной работы необходимо убедиться, что пользователь www-data является владельцем каталога с базой данных и всех вложенных файлов. Используем для этого следующую команду в терминале:


sudo chown -R www-data:www-data /home/user/my_1c_base/
sudo chmod -R 775 /home/user/my_1c_base/

Важно помнить, что права 775 или 770 должны быть установлены не только на саму базу 1Cv8.1CD, но и на все родительские папки по пути к ней. Если Apache не сможет "пройти" по дереву каталогов, он не доберется до данных, даже имея на них прямые права.

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

Ситуация, когда "через тонкий клиент заходит, а через браузер — нет", прямо указывает на проблемы с доступом веб-сервера к ключам защиты. Тонкий клиент обычно запускается текущим пользователем, у которого есть доступ к USB-порту, тогда как модулю расширения веб-сервера (wsap24.so) требуются дополнительные настройки.

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

  1. Добавление пользователя в группы: Убедимся, что www-data имеет доступ к USB-устройствам. В некоторых дистрибутивах Linux для этого нужно добавить пользователя в группу usb или аналогичную.
  2. Права на каталоги HASP: Веб-серверу необходим доступ на чтение и запись в системный каталог /var/lib/hasp/. Без этого драйвер не сможет инициализировать защищенную сессию.
  3. Файл nnhasp.ini: Проанализируем настройки менеджера лицензий. Иногда автоматический поиск ключа блокируется брандмауэром. В таком случае необходимо найти файл nnhasp.ini (обычно в /opt/1C/v8.3/x86_64/conf/) и явно указать адрес сервера лицензий:

[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 127.0.0.1
NH_USE_AS_DEFAULT = Enabled

Важное ограничение: Если вы используете локальный однопользовательский ключ (синий USB-брелок), помните, что он позволяет запустить только один сеанс. Если на этом же сервере запущен толстый клиент, веб-клиент лицензию уже не получит. Для стабильной работы нескольких веб-сессий требуется либо многопользовательский ключ, либо программные лицензии.

Установка недостающих библиотек

Ошибка "Error when loading component help" часто связана с отсутствием графических библиотек в минимальных серверных установках Ubuntu. 1С требует их даже для работы в режиме веб-сервера, так как некоторые механизмы отрисовки интерфейса завязаны на системные вызовы. Проверим наличие следующих пакетов:


sudo apt-get update
sudo apt-get install libwebkitgtk-3.0-0 libfontconfig1 libfreetype6 libgsf-1-114

После установки библиотек обязательно перезапустите веб-сервер командой sudo systemctl restart apache2.

Настройка переменных окружения и AppArmor

Посмотрим на ситуацию глубже: в Ubuntu по умолчанию включена система безопасности AppArmor. Она может блокировать доступ процесса /usr/sbin/apache2 к любым файлам, находящимся вне стандартных директорий (таких как /var/www/). Если ваша база лежит в другом месте, AppArmor "молча" заблокирует чтение файла 1Cv8.1CD.

Выясним причину через логи: проверьте /var/log/syslog на наличие записей apparmor="DENIED". Для решения можно перевести профиль Apache в режим обучения или добавить исключения в файл /etc/apparmor.d/usr.sbin.apache2.

Также не забудем про локализацию. Модуль 1С чувствителен к настройкам языка системы. Откроем файл /etc/apache2/envvars и добавим (или раскомментируем) строки:


export LANG=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8

Это гарантирует, что пути к файлам и строковые данные будут обрабатываться корректно, что особенно важно для корректной работы файловых баз с кириллическими символами в названиях или путях.

Итоги и рекомендации

Подводя итог, публикация базы на Linux требует комплексного подхода. Рассмотрим краткий чек-лист для проверки:

Соблюдение этих правил позволит избежать большинства ошибок и обеспечит стабильную работу веб-клиента 1С:Предприятие на сервере под управлением Ubuntu.

← На главную