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

Установка сервера 1С Предприятие 8.3 на Linux Хостинг

В этой статье я попробую рассказать об установке сервера 1С и сервера PostgreSQL на операционной системе Ubuntu 16.04/18.04. В статье используется версия сервера 1С — 8.3.13.1472 и версия PostgreSQL — 10.3-2.1C. Кроме этого в статье приведена информации о некоторых дополнительных настройках.

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

sudo dpkg-reconfigure locales

Выбор ru_RU локали
Выбор ru_RU локали
Выбор локали по умолчанию
Выбор локали по умолчанию

Далее установим библиотеку libicu. На момент написания статьи процесс установки этой библиотеки отличался для разных версий Ubuntu, приведу оба варианта, Ubuntu 16.04:

sudo apt-get install libicu55

sudo dpkg -i libicu55_55.1-7ubuntu0.4_amd64.deb

Раньше пакет «postgresql-common» входил в состав дистрибутива который размещался на сайте «1С», теперь же (начиная с PostgreSQL 9.6.3-1.1C) этот пакет нужно устанавливать из стандартных репозиториев.

Тут возникает небольшое затруднение, связанное с тем, что мы устанавливаем PostgreSQL 10: на момент написания статьи стандартный репозиторий содержит неподходящую для PostgreSQL 10 версию пакета «postgresql-common».

Чтобы исправить это нужно создать файл /etc/apt/sources.list.d/pgdg.list и записать в него строку, для Ubuntu 16.04:

deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main

для Ubuntu 18.04:

deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main

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

sudo apt-get update

После этого можно установить нужную нам версию пакета «postgresql-common»:

sudo apt-get install postgresql-common

Подготовительные работы закончены, скачиваем дистрибутив PostgreSQL 10 с сайта «1С», распаковываем его (там всего три пакета) и устанавливаем именно в таком порядке:

sudo dpkg -i libpq5_10.3-2.1C_amd64.deb

sudo dpkg -i postgresql-client-10_10.3-2.1C_amd64.deb

sudo dpkg -i postgresql-10_10.3-2.1C_amd64.deb

Если все прошло нормально, то выглядеть это будет приблизительно так:

Установка PostgreSQL 10 на Ubuntu 16.04/18.04
Установка PostgreSQL 10 на Ubuntu 16.04/18.04
Содержание
  1. Настройка PostgreSQL
  2. Установка сервера 1С
  3. Дополнительные настройки
  4. Установка Apache
  5. Включение отладки на сервере
  6. Настройка UFW
  7. Нужна ли лицензия на сервер?
  8. 1. Загрузка необходимых пакетов
  9. 2. Получение инструкции по установке Postgresql Pro
  10. 3. Обновление Ubuntu и установка пакетов
  11. 4. Добавление репозитория PostgreSQL Pro
  12. 5. Установка и запуск HASPD
  13. 6. Установка Postgres Pro Std
  14. 7. Настройка СУБД Postgres Pro Std
  15. 8. Установка сервера 1С
  16. 9. Настройка автозагрузки сервера 1С
  17. 10. Установка толстого и тонкого клиентов 1С
  18. 11. Особенности размещения файла настроек HASP для 1С в Linux
  19. 12. Проверка соединения с базой данных
  20. 13. Создание базы данных на сервере 1С
  21. 14. Настройки для подключения к серверу 1С и СУБД
  22. 15. Запуск базы данных на сервере 1С в разных режимах
  23. 16. Публикация конфигурации 1С на web-сервере
  24. 17. Проверка запуска базы данных 1С в режиме веб-приложения
  25. Выводы
  26. Ошибка 1С «Сервер баз данных не обнаружен»
  27. Could not translate host name «NAME» to address
  28. Пользователь «postgres» не прошёл проверку подлинности (Ident)
  29. В pg_hba. conf нет записи для компьютера «», пользователя «usr1cv8», базы «template»
  30. Is the server running on host and accepting TCP/IP connections on port 5432?
  31. «Породить новый процесс для соединения не удалось
  32. Database «base» does not exist
  33. Информация о руководстве
  34. Оглавление
  35. Термины
  36. Установка ОС Ubuntu (серверный вариант)
  37. RPM-based
  38. Red Hat Enterprise Linux (RHEL)
  39. CentOS
  40. Альт Линукс
  41. DEB-dased
  42. Debian
  43. Ubuntu
  44. Linux Mint
  45. Astra Linux
  46. Выбираем и устанавливаем Ubuntu 18.04 LTS
  47. Настраиваем временную зону
  48. Настраиваем локали
  49. Настройка сети
  50. Удаленное управление GNU/Linux сервером
  51. Установка и настройка сервера 1С
  52. Установка серверов 1С
  53. Настройка серверов 1С
  54. Сервис Remote Administration Service (RAS)
  55. Сервер хранилища конфигураций

Настройка PostgreSQL

После установки можно сделать некоторые настройки PostgreSQL.

От имени суперпользователя открываем файл /etc/postgresql/10/main/pg_hba.conf и меняем в нем строку:

local all postgres peer

local all postgres trust

Кроме этого можно открыть файл /etc/postgresql/10/main/postgresql.conf (тоже от имени супер пользователя) и поменять в нем строку:

listen_addresses = '*'

listen_addresses = 'localhost'

После всех этих манипуляций перезапускаем сервер PostgreSQL:

sudo service postgresql restart

Теперь у нас есть возможность поменять пароль суперпользователя postgres:

Отключаем безпарольный доступ: вновь от имени суперпользователя открываем файл /etc/postgresql/10/main/pg_hba.conf и меняем в нем строку:

local all postgres trust

local all postgres md5

В заключении еще раз перезапускаем сервер:

sudo service postgresql restart

Установка сервера 1С

Начать, как обычно, нужно с установки дополнительных библиотек:

sudo apt-get install imagemagick

sudo apt-get install unixodbc

sudo apt-get install ttf-mscorefonts-installer

sudo apt-get install libgsf-1-114

Для версии 8.3.13 и выше используется библиотека ImageMagick входящая в состав дистрибутива, так что устанавливать пакет imagemagick не обязательно (хотя вреда от этого не будет).

Пакет ttf-mscorefonts-installer в процессе установки попросит принять лицензионное соглашение:

ttf-mscorefonts-installer предлагает лицензионное соглашение
ttf-mscorefonts-installer предлагает лицензионное соглашение

На момент написания статьи в репозиториях Ubuntu 18.04 не было актуальных версий требуемых пакетов. Если в настоящее время их все еще нет, то можно попробовать добавить репозитории с неактуальными версиями пакетов. Создаем файл /etc/apt/sources.list.d/raring.list и записываем в него следующие строки:

deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse

После этого выполнить команду:

sudo apt-get update

После установки дополнительных библиотек скачиваем с сайта 1С все необходимые файлы (Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем) и устанавливаем их в таком порядке:

sudo dpkg -i 1c-enterprise83-common_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-common-nls_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-server_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-server-nls_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-ws_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-ws-nls_8.3.13-1472_amd64.deb

Пакеты с приставкой «-nls» нужны для поддержки дополнительных языков и не являются обязательными к установке. Пакеты с приставкой «-ws» нужны для работы веб-клиента и также не являются необходимыми.

Теперь изменим владельца каталога /opt/1C:

sudo chown -R usr1cv8:grp1cv8 /opt/1C

И запустим сервер 1С:

sudo service srv1cv83 start

Сервер работает
Сервер работает

Если у Вас правильно настроена сеть и компьютеры видят друг друга, то ничего больше делать не нужно. Если же нет, то необходимо сделать так, что бы сервер 1С видел сервер PostgreSQL, а клиентские машины видели сервер 1С. Для этого в файлы /etc/hosts или C:\Windows\System32\drivers\etc\hosts нужно добавить строки:

В качестве разделителей должны быть пробелы, а не табуляции.

Дополнительные настройки

Все приведенные ниже действия не являются обязательными.

Установка Apache

Начиная с версии 8.3.8 платформа 1С поддерживает Apache 2.4, поэтому можно просто установить текущую версию:

sudo apt-get install apache2

Если по каким-то причинам Вам требуется Apache 2.2 то для начала нужно добавить репозитории с неактуальными версиями пакетов, как описано выше (если, конечно, Вы уже этого не сделали). Затем выполнить команду:

sudo apt-cache showpkg apache2

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

sudo apt-get install apache2=<номер версии>

sudo apt-get install apache2=2.2.22-6ubuntu5.1

Проверить версию Apache можно так:

Включение отладки на сервере

sudo service srv1cv83 stop

В файле /etc/init.d/srv1cv83 находим строку:

Приводим ее к виду:

sudo service srv1cv83 start

В конфигураторе на клиентской машине идем в «Параметры» -> «Запуск 1С:Предприятия» -> «Дополнительные» и включаем два пункта:

  • «Устанавливать режим разрешения отладки»
  • «Начинать отладку при запуске»
Включение режима отладки
Включение режима отладки

Настройка UFW

UFW — это простая утилита для конфигурирования файрвола Netfilter.

sudo ufw allow 22

sudo ufw allow 80

sudo ufw allow 443

Порты для работы 1С (если используются стандартные порты):

sudo ufw allow 1540

sudo ufw allow 1541

sudo ufw allow 1543

sudo ufw allow 1560:1591/tcp

sudo ufw enable

Нужна ли лицензия на сервер?

На момент написания статьи (версия технологической платформы 8.3.13.1472) лицензия на сервер не требуется, все прекрасно работает без нее.

На этом все, надеюсь, что данная статья была Вам полезна.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка сервера 1С на Linux с сервером СУБД PostgreSQL выгодна по нескольким причинам. Собственник бизнеса может получить существенную экономию за счёт использования свободно распространяемого ПО. Для сервера 1С можно использовать практически любое облако, что позволит экономить на приобретении оборудования, соединить географически разбросанные  точки, использовать недорогие устройства для подключения в режиме терминального доступа, например, с использованием стандартного RDP-клиента Windows. Возможна установка на отдельно расположенном в уголке системном блоке, без подключённого монитора, дома или в офисе.

В этой статье я расскажу как установить 1С сервер на Ubuntu 20.04 с Postgres Pro Std 13, а также web-сервер на Apache2 и опубликовать туда созданную базу.

Я принял решение развернуть тестовый стенд в Hyper-V на своём ноутбуке. Использовался ноутбук с такими основными параметрами:

  • Процессор: AMD Ryzen 5.
  • Накопитель: SSD 256 Гб.
  • ОЗУ: 6 Гб.
  • ОС: Windows 10 Professional.

Виртуальный контейнер Hyper-V:

  • 1 виртуальный процессор.
  • 3 Гб динамического ОЗУ.
  • Виртуальный жёсткий диск на 20 Гб.
  • DVD-привод с ISO образом Ubuntu Desktop 20.04.2 (64-bit).

Ubuntu Desktop разрядностью 64 bit я выбрал сознательно. Во-первых, Postgres Pro бывает только 64 bit. Во-вторых, мне нужно протестировать не только установку сервера 1С, но ещё и установку клиента 1С:Предприятие для Linux, чтобы подключиться из этой ОС к своему рабочему серверу, и наоборот. Установку и настройку Ubuntu 20.04, а также установку сервера XRDP оставлю вне рамок этой статьи.

1. Загрузка необходимых пакетов

wH47jgYH1AayAAAAABJRU5ErkJggg==

На снимке экрана я подчеркнул пакеты, которые скачал:

D8g+IttNUyAAAAAElFTkSuQmCC

5ePJwAAAADAK48y32w6TXecPpX+fyIJ1c+2cTASAAAAAElFTkSuQmCC

2. Получение инструкции по установке Postgresql Pro

Далее произвожу подготовку к установке СУБД. Я уже регистрировался на сайте производителя, поэтому захожу в личный кабинет, указываю операционную систему и дистрибутив. Соглашаюсь с лицензионным соглашением и получаю инструкцию для установки Postgres Pro Std в Ubuntu 20.04. Вы можете использовать её для установки этой программы.

BrCaX4DZfA0AAAAASUVORK5CYII=

Обратите внимание, что для использования любой версии PostgreSQL Pro необходимо покупать лицензию, но программу можно получить бесплатно для тестирования, изучения и разработки.

3. Обновление Ubuntu и установка пакетов

Все действия я буду производить из графического режима Ubuntu Desktop. Однако всё, что я делаю, относится в равной степени и к Ubuntu Server 20 64-bit. В графическом режиме Ubuntu есть утилита terminal, в которой и будут производиться все манипуляции. Для удалённого подключения к Linux в консольном режиме существует большое количество приложений, использующих SSH. Обычно я использую Putty RUS.

3yv4LnvcQRz4spjmCOSP3HOz9mv8MrjGf8f+IryyozkvOurKzv7iGv98fgbORTGUohWRwUAAAAASUVORK5CYII=

Для настройки репозитория Postgres Pro Std потребуется curl. И поставлю свой любимый файловый менеджер mc. До начала обновления пакетов Ubuntu в открытом терминале пишу:

sudo apt -y install mc curl

Пробую поставить пакет libpq, входящий в дистрибутив PostgreSQL, с сайта 1С и получаю ошибку о несоответствии версии библиотеки libssl.so. 1.0.0, а у меня развёрнута версия 1.0.3. Это свидетельствует от том, что в Ubuntu 20.04 более новые библиотеки, чем используются дистрибутивами пакетов.

Поэтому необходимо ещё добавить репозитории для установки всех пакетов, которые устарели в Ubuntu 20.04, однако нужны для установки HASPD и 1С. Поэтому выполняю команду:

Читайте также:  Повысьте эффективность с помощью программного обеспечения для мониторинга Astra Linux

sudo apt update

tkiFDhgwZMmTIkCHjLwk8Ieb1eNBe14y+9h7ojXqEmyPgdrvRerERg919+P+91QSkH6ho3wAAAABJRU5ErkJggg==

Соглашаюсь со всем, что просит apt (можно нажимать Enter).

8fxqexEE47HgQAAAAASUVORK5CYII=

После завершения перезагрузите систему, но перед этим убедитесь что дистрибутивы 1C и PostgreSQL Pro успешно загружены. После этого можно двигаться дальше. Ставлю необходимые для функционирования 1С пакеты:

apt install libwebkitgtk-3.0-0 libjavascriptcoregtk-3.0-0 libmagickwand-6.q16-6 libgsf-1-114 libkrb5-3 libgssapi-krb5-2 ttf-mscorefonts-installer

Запрещаю системе их обновлять:

apt-mark hold libwebkitgtk-3.0-0 libjavascriptcoregtk-3.0-0 libmagickwand-6.q16-6 libgsf-1-114 libkrb5-3 libgssapi-krb5-2 ttf-mscorefonts-installer

Ставлю необходимые пакеты для установки драйвера HASP:

apt install dkms flex bison

4. Добавление репозитория PostgreSQL Pro

Для добавления репозитория PostgreSQL Pro выполните такие команды:

curl -o apt-repo-add.sh https://repo.postgrespro.ru/pgpro-13/keys/apt-repo-add.sh

EPIIAAAAASUVORK5CYII=

5. Установка и запуск HASPD

Установка HASPD в Ubuntu 20.04 довольно проблематична, в версии 7.90 не захотел устанавливаться aksusbd — модуль, который работает с USB-устройствами — ключами HASP, поэтому служба не стартовала. Скачал модули для Ubuntu 15.04 (64-bit) и для HASPD версии 7.40.

Менеджер пакетов apt хорош тем, что если в зависимостях пакета есть другие пакеты, то в 90 из 100% случаев он найдёт и установит самые подходящие. Поэтому разворачиваю и копирую оба файла с расширением .deb службы haspd в директорию /usr/src/haspd7_40/:

sudo mkdir /usr/src/haspd7_40

sudo cp hasp* /usr/src/haspd7_40

sudo cd /usr/src/haspd7_40

sudo apt -y install ./*.deb

KfWgAAAABJRU5ErkJggg==

Результат установки должен быть таким, как на приведённом выше скриншоте. Чтобы автоматически при загрузке ОС запускалась служба в Ubuntu, выполняю:

systemctl enable haspd

И перезапускаю службу:

systemctl restart haspd

Проверить состояние службы можно так:

systemctl status haspd

6. Установка Postgres Pro Std

Вначале необходимо добавить поддержку русского языка в систему. Ставлю локализацию для нормального функционирования Postgres Pro Std:

sudo locale-gen en_US.UTF-8

sudo locale-gen ru_RU.UTF-8

sudo update-locale LANG=ru_RU.UTF8

sudo dpkg-reconfigure locales

AwTUWgsipspSAAAAAElFTkSuQmCC

Для установки самой программы выполните:

sudo apt -y install postgrespro-std-13 postgrespro-std-13-contrib

systemctl stop postgrespro-std-13

Удаляю автоматически созданную базу, так как она не подходит для 1С:

rm -r /var/lib/pgpro/std-13/data/*

Из директории, куда установился Postgres Pro Std, запускаю инициализацию базы для 1С:

/opt/pgpro/std-13/bin/pg-setup initdb --tune=1c

Затем стандартные действия по настройке автозапуска, старта службы и проверке статуса. Должно быть так, как приведено ниже:

systemctl enable postgrespro-std-13

systemctl start postgrespro-std-13

systemctl status postgrespro-std-13

getBW60NbM8AAAAASUVORK5CYII=

7. Настройка СУБД Postgres Pro Std

Заходим из консоли под пользователем postgres. Таким способом мы получим доступ к psql без указания пароля и сможем настроить себе доступы:

Запускаем консоль СУБД:

Я не стал возиться с созданием пользователя, поэтому применяю суперпользователя postgres. Задаю пароль secret1c:

Вывод должен быть ОК. Затем выходим из консоли:

И возвращаемся в терминал из окружения postgres:

8. Установка сервера 1С

Дальше надо разобраться как установить 1C в Ubuntu 20.04. Распаковываю дистрибутивы 1С и раскладываю их по папочкам в /usr/src/1cv83_18_1334. Папка cli — клиентская часть 1с, serv — серверная часть, thincli — тонкий клиент (про него напишу отдельно).

Obzae2P8PRfvh86JZMvIAAAAASUVORK5CYII=

Первым ставлю сервер 1С:

sudo apt install ./*.deb

Лучше каждый файл ставить по отдельности, так как существует чёткая последовательность: common, crs, server, ws.

9uewUosaOYAAAAAASUVORK5CYII=

Потому что в результате всё может не установиться, хотя у меня получилось.

RuwzDQAAAABgctajZiP2az70APgK2oJRmf+tAAAAAElFTkSuQmCC

9. Настройка автозагрузки сервера 1С

По непонятной причине, в последние полгода при установке 1С сервера не создаётся ссылка для службы. Поэтому создаю её самостоятельно:

ln -s /opt/1cv8/x86_64/8.3.18.1334/srv1cv83 /etc/init.d/srv1cv83

После этого можно настраивать автозапуск службы:

systemctl enable srv1cv83

systemctl restart srv1cv83

systemctl status srv1cv83

gdp89JGU5NSSv8PbfiIoRWHcxEAAAAASUVORK5CYII=

10. Установка толстого и тонкого клиентов 1С

Сначала перехожу в директорию /usr/src/1cv83_18_1334/cli

Затем для установки толстого клиента выполняю:

sudo apt install ./1c-enterprice-8.3.18.1334-client*.deb

А для установки тонкого клиента:

sudo apt install ./1c-enterprice-8.3.18.1334-thin-client*.deb

j9d6XgxfWHwAAAAASUVORK5CYII=

Обратите внимание, что при установке тонкого клиента (thin-client) сервер 1С удаляется. Я тонкого клиента ставить на сервер 1С не буду.

wGDlGAFmNxcFgAAAABJRU5ErkJggg==

11. Особенности размещения файла настроек HASP для 1С в Linux

Первая заключается в том, что если потребуется получать лицензию от ключа на другой машине, то необходим файл nethasp.ini. Но если в Windows его достаточно положить в установочную директорию 1С, подкаталог conf, то в Linux его нужно разместить ниже по дереву: в директорию релиза. Я для этого создал символическую ссылку на каталог в /opt/1cv8/conf:

sudo ln -s /opt/1cv8/conf/ /opt/1cv8/x86_64/8.3.18.1334/conf/

Теперь 1С будет видеть мои сетевые ключи.

12. Проверка соединения с базой данных

Для проверки работы толстого клиента, пробую подключится ко внешнему 1C серверу с помощью 1С:Документооборот:

eEMn2fJ5PuIAAAAASUVORK5CYII=

Заработал, и довольно быстро для толстого клиента и виртуальной машины. С кодировками русского языка проблем не возникает.

z9OUQlesau7ywAAAABJRU5ErkJggg==

13. Создание базы данных на сервере 1С

Создаю пустую базу для разработки на сервере СУБД. Указываю наименование информационной базы и её расположение. В данном примере будет использоваться база данных с именем test.

H4P1IoT3CHxQAAAAAElFTkSuQmCC

14. Настройки для подключения к серверу 1С и СУБД

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

Теперь можно экспериментировать с пустой базой test.

15. Запуск базы данных на сервере 1С в разных режимах

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

Запускаю в режиме конфигуратора с правами суперпользователя root:

9o6jmRjBWwAAAAAElFTkSuQmCC

h9qpWEwRL7bpwAAAABJRU5ErkJggg==

16. Публикация конфигурации 1С на web-сервере

Команда для установки web-севера Apache 2 выглядит вот так:

sudo apt -y install apache2

AQCFnUkGmTZiAAAAAElFTkSuQmCC

После того как конфигуратор запустился от суперпользователя, можно публиковать базу на web-сервере. Для этого в режиме конфигуратора нужно открыть меню Администрирование и выбрать пункт Публикация на веб-сервере.

60o9lqVDRXNAAAAAElFTkSuQmCC

17. Проверка запуска базы данных 1С в режиме веб-приложения

Для проверки можно с самого сервера перейти по адресу http://127.0.0.1/test. Или зайти с любого другого сетевого устройства (планшет, смартфон, компьютер) по сетевому адресу или имени сервера 1С:

ux4LX7+AAAAAElFTkSuQmCC

Выводы

Теперь вы знаете как выполняется установка 1C Ubuntu 20.04. При установке предварительно закачанных пакетов сервера 1С требуется минимум усилий и внимания к деталям, что позволяет автоматизировать установку скриптом на bash.

В современной Ubuntu 64-bit при установке приходится понижать версии различных пакетов, в том числе ответственных за шифрование и обеспечение защиты системы в целом. Для серверов, так или иначе подключённых в общий доступ, необходимо настраивать файрвол (брандмауэр), применять дополнительные пакеты для защиты, например, от перебора паролей fail2ban или использовать сторонние сервисы, созданные для предотвращения автоматизированных или направленных атак.

В целом производительность ОС Ubuntu 20.04 (64-bit) позволяет использовать более «тяжёлые» базы данных, использовать кластер серверов 1С и СУБД, подключать большое количество пользователей как в режиме тонкого клиента 1С, так и в режиме RDP (удалённых рабочих столов) с гарантированно минимальными затратами на аппаратную часть сервера и лицензирование необходимого ПО.

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

Процессор AMD Ryzen 7 PRO на материнской плате MSI B450M MORTAR MAX, с четырьмя модулями оперативной памяти, видеокартой AMD Radeon R9 Gamer Series 8Gb, с двумя хранилищами на 1000 Gb SSD M.2 (накопитель Kingston KC2000). Такой системный блок, в сборе с корпусом и блоком питания, сегодня может стоить приблизительно 85 000 рублей. В связи с тем, что пропускная способность накопителей и оперативной памяти заявлены приблизительно равными, обмен между хранилищем данных и ОЗУ будет происходить примерно на одинаковой скорости. Поэтому в такой конфигурации не потребуется проводить тонкий тюнинг сервера 1С, СУБД.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Ошибка 1С «Сервер баз данных не обнаружен»

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

Продолжение данного сообщения может быть различным:

  1. 1. Could not translate host name «NAME» to address: Temporary failure in name resolution

    2. ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (Ident)

    3. ВАЖНО: в pg_hba.conf нет записи для компьютера «», пользователя «usr1cv8», базы «template»

    4. Is the server running on host and accepting TCP/IP connections on port 5432?

    5. «Породить новый процесс для соединения не удалось: Ресурс временно недоступен» или «ВАЖНО: извините, уже слишком много клиентов.»

    6. FATAL: database «base» does not exist

Далее рассмотрим подробнее каждую ошибку.

Could not translate host name «NAME» to address

Пример полного текста ошибки:

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

Ошибка может возникать как при создании базы, так и при запуске информационной базы.

Настроим DNS-адресацию или пропишем адреса в файл hosts. Обратите внимание, что в данном случае проблема в том, что на сервере 1С нет информации о доменном имени сервера СУБД PostgreSQL. Подробнее о DNS — Настройка DNS-адресации для 1С сервера.

Пользователь «postgres» не прошёл проверку подлинности (Ident)

Пример полного текста ошибки:

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

Описание: Ошибка возникает при создании базы.

Настроим проверку подлинности.

    1. Сконфигурируем доступ к серверу PostgreSQL в файле: pg_hba.conf:

Строк должно быть, соответственно, несколько, если серверов 1С несколько в кластере.

Последняя колонка указывает на метод авторизации.

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

А после удачного старта сервера СУБД разбираться с настройками доступа.

В pg_hba. conf нет записи для компьютера «», пользователя «usr1cv8», базы «template»

Пример полного текста ошибки:

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

Ошибка связана с отсутствием прописанного доступа к базе данных в файле pg_hba.conf

Добавим запись в файл pg_hba.conf.

Приведем пример содержания файла, который открывает доступ:

Строк должно быть, соответственно, несколько, если серверов 1С несколько в кластере.

Is the server running on host and accepting TCP/IP connections on port 5432?

Пример полного текста ошибки:

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

В данном случае необходимо понимать, что рабочего процесса:

Либо клиент(в нашем случае сервер 1С) его не «видит» по ряду причин:

— Отсутствие доступа;

— Обращение по другому адресу.

1. Первоначально, конечно, проверим, есть ли на сервере СУБД PostgreSQL в запущенных процессах процесс postmaster/postgres (в зависимости от версии PostgreSQL) на порту 5432.

1.1. Если по результатам проверки видим, что не запущен процесс, то необходимо его запустить.

1.2. Если по результатам проверки видим, что процесс запущен, но слушает только «себя» 127.0.0.1.

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

То выполним ряд настроек.

Отредактируем конфигурационный файл

Укажем там настройку:

1.3. Если видим, что процесс запущен

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

То переходим к следующем пункту.

2. Проверим доступность процесса по порту, который он «слушает».

С сервера 1С выполним команду(в нашем случае имя сервера СУБД «1s-on-pg-1»):

Если доступ отсутствует – то мы увидим нечто подобное:

К причинам отсутствия доступа по данному порту можно отнести:

  • Блокировка брадмауэром или другими подобными программами;
  • Отсутствие доступа на уровне сети.

2.1. Проверим статус файерволла.

Если файерволл работает и блокирует порт 5432, то.

и отключим автозапуск.

Результат должен быть следующим:

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

настроим, открыв порт 5432.

«Породить новый процесс для соединения не удалось

Пример полного текста ошибки:

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

В процессе работы выдается ошибка

Изменим настройку в файле postgresql.conf

Читайте также:  Повысьте производительность своих веб-сайтов с помощью перенаправлений HTTP 302: руководство для начинающих

Данное число, должно быть примерно в 1.5 раза больше максимального количества пользователей.

    1. Перейдем в терминал psql.
    1. Через psql установим следующие параметры командой ALTER SYSTEM SET:

Database «base» does not exist

Пример полного текста ошибки:

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

При запуске базы данных выдается ошибка, которая говорит о том, что данная база не существует.

Проверим наименование базы данных и информационной базы. Сделать это можно в консоли администрирования 1С в свойствах базы.

Учтём, что Linux чувствителен к регистру(Base/base/BASE – для него это разные имена баз).

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

Внимание ВАЖНО: Читайте обновлённое руководство по установке сервера 1С под Linux в статье «От экспертов „1С‑Рарус“: Российские дистрибутивы Linux и установка в них сервера 1С» (январь 2023).

Информация о руководстве

Руководство рассчитано на технических специалистов с опытом установки операционных систем семейства Windows. После изучения материалов статьи вы сможете установить серверную часть 1С в ОС GNU/Linux для эксплуатации на больших и маленьких проектах.

В руководстве описывается установка и настройка серверной системы на базе ОС GNU/Linux, а именно дистрибутива Ubuntu 18.04 с сервером 1С:Предприятия 8.3. Система включает следующие компоненты: сервер 1С, сервер СУБД PostgreSQL, менеджер лицензий платформы, сервер лицензирования СЛК, веб-сервер Apache.

Данное руководство по установке 1С в Linux рассчитано под версии:

  • Ubuntu-18.04.-server-amd64.
  • PostgreSQL 1C 12.8.1 от компании PostgresPro.
  • Apache 2.4.
  • Сервера 1С 8.3.16.1973, 8.3.17.2306, 8.3.18.1616, 8.3.19.1264.

Но также может быть адаптировано и под другие версии.

Оглавление

  1. Термины
  2. Установка ОС Ubuntu (серверный вариант)
  3. Удаленное управление GNU/Linux сервером
  4. Установка и настройка сервера 1С
  5. Установка PostgreSQL для 1С
  6. Оптимизация параметров PostgreSQL
  7. Установка драйверов HASP
  8. Управление кластером 1С
  9. Установка и настройка веб-сервера
  10. Установка сервера лицензирования СЛК
  11. Заключение
  12. Ссылки

Термины

  • Пакеты (deb— пакет для ОС Debian/Ubuntu; rpm — пакет для ОС RedHat/Centos) — формат предоставления программного обеспечения в виде пакетов, содержащих помимо дистрибутива программного обеспечения, набор определённых метаданных, которые могут включать в себя полное имя пакета, номер версии, описание пакета, имя разработчика, контрольную сумму, зависимости с другими пакетами.
  • tar — формат файла архива, а также название традиционной для Unix (ru.wikipedia.org/wiki/Unix) программы для работы с такими архивами.
  • Локаль (locale) — региональные настройки.
  • Репозиторий, хранилище — место, где хранятся и поддерживаются какие-либо данные, необходимые для обновлений/установки приложений/пакетов.
  • Менеджер пакетов (apt — debian, rpm — RedHat) — система управления пакетами с программным обеспечением, занимается корректной установкой/удалением пакетов разрешает зависимости, а также ведет базу установленного ПО, например, rpm и dpkg, можно сказать, что это аналог msi из мира Windows.
  • Зависимости — одна из важнейших сфер деятельности менеджера пакетов. Менеджер пакетов отслеживает зависимости между пакетами, что значительно облегчает задачи администратора. Зависимости возникают в тех случаях, когда работоспособность ПО из одного пакета зависит от ПО, входящего в состав другого пакета.
  • sudo — команда для запуска приложений от имени другого пользователя, по умолчанию от пользователя root.

Установка ОС Ubuntu (серверный вариант)

Существует множество дистрибутивов ОС GNU/Linux, многие из них специализированные для каких-то конкретных задач, а есть и дистрибутивы общего назначения. С кратким описанием каждого и выбором по параметрам можно ознакомиться на сайте distrowatch.com.

Так как мы выбираем ОС для установки сервера «1С:Предприятие», то логично использовать ОС из списка поддерживаемых операционных систем (v8.1c.ru/tekhnologii/sistemnye-trebovaniya-1s-predpriyatiya-8/), а именно:

  • Astra Linux:
    • Common Edition, версии 1.11, 2.12.
    • Special Edition, версии 1.4, 1.5, 1.6.
  • CentOS 7.
  • Debian, версии 8 и 9.
  • Mint, версии 18 и 19.
  • Red Hat Enterprise Linux 7.
  • Ubuntu, версии 14.04 LTS, 16.04 LTS и 18.04 LTS.
  • Альт Линукс: версии 6.0 СПТ, 7.0 СПТ, Рабочая станция 7, Рабочая станция 8, Рабочая станция К 8, Сервер 7, Сервер 8, Образование 8, Альт Альт 8 СП.

Все поддерживаемые дистрибутивы можно сразу разделить на 2 категории.

RPM-based

Red Hat Enterprise Linux (RHEL)

Коммерческий дистрибутив от компании Red Hat, для использования в продуктивной среде необходима подписка, в целях разработки существует возможность бесплатного использования. 

CentOS

Ранее дистрибутив поддерживался сообществом и позиционировался как полностью бинарно совместимый с Red Hat Enterprise Linux для тех, кому не нужна корпоративная поддержка со стороны Red Hat, но, после того как CentOS ушла под крыло Red Hat, были пересмотрены цели дистрибутива, и теперь он будет развиваться как роллинг дистрибутив CentOS Stream, на базе срезов которого, будут формироваться сборки Red Hat Enterprise Linux.

Поддержка CentOS 8, вместо 10 лет, сократилась до 2,5 лет и будет прекращена 31 декабря 2021 года. Поддержку CentOS 7 сохранили до 24 июня 2024 года, т. к. фаза основной поддержки уже закончилась в 4 квартале 2020 года, а устранение критических уязвимостей уже не отнимает так много сил. На фоне таких веяний доверие к дистрибутиву было подорвано, появилось несколько дистрибутивов, заменяющих CentOS, но т. к. все они молодые, пока доверия к ним нет.

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

Роллинг — это постоянно обновляющаяся система без выпуска дистрибутивов с замороженными версиями софта.

Альт Линукс

Пакеты rpm, но менеджер пакетов apt, более присущий дистрибутивам на базе deb пакетов.

DEB-dased

Debian

Один из старейших дистрибутивов GNU/Linux на базе deb, в большинстве случаев deb‑based дистрибутивы основаны на его пакетной базе.

Ubuntu

Дистрибутив от компании Canonical, ввиду огромного сообщества и популяризации его силами компании, наверное, самый распространенный дистрибутив GNU/Linux.

Linux Mint

Дистрибутив, основанный на базе Ubuntu, в серверной части мало чем отличается от Ubuntu, т. к. использует репозитории Ubuntu.

Astra Linux

Российская производная Debian GNU/Linux.

Выбираем и устанавливаем Ubuntu 18.04 LTS

Мы будем использовать дистрибутив Ubuntu 18.04 LTS, потому что:

  • С CentOS происходят изменения и его дальнейшая судьба не совсем ясна.
  • Поддержка Debian 9 версии заканчивается в 2022 году.
  • Поддержка дистрибутивов Ubuntu расширена с 5 лет до 10 лет для серверных дистрибутивов.

Дистрибутив Ubuntu можно взять на официальном сайте (releases.ubuntu.com/18.04.5/). Для этого понадобится ISO-файл (releases.ubuntu.com/18.04.5/ubuntu-18.04.5-live-server-amd64.iso) серверного образа для платформы х64 PC (AMD64). Для развертывания сервера можно использовать как платформы виртуализации так и развертывать непосредственно на железе. Для виртуализации подойдет практически любая платформа:

  • Hyper-V (ru.wikipedia.org/wiki/Hyper-V),
  • VmWare ESXi (www.vmware.com/ru/products/esxi-and-esx.html),
  • Citrix XenServer (www.citrix.com/ru-ru/products/citrix-hypervisor/),
  • Proxmox (www.proxmox.com/en/proxmox-ve),
  • oVirt (www.ovirt.org),
  • и другие.

Сравнение систем виртуализации может оказаться очень обширным и выходит за рамки данной статьи.

Для установки дистрибутива на физический сервер можно воспользоваться разными способами. Например, подготовить загрузочную флешку с помощью Rufus (rufus.ie), использовать мультизагрузочные флешки EasyToBoot (easy2boot.xyz) или Ventoy (www.ventoy.net). Системы виртуализации могут подключать iso образ к виртуальному CD\DVD приводу.

После запуска с загрузочного носителя нас приветствует стандартное меню установки Ubuntu Server.

Выбираем 2 пункт, т. к. будет использовано более новое ядро Linux 5.4. от Ubuntu 20.04.

Установка ОС Ubuntu (серверный вариант)

Далее выбираем язык и раскладки клавиатуры системы которую будем устанавливать.

Установка ОС Ubuntu (серверный вариант)

Установка ОС Ubuntu (серверный вариант)

Установка ОС Ubuntu (серверный вариант)

Далее раздел настройки сети. Можно сразу настроить сеть, но иногда это сразу невозможно, или сервер будет переносится потом в другую сеть, поэтому оставим настройки по умолчанию, далее после установки поменяем их.

Установка ОС Ubuntu (серверный вариант)

Далее разметка диска. Рекомендуется выбрать пункт с созданием LVM (ru.wikipedia.org/wiki/LVM), что в последующем позволит более гибко управлять дисковым пространством.
Если у вас несколько дисков или аппаратных RAID (Redundant Array of Independent Disks) массивов, то можно настроить разметку диска вручную. Стоит создать отдельные разделы для /var и /home, и для /var использовать самый быстрый диск, следующий по скорости для /home и самый небольшой под корневой раздел /.

Установка ОС Ubuntu (серверный вариант)

Установка ОС Ubuntu (серверный вариант)

Далее создаем пользователя в системе, под которым и будем заходить на сервер. Это необходимо сделать, т. к. в Ubuntu по умолчанию root отключен, после установки можно будет создать еще пользователей.

Установка ОС Ubuntu (серверный вариант)

На следующем экране поставить галку для установки сервера OpenSSH, чтобы можно было управлять сервером удаленно. Если вы про нее забыли, ничего страшного, его можно будет установить позже.

Установка ОС Ubuntu (серверный вариант)

Далее предоставляется выбор установки пакетов SNAP, ни один из них нам не нужен для сервера 1С, поэтому ничего не выбираем.

Установка ОС Ubuntu (серверный вариант)

Далее происходит установка системы, после установки подсветится пункт Reboot Now, его и нажимаем для загрузки в установленную систему.

Установка ОС Ubuntu (серверный вариант)

Установка ОС Ubuntu (серверный вариант)

Если вы устанавливали систему в виртуальной машине, то скорее всего так же была установлена система cloud-init, которая предназначена для автоматической конфигурации виртуальной машины, но если вы её не используете, то проще всего ее удалить, т. к. она замедляет загрузку сервера.

sudo apt purge cloud-init
sudo rm -rf /etc/cloud/ && sudo rm -rf /var/lib/cloud/

Далее необходимо настроить временную зону, сгенерировать локали, настроить сеть, если это не было сделано во время установки.  Поставить минимум необходимого софта с которым удобнее работать.

Настраиваем временную зону

Посмотреть текущие настройки временной зоны:

timedatectl show

Посмотреть список зон:

timedatectl list-timezones

Установить временную зону:

timedatectl set-timezone Europe/Moscow

Настраиваем локали

sudo dpkg-reconfigure locales

Установка ОС Ubuntu (серверный вариант)

Напротив необходимых локалей ставим пробелом звездочку, после чего по tab переходим на пункт OK и сохраняем список.

Рекомендуется также добавить локаль ru_RU.CP1251, если на сервере планируется использовать программный продукт КриптоПРО для работы с электронным документооборотом из 1С:Предприятия.

Установка ОС Ubuntu (серверный вариант)

После выбора локали по умолчанию и подтверждения настроек будут подготовлены выбранные локали.

Внимание Важно выбрать локаль по умолчанию ru_RU.UTF-8, т. к. это повлияет на правильную установку PostgreSql.

Настройка сети

Для этого удаляем предыдущую конфигурацию что бы ничего нам не мешало:

sudo rm /etc/netplan/*

Копируем пример со статической конфигурацией:

sudo cp /usr/share/doc/netplan/examples/static.yaml /etc/netplan/00-static.yaml

Узнаем название интерфейса, т. к. имя нам понадобится для правки конфигурации:

ip link

Нам нужны физические Ethernet-интерфейсы, они могут иметь название, начинающееся на en. Расшифровка префиксов обозначения интерфейсов:

  • en — Ethernet,
  • ib — InfiniBand,
  • sl — serial line IP (slip),
  • wl — wlan,
  • ww — wwan,
  • lo — loopback.

И исправляем пример под свою конфигурацию:

sudo nano /etc/netplan/00-static.yaml

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

sudo netplan try

После применения конфигурации, проверим что адрес соответствует нашим настройкам:

ip addr

Установка ОС Ubuntu (серверный вариант)

После чего обновляем список пакетов и устанавливаем обновления на систему:

sudo apt update && sudo apt dist-upgrade -y

Устанавливаем софт для более удобной работы и мониторинга в реальном времени:

sudo apt install tmux mc htop iftop iotop

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

mc — удобный двухпанельный менеджер файлов наподобие Norton Commander.

htop — интерактивный диспетчер процессов.

iftop — утилита для мониторинга сетевой активности.

iotop — утилита для мониторинга дисковой активности.

После чего перезагружаем сервер и переходим к следующему этапу.

Удаленное управление GNU/Linux сервером

Если вы ранее не работали с системами GNU/Linux, а работали только с системами Windows, то навыки традиционных способов управления системами как RDP или RSAT не подойдут для этого. Но для управления GNU/Linux-серверами есть много различных инструментов и способов.

Читайте также:  Улучшите взаимодействие с пользователем с помощью межсайтовых файлов cookie: раскрыты лучшие практики

Например, web-панель webmin (www.webmin.com), позволяющая настроить различные аспекты операционной системы и служб. Или специализированные интерфейсы от программных продуктов, а также программы управления системой в различных графических оболочках (gnome, kde, xfce и другие).

В большинстве своем все эти программы занимаются одним и тем же, а именно правкой конфигурационных файлов, что иногда бывает достаточно удобно. В случае возникновения аварий или нештатных ситуаций может не хватить предлагаемых сервисов и потребуется использование прямого редактирования. Поэтому традиционно для администрирования GNU/Linux серверов используется текстовый терминал, для удаленного подключения к нему протокол Secure Shell — ssh, а для передачи файлов протоколы scp и sftp.

В современных операционных системах Windows, а именно Windows 10 начиная с релиза 1809 и Windows Server 2019 клиент ssh уже встроен и ничего дополнительно устанавливать не нужно. На GNU/Linux машинах клиент ssh предустановлен или установить его не составляет проблемы, т. к. он содержится в стандартных репозиториях системы.

Как в Windows, так и в GNU/Linux в качестве реализации протокола используется набор программ OpenSSH, поэтому далее будет рассматриваться только данный набор программ, использование которого будет одинаковым под разными операционными системами. Для более старых версий Windows рекомендуется использовать клиент putty (www.chiark.greenend.org.uk/~sgtatham/putty/latest.html), в состав которого входят клиенты для передачи файлов pscp и psftp, аналоги программ scp и sftp из пакета OpenSSH.

Если при установке ОС вы пропустили шаг установки сервера OpenSSH, это можно сделать командой:

sudo apt install ssh
systemctl status ssh

Удаленное управление GNU/Linux сервером

Если сервис не запущен или отключён, то включим его и запустим:

sudo systemctl enable ssh && systemctl start ssh

Теперь, когда разобрались с инструментами, подключимся к серверу и проверим что все работает.

На своей машине запустим терминал. В случае с Windows это может быть оболочка PowerShell или cmd, под GNU/Linux может быть любая оболочка, зачастую во многих дистрибутивах используется по умолчанию bash. Подключимся к серверу.

ssh [имя пользователя]@[имя или IP адрес узла]

При первом подключении ssh клиент выведет предупреждение о том, что отпечаток удаленного узла неизвестен и предложит добавить его в список известных узлов, набрав yes.

ssh rarus@192.168.12.112

Данный механизм предназначен для предотвращения подмены узла. Если внезапно для уже сохраненных узлов у вас появится такое предупреждение, то, возможно, кто-то пытается завладеть вашими учетными данными и стоит все перепроверить прежде, чем вводить свои пароли.

Так же и для упрощения и большей защищенности стоит использовать ключи.

Сгенерировать ключи просто, нужно запустить программу ssh-keygen:

ssh-keygen

Далее скопировать публичный ключ на сервер.

C клиента на Windows из cmd:

type %UserProfile%\.ssh\id_rsa.pub | ssh rarus@192.168.12.112 "cat > ~/.ssh/authorized_keys_tmp && umask 0177 && cat ~/.ssh/authorized_keys_tmp >> ~/.ssh/authorized_keys && rm ~/.ssh/authorized_keys_tmp"

или из PowerShell:

type env:UserProfile\.ssh\id_rsa.pub | ssh rarus@192.168.12.112 "cat > ~/.ssh/authorized_keys_tmp && umask 0177 && cat ~/.ssh/authorized_keys_tmp >> ~/.ssh/authorized_keys && rm ~/.ssh/authorized_keys_tmp"

C клиента на GNU/Linux:

ssh-copy-id rarus@192.168.12.112

После чего уже можно подключаться с использованием ключа

ssh rarus@192.168.12.112

Более подробно ознакомиться с документацией по OpenSSH можно на сайте проекта (openssh.com/manual.html).

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

Подключиться к своему прошлому сеансу можно командой tmux attach, а отключиться комбинацией клавиш ctrl+b d.

Установка и настройка сервера 1С

Сервер у нас подготовлен и мы научились к нему подключаться. Настало время установить на него сервера 1С:Предприятия.

Установка серверов 1С

Несколько серверов 1С установим непосредственно в операционную систему. Также возможно упаковать каждый дистрибутив в отдельный контейнер docker и запускать из контейнеров, но такой вариант установки будет рассмотрен в будущих статьях.

Будем устанавливать 4 платформы разных версий — последние на момент написания статьи — 8.3.16.1973, 8.3.17.2306, 8.3.18.1616, 8.3.19.1264.

Для начала скачиваем необходимые дистрибутивы с сайта «1С» (releases.1c.ru/project/Platform83) на свой компьютер. Т.к. мы используем сервер на платформе x86_64 на базе deb, то соответственно и дистрибутивы будем скачивать «Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем».

Откроем командную строку в каталоге со скачанными файлами. В нашем случае все дистрибутивы сохранены в каталог 1C-Server расположенном в папке Downloads. Копируем файлы дистрибутива на сервер командой:

scp -r ./1C-Server rarus@192.168.12.112:~/distr/

Далее подключаемся к серверу по ssh:

ssh rarus@192.168.12.112

Проверим, что файлы скопировались:

ls distr

Должен отобразиться список всех файлов, что мы скопировали. Если все нормально, приступим к установке пакетов необходимых для сервера 1С:

sudo apt install fontconfig unixodbc ttf-mscorefonts-installer libgsf-1-114

Теперь займемся дистрибутивами сервера 1С. Т. к. с 18 релиза поменялось расположение файлов сервера и клиента 1С, то стоит привести их всех к одному виду, поэтому перепакуем пакеты старых релизов 16 и 17 и приведем их по структуре к новым. Так же это даст нам возможность ставить несколько версий сервера 1С старых релизов из пакетов.

Скрипт для перепаковки:

Скачать

Сохраняем данный скрипт в файл ~/distr/1c-enterprise83-server-repack.sh и делаем его исполняемым:

chmod +x ~/distr/1c-enterprise83-server-repack.sh

Переходим в каталог со скопированными дистрибутивами для их распаковки:

cd distr

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

mkdir 8.3.16.1973
cd 8.3.16.1973
tar -xzvf ../deb64_8_3_16_1973.tar.gz

И дистрибутивы 8.3.16 и 8.3.17 перепаковываем под новый формат:

sudo ../1c-enterprise83-server-repack.sh amd64

После чего вместо старых deb пакетов в каталоге будут новые пакеты.

Сразу их и установим:

sudo dpkg -i ./*.deb

С остальными дистрибутивами поступаем так же, за исключением того, что новые релизы 18 и 19 перепаковывать не надо.

mkdir ../8.3.17.2306
cd ../8.3.17.2306
tar -xzvf ../deb64_8_3_17_2306.tar.gz
sudo ../1c-enterprise83-server-repack.sh amd64
sudo dpkg -i ./*.deb
mkdir ../8.3.18.1616
cd ../8.3.18.1616
tar -xzvf ../deb64_8_3_18_1616.tar.gz
sudo dpkg -i ./*.deb
mkdir 8.3.19.1264
cd ../8.3.19.1264
tar -xzvf ../deb64_8_3_19_1264.tar.gz
sudo dpkg -i ./*.deb

На этом установка сервера закончена, и можно переходить к настройке сервисов.

Настройка серверов 1С

Т. к. мы будем одновременно запускать несколько версий сервера 1С, то необходимо разнести сервера на разные порты, чтобы не было конфликта. По умолчанию сервер 1С использует порты 1540-1541,1560-1691.

Мы перепаковали старые дистрибутивы, поэтому будем все сервисы настраивать по новому.
Будем настраивать по следующей схеме:

  • 8.3.16.1973 — порты 1540-1541,1560-1691, имя службы srv1cv83-1540;
  • 8.3.17.2306 — порты 2540-2541,2560-2691, имя службы srv1cv83-2540;
  • 8.3.18.1616 — порты 3540-3541,3560-3691, имя службы srv1cv83-3540;
  • 8.3.19.1264 — порты 4540-4541,4560-4691, имя службы srv1cv83-4540.

Копируем init файл из каталога установленного сервиса в каталог /etc/init.d:

sudo cp /opt/1cv8/x86_64/8.3.16.1973/srv1cv83 /etc/init.d/srv1cv83-1540

И файл конфигурации в каталог /etc/default:

sudo cp /opt/1cv8/x86_64/8.3.16.1973/srv1cv83.conf /etc/default/srv1cv83-1540

После чего изменяем конфигурационный файл:

sudo nano /etc/default/srv1cv83-1540

Нужно раскомментировать и поменять значение следующих параметров:

SRV1CV8_PORT=1540
SRV1CV8_REGPORT=1541
SRV1CV8_RANGE=1560:1691
SRV1CV8_DEBUG=1
SRV1CV8_DATA=/home/usr1cv8/.1cv8/srv1cv83-1540

Чтобы системный менеджер увидел новые файлы, необходимо их перечитать:

sudo systemctl daemon-reload

Затем включить сервис и запустить его:

sudo systemctl enable srv1cv83-1540
sudo systemctl start srv1cv83-1540

И проверим статус сервера:

sudo systemctl status srv1cv83-1540

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

sudo cp /opt/1cv8/x86_64/8.3.17.2306/srv1cv83 /etc/init.d/srv1cv83-2540
sudo cp /opt/1cv8/x86_64/8.3.17.2306/srv1cv83.conf /etc/default/srv1cv83-2540
sudo cp /opt/1cv8/x86_64/8.3.18.1616/srv1cv83 /etc/init.d/srv1cv83-3540
sudo cp /opt/1cv8/x86_64/8.3.18.1616/srv1cv83.conf /etc/default/srv1cv83-3540
sudo cp /opt/1cv8/x86_64/8.3.19.1264/srv1cv83 /etc/init.d/srv1cv83-4540
sudo cp /opt/1cv8/x86_64/8.3.19.1264/srv1cv83.conf /etc/default/srv1cv83-4540

Далее будем править конфигурационные файлы для сервиса srv1cv83-2540:

sudo nano /etc/default/srv1cv83-2540

Нужно раскомментировать и поменять значение следующих параметров:

SRV1CV8_PORT=2540
SRV1CV8_REGPORT=2541
SRV1CV8_RANGE=2560:2691
SRV1CV8_DEBUG=1
SRV1CV8_DATA=/home/usr1cv8/.1cv8/srv1cv83-2540

Аналогично правим конфигурационные файлы остальных сервисов.

Приведем тут только измененные строки:

grep -v '^$\|^\s*\#' /etc/default/srv1cv83-3540

SRV1CV8_PORT=3540
SRV1CV8_REGPORT=3541
SRV1CV8_RANGE=3560:3691
SRV1CV8_DEBUG=1
SRV1CV8_DATA=/home/usr1cv8/.1cv8/srv1cv83-3540

grep -v '^$\|^\s*\#' /etc/default/srv1cv83-4540

SRV1CV8_PORT=4540
SRV1CV8_REGPORT=4541
SRV1CV8_RANGE=4560:4691
SRV1CV8_DEBUG=1
SRV1CV8_DATA=/home/usr1cv8/.1cv8/srv1cv83-4540

После опять перечитываем список сервисов, включаем и запускаем необходимые службы:

sudo systemctl daemon-reload
sudo systemctl enable srv1cv83-2540
sudo systemctl start srv1cv83-2540
sudo systemctl enable srv1cv83-3540
sudo systemctl start srv1cv83-3540
sudo systemctl enable srv1cv83-4540
sudo systemctl start srv1cv83-4540

Сервис Remote Administration Service (RAS)

Также, как и сервера 1С, распределим сервисы RAS по портам:

  • 8.3.16.1973 — порт 1545, имя службы ras-srv1cv83-1540;
  • 8.3.17.2306 — порт 2545, имя службы ras-srv1cv83-2540;
  • 8.3.18.1616 — порт 3545, имя службы ras-srv1cv83-3540;
  • 8.3.19.1264 — порт 4545, имя службы ras-srv1cv83-4540.

Компания «1С» не предоставляет init файлов для создания сервисов RAS, поэтому создадим их сами:

sudo nano /etc/systemd/system/ras-srv1cv83-1540.service

Со следующим содержимым:

[Unit]
Description=1C Remote Access Service srv1cv83-1540
After=syslog.target
After=network.target

Аналогичные файлы создаем и для оставшихся служб меняя пути к платформе и порты. Скопируем и исправим файлы служб с помошью sed:

sed -e "s/8.3.16.1973/8.3.17.2306/; s/1545/2545/; s/1540/2540/" /etc/systemd/system/ras-srv1cv83-1540.service | sudo tee /etc/systemd/system/ras-srv1cv83-2540.service
sed -e "s/8.3.16.1973/8.3.18.1616/; s/1545/3545/; s/1540/3540/" /etc/systemd/system/ras-srv1cv83-1540.service | sudo tee /etc/systemd/system/ras-srv1cv83-3540.service
sed -e "s/8.3.16.1973/8.3.19.1264/; s/1545/4545/; s/1540/4540/" /etc/systemd/system/ras-srv1cv83-1540.service | sudo tee /etc/systemd/system/ras-srv1cv83-4540.service

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

sudo systemctl daemon-reload

for i in {1..4}; do sudo systemctl enable ras-srv1cv83-$i\540; done
for i in {1..4}; do sudo systemctl start ras-srv1cv83-$i\540; done

Проверяем статус запущенных служб:

for i in {1..4}; do sudo systemctl status ras-srv1cv83-$i\540; done

Установка и настройка сервера 1С

/opt/1cv8/x86_64/8.3.16.1973/rac cluster list localhost:1545

Установка и настройка сервера 1С

Утилита rac не так сильно привязана к версии сервера и поэтому можно с помощью неё же и проверить и остальные кластеры:

/opt/1cv8/x86_64/8.3.16.1973/rac cluster list localhost:2545
/opt/1cv8/x86_64/8.3.16.1973/rac cluster list localhost:3545
/opt/1cv8/x86_64/8.3.16.1973/rac cluster list localhost:4545

Сервер хранилища конфигураций

Настройка сервера хранилища конфигураций не сильно отличается от настройки сервиса  RAS. Юнит файл для запуска будет примерно таким же, отличаться только названием и командой запуска сервиса, но тут стоит поменять схему выбора портов для хранилищ. Тут подходим к выбору порта от версии платформ и, чтобы не пересекаться с уже запущенными сервисами, будем использовать порты выше 10000. Соответственно схема выбора порта будет 1xxxx, где xxxx — последние 4 цифры билда платформы:

  • 8.3.16.1973 — порт 11973, имя службы crserver-16.1973.
  • 8.3.17.2306 — порт 12306, имя службы crserver-17.2306.
  • 8.3.18.1616 — порт 11616, имя службы crserver-18.1616.
  • 8.3.19.1264 — порт 11264, имя службы crserver-19.1264.

Каталог с хранилищами будет один для всех, и разместим его в каталоге /var/opt/1C/crserver.

Для начала создадим каталог для хранилища:

sudo mkdir -p /var/opt/1C/crserver

И изменим владельца каталога:

sudo chown usr1cv8:grp1cv8 /var/opt/1C/crserver

Создаем Unit файл для сервиса:

sudo nano /etc/systemd/system/crserver-16.1973.service

Так же копируем Unit файлы под другие сервисы с помощью sed заменяем параметры:

sed -e "s/8.3.16.1973/8.3.17.2306/; s/11973/12306/" /etc/systemd/system/crserver-16.1973.service | sudo tee /etc/systemd/system/crserver-17.2306.service
sed -e "s/8.3.16.1973/8.3.18.1616/; s/11973/11616/" /etc/systemd/system/crserver-16.1973.service | sudo tee /etc/systemd/system/crserver-18.1616.service
sed -e "s/8.3.16.1973/8.3.19.1264/; s/11973/11264/" /etc/systemd/system/crserver-16.1973.service | sudo tee /etc/systemd/system/crserver-19.1264.service

После перечитываем списки сервисов, включаем и запускаем их:

sudo systemctl daemon-reload
for f in /etc/systemd/system/crserver-*; do sudo systemctl enable ${f##*/} ; done
for f in /etc/systemd/system/crserver-*; do sudo systemctl start ${f##*/} ; done

Так же проверяем статус запуска:

for f in /etc/systemd/system/crserver-*; do sudo systemctl status ${f##*/} ; done

Установка и настройка сервера 1С

На этом установка и настройка сервисов 1С закончены.

Оцените статью
Хостинги