Установка сервера 1С + PostgreSQL на Linux Ubuntu Server 18.04

Обновлено Обновлено: Опубликовано Опубликовано:

Можно значительно сократить затраты на программное обеспечение, установив сервер 1С на Linux. В данной инструкции мы рассмотрим процесс настройки сервера 1C 8.3 на Ubuntu 18.04 с сервером баз данных (не файловый вариант). В качестве СУБД мы будем использовать PostgreSQL (на примере версий 9.6 и 10).

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

Установка PostgreSQL

Как было сказано выше, мы задействуем СУБД PostgreSQL. Для 1С требуется специальная сборка postgresql, которая может быть установлена из специального дистрибутива или от поставщика 1С. Рассмотрим установку как версии 9.6, так и 10.

Подготовка к установке СУБД

Настраиваем локаль, введя команду:

dpkg-reconfigure locales

В открывшемся окне выбираем локаль ru_RU.UTF-8 UTF-8:

Настройка локали в Ubuntu

Нажимаем OK. В следующем окне также выбираем ru_RU.UTF-8:

Настройка локали в Ubuntu

... и нажимаем OK.

* Если мы устанавливали русскую версию Linux, возможно, данные настройки уже будут выставлены. Так или иначе, стоит в этом убедиться.

Установка PostgreSQL 9.6 из репозитория

PostgreSQL 9.6 для 1С можно установить из репозитория. Для начала, добавим его:

vi /etc/apt/sources.list.d/1c.postgrespro.list

deb http://1c.postgrespro.ru/deb/ bionic main

Установим цифровую подпись для репозитория:

wget --no-verbose -O - http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | sudo apt-key add

Обновляем списки пакетов:

apt-get update

Устанавливаем библиотеку libpq5 версии 9.6, собранной для postgresql под 1С: 

apt-get install libpq5=9.6.*.1C.bionic

Выполняем установку самого PostgreSQL:

apt-get install postgresql-pro-1c-9.6

Разрешаем автозапуск сервиса баз данных и стартуем его:

systemctl enable postgresql --now

Задаем пароль для пользователя postgres:

sudo -u postgres psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'password'"

* данную команду мы запускаем под пользователем postgres; мы задаем пароль password для postgresql-пользователя postgres.

Установка PostgreSQL 10 от 1С

Сначала устанавливаем компоненты, необходимые для установки СУБД из пакетов.

wget http://archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu55_55.1-7_amd64.deb

dpkg -i libicu55_55.1-7_amd64.deb

libicu55 — Unicode-компоненты для интернационализации.

Теперь устанавливаем postgresql-common:

apt-get install postgresql-common

postgresql-common позволяет одновременную установку нескольких версий PostgreSQL.

Переходим к установки самой СУБД. 10-я версия PostgreSQL может быть установлена из дистрибутива, полученного от 1С (в личном кабинете или от поставщика). Архив с дистрибутивом postgresql, в свою очередь, содержит архивы под различные операционные системы — нам нужен файл с окончанием в названии ...amd64_deb.tar.bz2

* в данном примере взят файл для 64-х разрядной версии операционной системы. Пакет deb (для систем на базе Debian).

Копируем данный файл на сервер (например, с помощью программы WinSCP) и распаковываем его:

tar jxvf PostgreSQL_10.10-4.1C_postgresql_10.10_4.1C_amd64_deb.tar.bz2

* где имя PostgreSQL_10.10-4.1C_postgresql_10.10_4.1C будет зависеть от версии устанавливаемого Postgresql.

Выполним установку пакетов из папки ...amd64_deb...:

dpkg -i postgresql-10.10-4.1C_amd64_deb/*.deb

Инициализируем СУБД:

sudo -u postgres /usr/lib/postgresql/10/bin/initdb -D /var/lib/postgresql/10/main --locale=ru_RU.UTF-8

* при инициализации для нас важно задать русскую локаль. В противном случае мы можем получить ошибку «Порядок сортировки не поддерживается базой данных».

Разрешаем автозапуск сервиса баз данных и перезапускаем его:

systemctl enable postgresql

systemctl restart postgresql

Задаем пароль для пользователя postgres:

sudo -u postgres psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'password'"

* данную команду мы запускаем под пользователем postgres; мы задаем пароль password для postgresql-пользователя postgres.

Блокировка обновлений PostgreSQL

Так как для 1С устанавливается специальная сборка СУБД, необходимо запретить ее обновление. В противном случае будет установлен обычныйpostgresql, что приведет к потери работоспособности сервера.

Смотрим версию установленного сервера баз данных:

dpkg -l | grep postgresql

Пример ответа:

ii  postgresql-10            10.10-4.1C ...
ii  postgresql-client-10     10.10-4.1C ...
...

И так, у нас установлена версия 10.10-4.1C. Вводим:

dpkg -l | grep 10.10-4.1C | awk -F' ' '{print $2}' | xargs apt-mark hold

* где 10.10-4.1C — версия установленного PostgreSQL. Команда apt-mark hold блокируем установку обновлений для пакетов версии 10.10-4.1C.

Также добавим:

apt-mark hold postgresql-common postgresql-client-common

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

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

И так, выполним установку следующих пакетов:

apt-get install imagemagick unixodbc ttf-mscorefonts-installer

* где:

  • imagemagick — набор программ для чтения и редактирования графических файлов.
  • unixodbc — диспетчер драйверов для ODBC.
  • ttf-mscorefonts-installer — набор шрифтов Microsoft.

В процессе установки система запросит принять лицензионное соглашение — выбираем Yes.

Копируем на сервер архив с дистрибутивом для 1С, который был загружен с сайта 1С или получен от поставщика. Распаковываем архив командой:

tar zxvf 8.3.16.1148_deb64.tar.gz

* где 8.3.16.1148_deb64.tar.gz — имя архива с 1С версии 8.3.16. В архиве пакеты deb (для Linux на основе Debian) для 64-х разрядной системы.

Устанавливаем все пакеты, которые находились в архиве командой:

dpkg -i 1c-enterprise*.deb

Разрешаем автозапуск сервиса 1С и стартуем его:

systemctl enable srv1cv83

systemctl start srv1cv83

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

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

Выбираем компонент Администрирование сервера 1С:Предприятие

Устанавливаем клиента 1С. После установки в меню пуск находим ссылку Регистрация утилиты администрирования серверов (версия) и запускаем ее от имени администратора:

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

Теперь запускаем утилиту Администрирование серверов 1С Предприятия:

Запуск регистрации утилиты администрирование серверов 1С Предприятия

В открывшемся окне кликаем правой кнопкой мыши по Central 1C:Enterprise 8.3 servers - выбираем Создать - Центральный сервер 1С:Предприятие 8.3:

Подключаемся к серверу 1С в консоли управления сервером 1С

Пишем имя сервера 1С или его IP-адрес:

Прописываем настройки для подключения к серверу 1С

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

Создание новой информационной базы

Заполняем параметры для создания новой базы:

Заполняем настройки для создания информационной базы

* в данном примере нами были заполнены:

  • Имя — задаем произвольное имя для подключения к базе.
  • Сервер баз данных — имя или IP-адрес базы. Задаем localhost, так как в нашем случае сервер 1С и сервер баз данных находятся на одном сервере.
  • Тип СУБД — выбираем PostgreSQL.
  • База данных — имя базы данных.
  • Пользователь сервера БД — пользователь, под которым будет выполняться подключение к базе. В нашем примере postgres.
  • Пароль пользователя БД — пароль для базы, который мы задали после установки СУБД.
  • Создать базу данных в случае ее отсутствия — ставим галочку, чтобы база была создана.

Если мы получим ошибку Этот хост неизвестен:

Ошибка «Этот хост неизвестен»

... необходимо убедиться, что имя сервера разрешается в IP-адрес. Для этого необходимо его добавить в локальную DNS или файл hosts.

База должна создастся. Теперь запускаем 1С клиент и добавляем новую базу - при добавлении выбираем Добавление в список существующей информационной базы:

Добавляем существующую базу в 1С

Указываем произвольное имя информационной базы, а также выбираем тип расположения базы На сервере 1С:Предприятия:

Задаем настройки при создании новой информационной базы в 1С

Нажимаем Далее и Готово. Запускаем конфигуратор, загружаем базу и пользуемся.

Миграция базы на PostgreSQL

В случае, если это не первая установка и у нас уже есть база, ее нужно перенести на новый сервер. Рассмотрим 2 варианта — база была на другом сервере PostgreSQL и универсальный (файловый вариант или другая СУБД).

С PostgreSQL на PostgreSQL

В данном случае процесс переноса заключается в создании дампа (backup) и его восстановления на новом сервере (restore). Необходимо учесть, что для корректного переноса данных, версии 1С должны совпадать.

Есть несколько инструментов по созданию резервных копий PostgreSQL и их восстановлению. Их описание выходит за рамки данной статьи — подробнее читайте инструкцию Резервное копирование PostgreSQL.

Универсальный способ миграции на PostgreSQL

Данный способ также подойдет и для миграции с PostgreSQL на PostgreSQL. Для начала, открываем нашу базу в конфигураторе на старом 1С - кликаем по Администрирование - Выгрузить информационную базу:

Выгружаем информационную базу

Выбираем путь для сохранения файла. Ждем окончания выгрузки и переносим полученный файл на компьютер с толстым клиентом 1С (если для нового сервера мы используем другой компьютер с 1С).

Открываем конфигуратор для созданной в PostgreSQL базы - кликаем Администрирование - Загрузить информационную базу:

Загружаем информационную базу

... и выбираем выгруженный ранее файл. Дожидаемся его загрузки - система потребует перезапустить 1С - соглашаемся. Ждем новой загрузки. После можно пользоваться базой 1С на новом сервере.

Веб-публикации

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

Установка и запуск Apache

Первым делом, устанавливаем веб-сервер apache:

apt-get install apache2

Разрешаем автозапуск веб-сервера и стартуем сам сервис:

systemctl enable apache2

systemctl start apache2

Открываем браузер и переходим по адресу http://<IP-адрес сервера 1С> — мы должны увидеть стартовую страницу Apache:

Стартовая страница Apache

Публикация 1С на веб-сервере

Публикация базы выполняется с помощью скрипта webinst, который устанавливается с сервером. Для простоты, мы опубликуем базу в корневую директорию /var/www/html, но при желании, можно настроить виртуальные домены.

И так, создадим каталог, в который опубликуем нашу базу:

mkdir /var/www/html/test

Переходим в каталог с установленным 1С:

cd /opt/1C/v8.3/x86_64/

Заускаем скрипт для публикации базы:

./webinst -apache24 -wsdir test -dir /var/www/html/test -connstr "Srvr=192.168.1.11;Ref=test;" -confPath /etc/apache2/apache2.conf

* где apache24 — версия установленного apache; test — имя нашей базы, которую мы создали ранее; /var/www/html/test — путь до каталога на сервере, в котором будет опубликована база; 192.168.1.11 — IP-адрес сервера 1С; Ref=test — имя базы в СУБД; /etc/apache2/apache2.conf — путь до конфигурационного файла apache.

Мы должны увидеть:

Publication successful

Перезапускаем апач:

systemctl restart apache2

Открываем браузер и переходим по адресу http://<IP-адрес сервера 1С>/test/, где test — каталог в каталоге /var/www/html, куда мы опубликовали базу.

# Серверы # Базы данных # Ubuntu # 1С
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет