Postgresql linux 1c: Установка 1С на Linux (Debian) + PostgreSQL

Содержание

Как установить 1С на ubuntu+postgresql

Совмещая использование свободного ПО с богатым функционалом коммерческих продуктов, можно в значительной мере сократить затраты на внедрении и дальнейшую поддержку информационной инфраструктуры. В этой статье пойдет речь об установке сервера 1С:Предприятия на ОС Ubuntu в связке с СУБД PostgreSQL.

Подключается к нашему серверу с установленной ОС Ubuntu, будем используя клиент Putty. Для начала, на сервер необходимо добавить локали.

Генерируем английскую локаль:

sudo locale-gen en_US

Генерируем русскую локаль:

sudo locale-gen ru_RU

Устанавливаем по умолчанию русскую локаль:

sudo update-locale LANG=ru_RU.UTF8

Выполняем переконфигурацию локали:

sudo dpkg-reconfigure locales

Рисунок 1 — Конфигурация локали

Затем следует скачать пакет с библиотекой libicu:

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

Устанавливаем командой:

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

Проверяем наличие и состав пакета postgresql-common:

apt search postgresql-common

Устанавливаем пакет postgresql-common:

sudo apt install postgresql-common

Следом необходимо установить пакет libllvm6.0:

sudo apt-get install libllvm6.0

Далее скачиваем с официального сайта 1С все необходимые deb-файлы для нашей ОС(в данном случае для 64-битной), и кладем их к примеру в каталог /tmp и устанавливаем в следующей последовательности:

sudo dpkg -i /tmp/libpq5_11.10-5.1C_amd64.deb
sudo dpkg -i /tmp/postgresql-client-11_11.10-5.1C_amd64.deb
sudo dpkg -i /tmp/postgresql-11_11.10-5.1C_amd64.deb

После этого инициализируем СУБД:

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

Запустим службу СУБД PostgreSQL:

sudo systemctl start postgresql

И проверить её состояние:

systemctl status postgresql
sudo dpkg-reconfigure locales

Рисунок 2 — Проверка службы СУБД

Отредактируем файл pg_hba. conf для того, чтобы клиенты с других машин имели возможность подключаться к БД, меняем в строке “local all postgres peer” настройку “peer” на “trust”:

sudo vi /etc/postgresql/11/main/pg_hba.conf

Рисунок 3 — Настройка PostgreSQL

Перезапускаем службу СУБД:

sudo systemctl restart postgresql

И включаем её в автозагрузку:

systemctl enable postgresql

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

sudo apt-get install imagemagick unixodbc ttf-mscorefonts-installer

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

dpkg -i 1c-enterprise*.deb

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

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

Запустить службу сервера 1С:

sudo systemctl start srv1cv83

Проверить факт старта сервиса можно следующей командой:

sudo /etc/init. d/srv1cv83 status

Затем можно добавить службу 1С сервера в автозагрузку:

sudo systemctl enable srv1cv83

На этом установка сервера 1С в связке с ОС Ubuntu и СУБД PostgreSQL завершена. Есть вопросы? Пишите в наш чат!

Установка 1С + PostgreSQL на Ubuntu Server

Популярность Linux в качестве системы для работы пользовательских сервисов набирает обороты. Я расскажу, как установить и настроить сервер 1С на Ubuntu с использованием БД PostgreSQL. Традиционно подобные установки принято делать на Windows и MSSQL сервере в качестве БД. Но по стоимости получаются существенные затраты, которые можно уменьшить, не сильно потеряв в функционале.

Содержание

Все дальнейшие действия я буду выполнять в Ubuntu 20.04 LTS. Если у вас еще нет своего сервера, то воспользуйтесь моим руководством по установке ubuntu server. Почему я выбрал именно эту систему можно узнать в моей статье с обзором и сравнением ubuntu.

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

Свою настройку сервера 1С на Linux начнём с установки 1С:Предприятие. Установочные пакеты можно загрузить с сайта https://releases.1c.ru. Для этого у вас должна быть активна учётная запись. В принципе, файлы можно скачать где-то в интернете и без неё, но так как сервер 1С нужно регулярно обновлять, без своей учётной записи будет неудобно. Загрузить нужно файл Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем.

Скопируйте файл на Ubuntu Server. Но перед тем, как начать установку 1С, выполним некоторые подготовительные действия в системе. Нам нужно установить шрифты mscorefonts.

sudo apt install ttf-mscorefonts-installer fontconfig

Во время установки шрифтов, идёт обращение к различным внешним серверам для загрузки файлов. Бывает так, что какое-то соединение отваливается по таймауту и не понятно, выполнилась ли установка шрифтов корректно. В этом случае установку mscorefonts можно перезапустить, чтобы получить гарантированно положительный результат:

sudo apt reinstall ttf-mscorefonts-installer

Проверить, всё ли прошло удачно, можно следующей командой:

sudo fc-cache -f -v

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

# sudo apt install imagemagick curl

Для корректной работы сервера 1С на Ubuntu необходимо настроить кодировку локали на ru_RU. UTF-8 UTF-8. Делается это с помощью утилиты dpkg-reconfigure.

# sudo dpkg-reconfigure locales

Её же указываем в качестве Default. Перезайдите в систему, чтобы применилась новая локаль. Проверить, применилась ли русская локаль, можно просто запустив Midnight Commander. Всё управление будет на русском языке.

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

mkdir 1csrv && mv deb64_8_3_19_1264.tar.gz 1csrv && cd 1csrv
tar -xzvf deb64_8_3_19_1264.tar.gz

У вас должен быть стандартный набор пакетов:

Устанавливаем необходимые нам пакеты 1С сервера:

sudo dpkg -i 1c-enterprise-8.3.19.1264-common_8.3.19-1264_amd64.deb 1c-enterprise-8.3.19.1264-server_8.3.19-1264_amd64.deb 1c-enterprise-8.3.19.1264-ws_8.3.19-1264_amd64.deb

На момент моей установки, актуальная версия 1с была 8.3.19.1264. Не забудьте заменить её на свою. Копируем вручную конфиг для управления службой srv1cv83. Почему-то никто не удосужился написать юнит для systemd, что выглядит странно.

sudo ln -s /opt/1cv8/x86_64/8.3.19.1264/srv1cv83 /etc/init.d/srv1cv83
sudo systemctl daemon-reload

Запускаем сервер 1С и добавляем его в автозагрузку.

sudo systemctl start srv1cv83
sudo systemctl enable srv1cv83

Убедимся, что сервис успешно запущен:

sudo systemctl status srv1cv83

На всякий случай можно проверить, слушает ли служба tcp порты.

sudo apt install net-tools
sudo netstat -tulnp

На вид всё в порядке. Сервер 1С успешно установлен на Ubuntu, сконфигурирован и запущен. Готов принимать подключения от клиентов. Далее необходимо заняться настройкой firewall. Так как я не знаю, используете ли вы его и какой конкретно, то не буду давать команд на управление правилами или отключение. Эта тема выходит за рамки данной статьи. Если делаете тестовую установку, то firewall можно просто отключить.

Установка PostgreSQL для 1С

Для работы с 1С лучше всего себя зарекомендовала сборка от компании PostgreSQL Pro, поэтому будем ставить именно её. На момент написания статьи, актуальной была версия PostgreSQL 13. Версия БД для 1С отличается от дефолтного дистрибутива наличием некоторых патчей, специфичных именно для приложения 1С.

Начинаем установку postgresql в ubuntu server. Первым делом подключим репозиторий.

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

Устанавливаем PostgreSQL для 1С сервера:

sudo apt-get install postgrespro-1c-13

Запускаем службу БД и убеждаемся, что всё в порядке.

sudo systemctl start postgrespro-1c-13
sudo systemctl enable postgrespro-1c-13
sudo systemctl status postgrespro-1c-13

Базовая установка сервера баз данных для 1С завершена. Переходим к небольшой настройке PostgreSQL. Нам необходимо задать пароль пользователя, под которым будет подключаться сервер 1С к БД.

sudo -u postgres /usr/bin/psql -U postgres -c "alter user postgres with password 'parol';"
postgresпользователь БД, которого будем использовать в консоли 1С
parolпароль пользователя postgres

Имеет смысл перенести хранение временной статистики базы данных с жесткого диска в оперативную память (tmpfs ). Это снизит расход ресурса ssd и немного увеличит производительность. Данное действие не костыль и не грязный хак. Подобную рекомендацию можно увидеть в документации для postgres от команды postgresql pro.

sudo mkdir /var/lib/pgpro/stats_temp
sudo chown postgres:postgres /var/lib/pgpro/stats_temp

Добавляем tmpfs  диск в /etc/fstab.

tmpfs /var/lib/pgpro/stats_temp tmpfs size=256M,uid=postgres,gid=postgres 0 0

Пробуем подмонтировать этот диск.

sudo mount /var/lib/pgpro/stats_temp

Проверяем, что получилось:

sudo df -h | grep stats_temp
tmpfs           256M     0  256M   0% /var/lib/pgpro/stats_temp

Всё в порядке, tmpfs диск подключен. Теперь надо изменить параметр в конфигурационном файле postgresql, который отвечает за настройку каталога для хранения временной статистики. Открываем файл /var/lib/pgpro/1c-13/data/postgresql.conf и вносим изменение:

stats_temp_directory = '/var/lib/pgpro/stats_temp'

Перезапускаем службу postgrespro-1c-13 для того, чтобы применить изменение.

sudo systemctl restart postgrespro-1c-13

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

sudo ls -l /var/lib/pgpro/stats_temp
total 12
-rw------- 1 postgres postgres 1244 сен  8 12:24 db_0.stat
-rw------- 1 postgres postgres 2129 сен  8 12:24 db_13416.stat
-rw------- 1 postgres postgres 1151 сен  8 12:24 global.stat

На этом настройка PostgreSQL для работы с 1С завершена. Можно переходить к созданию баз и тестирования всей связки.

Как создать базу 1С в Ubuntu?

Для создания базы данных можно воспользоваться консолью управления сервером 1С, которая входит в состав Технологический платформы. Последняя, в свою очередь, есть только под Windows. Вам нужно опять зайти на https://releases.1c.ru и скачать технологическую платформу той же версии, что и сервер.

В этой платформе нас будет интересовать компонент Администрирование сервера 1С. Проверьте, чтобы он точно был выбран.

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

"C:\Program Files\1cv8\8.3.19.1264\bin\RegMSC.cmd"

Так же, чтобы без ошибок взаимодействовать с сервером 1С на Ubuntu, необходимо обращаться к нему по имени, а не ip адресу. Для этого либо создайте dns запись для ubuntu server, либо добавьте статическую запись в файл hosts вашей системы. В моем случае сервер называется ubuntu и имеет ip адрес 10.20.1.16. Добавляю в C:\Windows\System32\drivers\etc\hosts запись:

10.20.1.16 ubuntu

Убедитесь, что вы можете нормально пинговать этот сервер, обращаясь к нему по имени.  После этого в меню Пуск запустите оснастку Администрирование серверов 1С Предприятия x86-64. Ярлык будет в папке 1С Предприятие 8 (x86-64). В оснастке подключите ваш сервер 1С по имени компьютера.

Теперь можно создать первую информационную базу 1С. Перейдите в соответствующий раздел и добавьте.

Всё, новая база 1С на linux сервере создана. Теперь можно взять любую платформу и подключиться. Для этого у вас должна быть соответствующая клиентская лицензия на рабочем месте.

На этом базовая настройка сервера 1С и базы данных Postgresql на Ubuntu Server закончена. Можно создавать базы и подключаться пользователям для работы. Далее я затрону еще несколько тем, которые могут быть актуальны для тех, кто будет использовать подобную связку.

Установка HASP Licence manager в Ubuntu

В последнее время преимущественно используются программные лицензии 1С. Аппаратные в основном остались там, где ключи приобретались в прошлом. Тем не менее, в рамках данной статьи имеет смысл рассмотреть установку и настройку HASP Licence manager на Ubuntu для поддержки лицензионных ключей 1С на USB токенах.

Первым делом воткните usb ключ в сервер или пробросьте в виртуальную машину, если сервер 1С работает на ней. И посмотрите, появился ли он в системе:

sudo lsusb | grep -i hasp

У вас будет устройство, где в имени присутствует упоминание Alladin или HASP dongle. Если его нет, то дальнейшие настройки не имеют смысла. По какой-то причине, система не видит воткнутый ключ. Надо с этим разбираться.

Загрузите пакеты вот из этого репозитория: https://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Ubuntu/18.04/ Не обращайте внимания, что версия Ubuntu не совпадает. Это не критично.

wget https://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Ubuntu/18.04/haspd-modules_7.90-eter2ubuntu_amd64.deb
wget https://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Ubuntu/18.04/haspd_7.90-eter2ubuntu_amd64.deb

Установите эти пакеты и парочку дополнительных, от которых они зависят.

sudo apt install make libc6-i386
sudo dpkg -i haspd*.deb

Запускаем сервис haspd и сразу проверяем, запустился ли он и слушает ли рабочие tcp порты.

sudo systemctl start haspd
sudo netstat -tulnp | grep hasp

HASP заработал и готов обслуживать клиентов, выдавать лицензии. В завершении настройки, добавим его в автозагрузку системы:

sudo systemctl enable haspd

На этом настройка hasp в ubuntu завершена. Переходим к следующему разделу.

Настройка бэкапа баз 1С в Ubuntu

Рассмотрим важную часть работы с сервером 1С — бэкап баз. В общем случае его можно делать с помощью обычных sql дампов, которые можно снимать утилитой pg_dump, входящей в состав postgresql.

В предыдущем разделе мы создали тестовую базу данных basa1. Посмотрим, появилась ли она в списке баз postgresql:

sudo -u postgres psql -U postgres -l

Выполним бэкап этой базы 1С с помощью pg_dump. И сразу же сожмём его современным архиватором zstd, предварительно его установив.

sudo apt install zstd
sudo mkdir /mnt/backup
sudo -u postgres /usr/bin/pg_dump -U postgres basa1 | zstd > /mnt/backup/basa1.sql.zst

Для того, чтобы восстановить базу данных 1С из sql дампа, нужно воспользоваться стандартной процедурой загрузки данных в БД. Перед этим создадим еще одну базу, куда восстановим бэкап 1с.

sudo unzstd /mnt/backup/basa1.sql. zst
sudo -u postgres /usr/bin/createdb --username postgres -T template0 basa1-restored
sudo -u postgres /usr/bin/psql -U postgres basa1-restored < /mnt/backup/basa1.sql

Восстановление базы 1С из архива прошло успешно. Не забудьте настроить не только локальный бэкап баз 1С, но их их копирование на другое хранилище. Этот вопрос не будем разбирать в рамках данной статьи.

Регулярное обслуживание баз 1С

Рекомендуется регулярно выполнять как минимум две операции с базами 1С на сервере с PostgreSQL.

  1. Очистка базы данных с помощью vacuumdb.
  2. Перестроение индексов с помощью reindexdb.

Ничего сложного в данных операциях нет. Все выполняется штатными средствами postgresql в одну команду. Единственное, что нужно учесть — перестроение индексов ресурсоемкий процесс. Ко всему прочему он еще и длится долго. Так что выполнять операцию нужно только когда нет большой нагрузки на базу.

Чистка базы данных 1С средствами PostgreSQL:

sudo -u postgres /usr/bin/vacuumdb --full --analyze --username postgres --dbname basa1

Перестройка индексов:

sudo -u postgres /usr/bin/reindexdb --username postgres --dbname basa1

Для того, чтобы выполнять эти задания регулярно, добавьте их в crontab:

crontab -e
30 0 * * * sudo -u postgres /usr/bin/vacuumdb --full --analyze --username postgres --dbname basa1
30 1 * * * sudo -u postgres /usr/bin/reindexdb --username postgres --dbname baza1

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

Выгрузка баз 1С в dt из командной строки

Частенько бывает нужно сделать выгрузку базы 1С в dt файл. Это можно сделать прямо из консоли ubuntu server с помощью автономного сервера 1С. При этом даже пользователей не придётся выгонять из базы.

sudo /opt/1cv8/x86_64/8.3.19.1264/ibcmd infobase dump --db-server=localhost --dbms=postgresql --db-name=basa1 --db-user=postgres --db-pwd=parol /mnt/backup/basa1.dt

Так же через консоль можно загрузить данные в базу 1С из dt файла. К примеру, загрузим предыдущую выгрузку в новую базу — basa2:

sudo /opt/1cv8/x86_64/8.3.19.1264/ibcmd infobase create --db-server=localhost --dbms=postgresql --db-name=basa2 --db-user=postgres --db-pwd=parol --create-database --restore=/mnt/backup/basa1.dt

С помощью автономного сервера можно проверить базу 1С на ошибки. Опять же, прямо в консоли linux:

sudo /opt/1cv8/x86_64/8.3.19.1264/ibcmd infobase config check --db-server=localhost --dbms=postgresql --db-name=basa2 --db-user=postgres --db-pwd=parol

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

Публикация баз 1с в веб на Ubuntu

Завершая свою статью по настройке баз 1С в Ubuntu, покажу, как их опубликовать. Для этого нам надо установить web сервер Apache:

sudo apt install apache2

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

sudo mkdir -p /var/www/basa1
sudo chown -R www-data:www-data /var/www/basa1

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

sudo /opt/1cv8/x86_64/8.3.19.1264/webinst -publish -apache24 -wsdir basa1 -dir /var/www/basa1 -connstr "Srvr=ubuntu;Ref=basa1;" -confpath /etc/apache2/apache2.conf

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

sudo systemctl restart apache2
sudo systemctl enable apache2

Открываем в браузере http://10.20.1.16/basa1/ Вы должны попасть в свою опубликованную базу 1С. Подключаться к ней можно как через браузер, так и платформу. В платформе при добавлении базы надо указать, что она на веб севере и ввести путь к нему.

Не забывайте про клиентские лицензии 1С на опубликованные базы. Они должны быть установлены на сервер, где выполнена публикация.

Заключение

Я подробно разобрал все этапы настройки сервера 1С на Ubuntu с использованием БД PostgreSQL. Получилось полностью законченное руководство для внедрения сервера в промышленную эксплуатацию. Да, конечно, при реальном использовании возникает масса дополнительных вопросов:

  • Мониторинг работы сервера 1С и баз данных.
  • Проверка бэкапов.
  • Защита опубликованной базы и ограничения доступа к ней.
  • Настройка доступа к базе 1С по https соединению.

Возможно со временем появится и эта информация. А пока прощаюсь. Жду ваших замечаний и комментариев.

Postgres Pro Standard : Документация: 12: pg-setup : Postgres Professional

pg-setup

pg-setup — настройка нового кластера базы данных Postgres Pro и управление соответствующей службой initdb [ initdb_options ]

PG-Setup FINE-Free-Port

PG-Setup SET-Server-порт Port

9000 0004 pg-setup set parameter value

pg-setup service service_option

pg-setup tune conf

Описание

pg-setup — это сценарий оболочки, входящий в состав дистрибутива Postgres Pro для автоматизации настройки кластера базы данных в системах Linux. Этот скрипт предоставляется как часть пакет postgrespro-std-12-server . После установки Postgres Pro вы можете найти pg-setup в каталоге install-dir /bin , где install-dir — это /opt/pgpro/std-12 .

pg-setup должен запускаться от имени пользователя root, но выполнять операции по администрированию базы данных от имени пользователя postgres . Вы можете запустить этот сценарий с различными параметрами, чтобы:

  • инициализировать кластер базы данных

  • проверить доступные порты и изменить порт, используемый сервером Postgres Pro

  • изменить параметры конфигурации сервера

  • включить/выключить автоматический запуск службы Postgres Pro

  • настроить кластер базы данных для определенного продукта Postgres Pro

Параметры

pg-setup принимает следующие аргументы командной строки:

initdb [ initdb_options ]

Инициализировать кластер базы данных от имени пользователя postgres .

По умолчанию кластер базы данных, сконфигурированный для вашего дистрибутива Postgres Pro, инициализируется в каталоге /var/lib/pgpro/std-12/data с включенными контрольными суммами, параметр auth-local имеет значение peer и параметр auth-host установлен на md5 . Настройки локализации унаследованы от LANG переменная среды для текущего сеанса. Все переменные среды LC_* игнорируются. При желании вы можете указать параметры initdb для настройки установки.

Если база данных по умолчанию создается с помощью pg-setup, путь к ее каталогу данных хранится в файле /etc/default/postgrespro-standard-12 , поэтому все последующие команды pg-setup, а также любые команды, управляющие службой Postgres Pro, влияют только на эту базу данных. Вы не можете управлять несколькими базами данных с помощью pg-setup.

find-free-port

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

set-server-port порт

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

По умолчанию: 5432

Установите Имя Значение

Установите указанный параметр конфигурации на Значение в .con. Если этот параметр уже был определен командой ALTER SYSTEM , его предыдущее значение удаляется из файла postgresql.auto.conf .

сервис service_option

Управление службой Postgres Pro с помощью одного из следующих параметров:

  • enable — включить автоматический запуск службы при перезапуске системы.

  • отключить — отключить автоматический запуск службы при перезагрузке системы.

  • start — запустить службу.

  • стоп — остановить сервис.

  • condrestart — перезапустить службу, если она запущена при вызове pg-setup.

  • статус — вернуть статус сервиса Postgres Pro.

tune conf

Установите указанную конфигурацию для кластера базы данных. Предопределенные значения conf зависят от версии Postgres Pro и могут быть 1c , std или ent . Значение можно указать для любого товара. По умолчанию кластер базы данных настроен для вашей версии Postgres Pro Standard. Если вы укажете значение, отличное от любого предопределенного, кластер получит ненастраиваемые параметры конфигурации.

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

Примечания

Если вы устанавливаете Postgres Pro из пакета postgrespro-std-12 , pg-setup запускается автоматически с настройками по умолчанию. В результате инициализируется кластер базы данных и создается база данных по умолчанию в каталоге /var/lib/pgpro/std-12/data , включается автозапуск службы Postgres Pro и запускается служба.

Если вы устанавливаете сервер Postgres Pro непосредственно с сервера postgrespro-std-12 , вы можете запустить этот сценарий вручную, чтобы инициализировать кластер базы данных или управлять службой Postgres Pro.

Подробные сведения об особенностях установки двоичных файлов в Linux см. в разделе 16.1.

epub

пдф

Установка сервера 1С на Ubuntu 20.04 — Linux Hub

Хочу порекомендовать VPS хостинг от профессионалов с лучшей техподдержкой, на котором работает этот сайт. У них есть VPS и выделенные сервера под любые нужды. Зарегистрируйтесь и получите скидку 25% на первую оплату любого SSD VPS при оплате на один, три или шесть месяцев.

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

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

  • Установка сервера 1С на Ubuntu 20.04
    • 1. Скачать необходимые пакеты
    • 2. Получение инструкции по установке Postgresql Pro
    • 3. Обновить Ubuntu и установить пакеты
    • 4. Добавление репозитория PostgreSQL Pro
    • 4
    • 4 5.0914 Установка и запуск HASPD
    • 6. Установка Postgres Pro Std
    • 7. Настройка СУБД Postgres Pro Std
    • 8. Установка сервера 1С
    • 9. Настройка запуска сервера 1С
    • 10. Установка толстого и тонкого клиентов 1С
    • 1

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

    • 12. Проверка подключения к БД
    • 13. Создание БД на сервере 1С
    • 14. Настройки подключения к серверу 1С и СУБД
    • 15. Запуск БД на сервере 1С в разных режимах
    • 16. Публикация конфигурации 1С на веб-сервере
    • 17. Проверка запуска БД 1С в режиме веб-приложения
  • Выводы

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

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

  • Процессор : AMD Ryzen 5.
  • Хранилище : 256 ГБ SSD.
  • ОЗУ : 6 ГБ.
  • ОС : Windows 10 Профессиональная.

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

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

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

1. Скачиваем необходимые пакеты

Прежде всего я авторизовался на сайте users.v8.1c.ru для скачивания дистрибутивов платформы.

На скриншоте я выделил загруженные мной пакеты:

Затем мне нужно скачать драйвер ключа безопасности HASP для Linux, чтобы получить лицензии 1С по сети и с USB-ключа. Версия 7.90 у меня не заработала, и я пошел по пути наименьшего сопротивления, загрузив на тестовый стенд HASPD 7.40 (процесс опишу ниже). Для того, чтобы корректно выполнить задачу по установке последней версии ПО, я дам ссылку на скачивание HASPD 7.90 и порекомендую ее установить.

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

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

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

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

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

Для настройки репозитория Postgres Pro Std вам потребуется завиток . И установлю свой любимый 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С. Итак, я запускаю команду:

 echo 'deb http://ru.archive.ubuntu.com/ubuntu/bionic main Universe' >> /etc/apt/sources.list 
 sudo apt update 

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

После завершения перезагрузите систему, но перед этим убедитесь, что дистрибутивы 1С и 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 
 sh apt-repo-add.sh 

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

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

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

 sudo mkdir /usr/src/haspd7_40 
 hasp * sudo cp * /usr/src/haspd7_40 
 sudo cd /usr/src/haspd7_40 
 sudo apt -y install ./*.deb 

Результат установки должен быть таким же, как на скриншоте выше. Для автоматического запуска службы в 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-RECONFIGUR себя, запустите: 

 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 

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

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

 su postgres 

Запуск консоли СУБД:

 psql 

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

 изменить userR postgres с зашифрованным паролем «secret1c»; 

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

 q 

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

 выход 

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

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

Сначала ставлю сервер 1С:

 cd /usr/src/1cv83_18_1334/serv 
 sudo apt install ./*.deb 

Каждый файл лучше ставить отдельно, так как есть четкая последовательность: общий , crs , сервер , ws.

Потому что в итоге может не все выставиться, хотя я так и сделал.

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

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

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

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

 systemctl enable srv1c4213 

 перезапуск systemctl srv1cv83 
 статус systemctl srv1cv83 

10.

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

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

 cd /usr/src/1cv83_18_13344 a00,19_13344/cli 900,13342 толстый клиент , я запускаю: 

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

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

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

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

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. Проверка соединения с базой данных

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

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

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

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

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

При подключении к серверу необходимо указать либо имя домена + имя , либо написать IP + имя 1С Ubuntu сервер в файл /etc/hosts вашей машины. Postgres Pro Std находится локально относительно сервера, поэтому указываем адрес 127. 0.0.1 . Защищенное соединение не устанавливал по тем же причинам: сервер СУБД находится локально. Я указываю логин суперпользователя postgres и пароль secret1c , которые я задал при первоначальной настройке СУБД.

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

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

I run it in the configurator mode with root superuser rights :

 sudo /opt/1cv8/x86_64/8.3.18.1334/1cv8 

16. Publishing the 1C configuration on веб-сервер

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

 sudo apt -y install apache2 

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

Указываю имя базы данных на веб-сервере, в моем случае , test. Выбираю в строке Веб-сервер значение Apache 2.4 . Указываю домашнюю директорию для веб-приложения 1С. В моем случае , /home/user/testDB/web . Нажимаю кнопку Опубликовать , затем соглашаюсь на перезапуск Apache2 .

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

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

Выводы

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

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

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

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

Процессор AMD Ryzen 7 PRO на материнской плате MSI B450M MORTAR MAX, с четырьмя модулями оперативной памяти, AMD Radeon R9Видеокарта Gamer Series 8Gb, с двумя SSD-накопителями M.2 по 1000 Gb (накопитель Kingston KC2000).