При переходе на работу через веб-клиент в среде Linux пользователи часто сталкиваются с ситуацией: обычный тонкий клиент запускается без проблем, но при попытке входа через браузер система выдает ошибку «Не найдена лицензия. Не обнаружен ключ защиты программы или полученная программная лицензия!». В этой статье мы подробно разберем, почему возникает эта проблема, как работает механизм раздачи лицензий веб-сервером и как правильно настроить окружение на Ubuntu с Apache24, опираясь на опыт создания тестового кластера 1С на UBUNTU.
Для начала проанализируем ситуацию. Когда вы запускаете тонкий клиент непосредственно на сервере или рабочей станции, поиск лицензии выполняет само клиентское приложение 1cv8. Оно ищет файлы программных лицензий в домашнем каталоге текущего пользователя (например, ~/.1cv8/1C/1cv8/conf).
В случае с веб-клиентом ситуация кардинально меняется. Браузер (Chrome, Firefox и др.) ничего не знает о лицензиях 1С и не умеет их искать. В файловом варианте работы базы лицензию клиенту выдает модуль расширения веб-сервера (например, mod_1c24.so для Apache). Этот модуль работает от имени системного пользователя веб-сервера (в Ubuntu это обычно www-data). Следовательно, процесс веб-сервера просто не имеет прав доступа к файлам лицензий, которые лежат в папке вашего личного пользователя, и даже не знает о их существовании.
Разберем по шагам процесс переноса лицензий. Для того чтобы лицензия была доступна всем процессам (и серверу 1С, и веб-серверу), ее необходимо разместить в глобальном каталоге, который платформа проверяет по умолчанию. В ОС Linux основным путем для лицензий является:
/var/1C/licenses
Рассмотрим алгоритм действий:
sudo mkdir -p /var/1C/licenses
.lic) в домашнем каталоге пользователя, где она была активирована. Обычно это путь вида /home/имя_пользователя/.1cv8/1C/1cv8/conf/*.lic.
sudo cp /home/user/.1cv8/1C/1cv8/conf/20240503130634.lic /var/1C/licenses/
Просто перенести файл недостаточно. Проанализируем типичную ошибку: даже после переноса веб-сервер может продолжать выдавать ошибку отсутствия ключа. Это происходит из-за того, что у пользователя www-data нет прав на чтение файла.
Многие используют радикальный метод chmod 777, однако мы рекомендуем более безопасный и корректный подход. Нам нужно назначить владельца и установить права на чтение. Выполним следующие команды:
sudo chown -R usr1cv8:grp1cv8 /var/1C/
sudo chmod -R 755 /var/1C/
Важный нюанс: Чтобы веб-сервер Apache мог прочитать файл, пользователю www-data нужны права на "выполнение" (доступ к каталогу) для всех родительских папок в пути. Проверим, что Apache включен в группу, имеющую доступ к лицензиям, либо просто установим права на чтение для "остальных" (others), если политика безопасности это позволяет.
Если ваша конфигурация (например, "Салон красоты" или "Общепит") использует дополнительную защиту СЛК, то одной лицензии платформы будет недостаточно. Проанализируем механизм СЛК в веб-клиенте:
Для корректной работы СЛК через веб-интерфейс убедитесь, что на сервере установлен и запущен Сервер СЛК. В настройках самой конфигурации необходимо указать адрес сервера СЛК (например, 127.0.0.1) и порт. В среде Linux служба СЛК называется licenceserver.
Проверить статус службы лицензирования можно командой:
systemctl status licenceserver
В современных дистрибутивах Ubuntu активна система AppArmor, которая может блокировать доступ Apache к каталогам вне стандартных путей. Если ошибка сохраняется даже при правильных правах — проанализируем логи безопасности. Подобные нюансы настройки Linux-среды часто всплывают и при обслуживании баз данных 1C на Postgresql под Astra Linux.
sudo tail -f /var/log/syslog | grep -i apparmor
Если вы видите сообщения DENIED для процесса apache2 по пути /var/1C/..., необходимо добавить исключение в профиль AppArmor для Apache или временно перевести его в режим обучения (complain mode).
Рассмотрим финальный чек-лист для запуска веб-клиента 1С на Linux:
.lic находится в /var/1C/licenses.www-data (или тот, под которым запущен веб-сервер) имеет права на чтение этого файла и право +x на все папки в пути.default.vrd корректно указаны параметры соединения с базой.После выполнения этих действий перезапустите веб-сервер командой sudo systemctl restart apache2 и попробуйте снова зайти через браузер. Система должна успешно подхватить программную лицензию, выданную модулем расширения веб-сервера.