Home » 1C » Публикация баз 1С в Centos без графического окружения

Публикация баз 1С в Centos без графического окружения

Для работы с 1С сейчас не обязательно использовать Windows на сервере, можно и Linux. Более того, нет необходимости ставить и графическое окружение, если работа с базами будет по протоколу http. Я расскажу, как настроить сервер для 1С и опубликовать файловую базу на сервере Centos 8, не устанавливая саму платформу и графическое окружение. Нам понадобится только web сервер Apache и некоторые компоненты сервера приложений 1С для Linux.

Теоретический курс по основам сетевых технологий. Позволит системным администраторам упорядочить и восполнить пробелы в знаниях. Цена очень доступная, есть бесплатный доступ. Все подробности по . Можно пройти тест на знание сетей, бесплатно и без регистрации.

Введение

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

  1. Операционная система Linux. В моем случае это будет Centos 8 или любой ее форк.
  2. Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем.
  3. Веб сервер Apache, который в rpm дистрибутивах носит имя httpd.
  4. Шрифты Microsoft's Core Fonts.

Собственно и все. Набор софта простой и достаточно узкий. Ничего лишнего. Отдельно не забываем про клиентские лицензии 1С. Они могут быть установлены как на сервере, так и у клиентов. В моем примере лицензии будут клиентские, так что на сервер я их устанавливать не буду. Я проверял данное решение как на аппаратных usb ключах в локальной сети, так и софтовых по одной на каждом клиенте.

Установка компонентов 1С:Предприятия на Linux

Приступаем к настройке. Первым делом нам надо скачать и установить Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем. Идем на https://releases.1c.ru и скачиваем нужную вам версию.

Скачать Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем

Передаем архив на сервер и распаковываем.

# mkdir 1c-rpm
# tar -C 1c-rpm/ -xzvf rpm64_8_3_18_1289.tar.gz

Нам нужно установить только следующие компоненты:

  • 1c-enterprise-8.3.18.1289-server-8.3.18-1289.x86_64.rpm
  • 1c-enterprise-8.3.18.1289-common-8.3.18-1289.x86_64.rpm
  • 1c-enterprise-8.3.18.1289-ws-8.3.18-1289.x86_64.rpm

Делаем это:

# cd 1c-rpm/
# dnf install 1c-enterprise-8.3.18.1289-{common,server,ws}-8.3.18-1289.x86_64.rpm

Установка компонентов 1С:Предприятия на Linux

Сервер 1С предприятия установили на Centos, переходим к настройке веб сервера для публикации баз.

Настройка apache для публикации баз 1с

Нам необходимо установить непосредственно web сервер apache.

# dnf install httpd

Запустите его и убедитесь, что веб сервер работает. Для этого перейдите по ip адресу сервера в браузере. Вы должны увидеть стартовую страницу apache.

# systemctl enable --now httpd

Настройка apache для публикации баз 1с

Если страница не открывается, скорее всего у вас включен и не настроен firewalld. Откройте необходимые порты:

# firewall-cmd --permanent --zone=external --add-port=80/tcp
# firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp
# firewall-cmd --reload

Сразу же настроим однопоточную работу apache. Для этого открываем конфиг /etc/httpd/conf.modules.d/00-mpm.conf и добавляем туда:

StartServers 1
MinSpareThreads 1
MaxSpareThreads 1

Проверяем конфигурацию apache и перезапускаем его:

# apachectl -t
# apachectl restart

У нас почти все готово к публикации баз 1С. Необходимо только установить шрифты Microsoft's Core Fonts.

Установка шрифтов Microsoft's Core Fonts в Centos

Подробная инструкция и информация по установке Microsoft's Core Fonts представлена на странице http://mscorefonts2.sourceforge.net.

# dnf install epel-release
# dnf install xorg-x11-font-utils fontconfig
# dnf install https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm

Установка шрифтов Microsoft's Core Fonts в Centos

Все подготовительные действия сделали. Осталось опубликовать саму 1С базу.

Публикация баз 1С в Centos

В директории /opt/1cv8/x86_64 хранятся бинарники от установки 1С. С их помощью опубликуем файловую базу. Но перед этим нам надо скопировать сам файл с базой в какую-то директорию. Например, в /opt/1Cbase. Выставляем полные права на эту директорию и файлы в ней для веб сервера:

# mkdir -p /opt/1Cbase
# chown -R apache. /opt/1Cbase

Так же создадим директорию для веб сервера, где будет располагаться файл для веб публикации базы:

# mkdir -p /var/www/1Cbase
# chown -R apache. /var/www/1Cbase

Публикуем файловую базу:

# /opt/1cv8/x86_64/8.3.18.1289/webinst -publish -apache24 -wsdir 1cbase -dir /var/www/1Cbase -connstr "File=/opt/1Cbase;" -confpath /etc/httpd/conf/httpd.conf

Публикуем базу с сервера 1С:

# /opt/1cv8/x86_64/8.3.18.1289/webinst -publish -apache24 -wsdir 1cbase -dir /var/www/1Cbase -connstr "Srvr=1CSRV;Ref=1cbase;" -confpath /etc/httpd/conf/httpd.conf
1cbase алиас, который нужно будет добавить к адресу сервера для доступа к этой базе
/var/www/1Cbase путь к публикации базы, где будет располагаться .vrd файл с описанием подключения к базе через web
File=/opt/1Cbase; строка подключения файловой базы
Srvr=1CSRV;Ref=1cbase; строка подключения серверной базы

Если все сделали правильно, должны увидеть сообщение Publication successful.

Публикация баз 1С в Centos

После этого осталось только перезапустить веб сервер и идти проверять публикацию.

# apachectl restart

Доступ в 1С через браузер

Если используете клиентские лицензии на компьютерах, а не на сервере, то через браузер скорее всего получите ошибку получения лицензии. В таком случае используйте установленную платформу, подключая базу через публикацию в web.

Подключение базы 1С через веб сервер

Запустится стандартная платформа, которая без проблем найдет локальную или сетевую лицензию, если она установлена.

Error when loading component 'help'

Очень распространенная ошибка, которую вы можете получить - Error when loading component 'help'.

Ошибка Error when loading component 'help'

Ее проблема в том, что текст ошибки совершенно не информативен. Но чаще всего она связана с правами доступа к файлам с базой. У вас скорее всего не стоит владельцем файла с базой веб сервер apache. Второй вариант - работает SELinux. В контексте данной задачи я не разбирался с его настройкой, поэтому просто отключал.

Во время написания статьи как раз столкнулся с проблемой SELinux, так как не заметил, что он остался включен на тестовой машине. Все перепроверил и только потом вспомнил про него. Отключил временно в консоли и сразу все заработало:

# setenforce 0

Обновление опубликованной через web базы 1с

Подключившись к опубликованной базе через web, нет возможности обновить ее. Если у вас база на сервере 1С, то это не проблема. Просто подключаетесь толстым клиентом и делаете все, что нужно. Если у вас файловая база, настроенная по предложенному в статье способу, вам нужно будет каким-то образом подключаться к ней через толстого клиента. Проще всего это сделать напрямую, через Samba.

Подойдет любой способ ее настройки. У меня есть статья - быстрая и простая настройка samba. Можете взять подходящий вам способ аутентификации и все сделать. Далее подключаетесь к файловой базе как обычно по сети толстым клиентом и обновляете ее.

Заключение

Не забудьте в таком режиме публикации 1с баз добавить побольше памяти и процессора виртуальной машине с веб сервером. Рекомендую не менее 4CPU и 8G Ram. С каждым релизом 1С хочет все больше и больше ресурсов. Еще во время тестов заметил такую вещь, что виртуалка с 1С не запрашивала больше оперативной памяти, несмотря на то, что было включено динамическое выделение. При этом все жутко тормозило и памяти явно не хватало. Пришлось отключить динамическую память и жестко задать 8G, чтобы все зашевелилось более ли менее быстро.

Для безопасности и удобства, перед Apache можно настроить Nginx в режиме proxy_pass.

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом "Administrator Linux. Professional" в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по . Цены 2020 года.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

15 комментариев

  1. Здравствуйте, возник такой вопрос поставил 1С 8.3.19-1150 , все хорошо вебморда работает и показывает картинку логина и пароля. Как я понял я базу 1C заливаю в 1Cbase, но почему то все равно пишет что базы нет или не существует? Куда хотя б копать?

  2. Ингвар

    Привет! В статье есть один непонятный момент:

    Srvr=1CSRV;Ref=1cbase; | строка подключения серверной базы

    что за серверная база? откуда имя? спасибо за ответ

  3. Николай

    Владимир! А есть инструкция для NGINX?
    У меня просто везде последний, да и с индейцем я имел дело последний раз лет шесть назад.
    Не хочется лишний раз разводить зоопарк без надобности

    • Для nginx я не видел модуля 1С. Я всегда на apache настраивал. Если нужен nginx, он ставится в качестве reverse proxy, а запросы все равно потом на apache уходят.

  4. Добрый вечер! можете чуть дополнить статью и рассказать про установку сервера 1с на Centos, столкнулся с проблемой, а куда копать не пойму. на убунте все получается, а надо на centos. спасибо

    • Так а что не получается? Разницы принципиальной нет, что centos, что ubuntu. Отличаются только пакеты, которые ставить надо. Настройки все одинаковые.

      • уже в принципе разобрался. но не совсем до конца, облазил весь инет в поисках ответа, но если делать все как написано в типовых статьях, то сервер 1с не хочет стартовать на centos 8 после чистой установки. не хватает библиотек, случайно поставил пакет, где эти библиотеки были, но какие точно так и не понял, вроде что то связанно с этой "libicu", после все стартует прекрасно, если есть желание помочь разобраться, то можно на почту.

  5. Аноним

    А если нужно опубликовать с ws и httpService ?

  6. "Сразу же настроим однопоточную работу apache"
    Скажите, пожалуйста, с какой целью?

    • Сам нашел ответ на свой же вопрос:
      "модуль 1с для веб-сервера — однопоточный. Соответственно, все пользователи 1с, подключенные к этому веб-серверу, встают в единую «очередь» серверных вызовов"

      А если нагородить что-то вроде: балансировщик (haproxy или тот же nginx) --> в docker-ах несколько apache-ей c web-модулем 1С слушающих на разных портах --> база данных 1С

      • Не уверен, что это хорошая идея для файловых баз. Web публикация хорошо страхует от одновременного изменения и блокировки одних и тех же объектов при одновременной работе нескольких пользователей в одной базе. Она все запросы выстраивает в единую очередь. Если мы запустим несколько таких очередей, то могут начаться проблемы.

        Как это все будет работать с серверной базой, не знаю. Там подобных проблем с блокировкой и одновременным доступом нет. Так что возможно будет рабочее решение.

  7. Дмитрий

    https://releases.1c.ru/ - нужен логин и пароль, без этого не скачаешь ничего

    • Это очевидно. А зачем вам все это настраивать, если у вас нет учетки и лицензии 1С? Все равно работать не будет.

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.