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.
- Очистка базы данных с помощью vacuumdb.
- Перестроение индексов с помощью 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. Если этот параметр уже был определен командой
postgresql.auto.confALTER SYSTEM
, его предыдущее значение удаляется из файла.
-
сервис
service_option
Управление службой Postgres Pro с помощью одного из следующих параметров:
enable
— включить автоматический запуск службы при перезапуске системы.отключить
— отключить автоматический запуск службы при перезагрузке системы.start
— запустить службу.стоп
— остановить сервис.condrestart
— перезапустить службу, если она запущена при вызове pg-setup.статус
— вернуть статус сервиса Postgres Pro.
-
tune
conf
Установите указанную конфигурацию для кластера базы данных. Предопределенные значения
conf
зависят от версии Postgres Pro и могут быть1c
,std
илиent
. Значение1с
можно указать для любого товара. По умолчанию кластер базы данных настроен для вашей версии 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
- 12. Проверка подключения к БД
- 13. Создание БД на сервере 1С
- 14. Настройки подключения к серверу 1С и СУБД
- 15. Запуск БД на сервере 1С в разных режимах
- 16. Публикация конфигурации 1С на веб-сервере
- 17. Проверка запуска БД 1С в режиме веб-приложения
10. Особенности размещения файла настроек HASP для 1С на Linux
Я принял решение развернуть тестовый стенд в Hyper-V на своем ноутбуке. Использовался ноутбук со следующими основными параметрами: Виртуальный контейнер Hyper-V: Я сознательно выбрал 64-разрядную версию Ubuntu Desktop. Во-первых, Postgres Pro только 64-битный. Во-вторых, мне нужно протестировать не только установку сервера 1С, но и установку клиента 1С:Предприятие для Linux для подключения из этой ОС к вашему производственному серверу, и наоборот. Я оставлю установку и настройку Ubuntu 20.04, а также установку сервера XRDP за рамками этой статьи. Прежде всего я авторизовался на сайте users.v8.1c.ru для скачивания дистрибутивов платформы. На скриншоте я выделил загруженные мной пакеты:1 Установка сервера 1С на Ubuntu 20.04
1. Скачиваем необходимые пакеты
Затем мне нужно скачать драйвер ключа безопасности 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-13systemctl start postgrespro-std-13systemctl status postgrespro-std-137. Настройка СУБД 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/servsudo 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 srv1cv8310.
Установка толстого и тонкого клиентов 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*.debA для установки тонкого клиента:
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/1cv816. 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).