Установка и обновление платформы 1С под Ubuntu
Дата публикации: 04.10.2022 Использован релиз 1
Содержание
Актуальная инструкция по установке и обновлению сервера 1С
Управление кластером из консоли
Обновление сервера 1С до 8.3.22
Подготовка
Сайт ИТС с информацией на тему: https://its.1c.ru/db/freshex1#content:1022:hdoc
Даем супер-права, чтобы не вводить каждый раз sudo, и обновляем
# sudo -s # apt update && sudo apt full-upgrade && sudo apt autoremove && sudo apt autoclean && sudo apt clean
Установка файлового менеджера mc и утилиты curl, которая нужна для работы с репозиторием postgres
# apt -y install mc curl
Lynx - консольный браузер для скачивания дистрибутивов 1С. (клавиша G - переход на сайт)
# apt install lynx
Установка PostgreSQL
Ставлю локализацию для нормального функционирования Postgres Pro Std:
# locale-gen en_US.UTF-8
# locale-gen ru_RU.UTF-8
# update-locale LANG=ru_RU.UTF8
# dpkg-reconfigure locales
Важно! Ставлю локаль по умолчанию RU!
Важно №2 было выше, повторяю! на сервере приложений, там где оснастка 1С, нужно в hosts прописать имя сервера и IP. Имя сервера нужно взять не выдуманное именно имя сервера, где крутится postgres
Скачаем скрипт для добавления стороннего репозитория от разработчиков СУБД. Обратите внимание, что PostgreSQL для 1С особенная сборка:
# curl -o apt-repo-add.sh https://repo.postgrespro.ru/pg1c-12/keys/pgpro-repo-add.sh
Выполним скрипт:
# sh apt-repo-add.sh
Установим саму СУБД (данная сборка создана на основе открытой PostgreSQL с патчами от фирм 1С и Postgres Professional):
# apt install -y postgrespro-1c-12
Проверим состояние службы (должна быть в состоянии active):
$ systemctl status postgrespro-1c-12
Меняем пароль учетной записи psql "postgres", созданной по умолчанию:
# -u postgres psql
postgres=# \password
Вводим новый пароль
Блокировка обновления пакетов (опционально)
$ sudo apt-mark hold libpq5
$ sudo apt-mark hold postgresql-client-10
$ sudo apt-mark hold postgresql-10
Удаление PostgreSQL если нужно
# systemctl stop postgrespro-1c-12
# apt-get --purge remove postgrespro\*
# apt-get purge postgrespro-1c-12
# apt-get autoremove postgrespro-1c-12
# rm -r /etc/postgrespro/
# rm -r /etc/postgresql-common/
# rm -r /var/lib/pgpro/
# userdel -r postgres
# groupdel postgres
Актуальная инструкция по установке/обновлению сервера 1С
С недавних пор принцип поставки дистрибутивов для операционных систем Linux сильно поменялся в сторону упрощения. Теперь есть единый дистрибутив с удобным меню, в котором нужно выбрать необходимые компоненты. Запуск службы и включение отладки теперь тоже делаются не так как в старых версиях.
Через lynx заходим на releases.1c.ru и скачиваем оттуда дистрибутивы в какую-нибудь папку.
Очень классная штука "+ Тонкий клиент для всех платформ для автоматического обновления клиентов через веб-сервер". Функцию обновления клиентов не надо как-то отдельно настраивать, все работает автоматически благодаря новому упрощенному мастеру установки (см. ниже). Используя этот дистрибутив, у ваших клиентов, которые заходят через веб-сервер, автоматически будет выдаваться окно о том, что платформа устарела с предложением обновить. Такое поведение 1С знакомо, например, клиентм облака ФРЕШ.
Скачиваем, распаковываем командой:
$ tar -xzvf server64_with_all_clients_8_3_22_1709.tar.gz
Получается непривычно мало файлов, но это нормально. Запускаем файл *.run
Далее следуем мастеру установки, отвечаем на вопросы:
....
Если меняется скрипт бэкапа (и в нем есть ссылка на платформу), нужно перезапустить таймер:
# systemctl stop backup_1c.timer
# systemctl start backup_1c.timer
# systemctl status backup_1c.timer
Регистрация службы и добавление в автозапуск
Запуск службы сервера «1С:Предприятия» выполняется скриптом srv1cv8-8.3.22.1709@.service, расположенным в каталоге /opt/1cv8/x86_64/8.3.22.1709.
Для регистрации службы, как указано в документации (ссылка), введем команду:
# systemctl link \ /opt/1cv8/x86_64/8.3.22.1709/srv1cv8-8.3.22.1709@.service
Должен быть выдан ответ:
Created symlink /etc/systemd/system/srv1cv8-8.3.22.1709@.service → /opt/1cv8/x86_64/8.3.22.1709/srv1cv8-8.3.22.1709@.service.
В каталоге /etc/systemd/system создана символическая ссылка srv1cv8-8.3.22.1709@.service, ведущая на скрипт запуска службы.
Включим службу сервера «1С:Предприятия» в автозапуск командой:
# systemctl enable srv1cv8-8.3.22.1709@default
Должен быть выдан ответ:
Created symlink /etc/systemd/system/multi-user.target.wants/srv1cv8-8.3.22.1709@default.service → /opt/1cv8/x86_64/8.3.22.1709/srv1cv8-8.3.22.1709@.service.
Для запуска службы введем команду:
# systemctl start srv1cv8-8.3.22.1709@default
Проверим состояние службы сервера «1С:Предприятия» с помощью команды:
# systemctl status srv1cv8-8.3.22.1709@default
Включение отладки
Теперь нужно поменять флаг в файле конфигурации вот тут:
Публикация базы на web-сервере
Создадим папку для vrd-файла (если была публикация на веб-сервере):
# mkdir -p /var/www/1c/8.3.22.1709
Переходим в каталог платформы:
$ cd /opt/1cv8/x86_64/8.3.22.1709
Публикуем базу:
# ./webinst -apache24 -wsdir trade -dir /var/www/1c/8.3.22.1709/trade -connstr "Srvr=localhost;Ref=trade;" -confPath /etc/apache2/conf-available/trade.conf
Перезагружаем веб-сервер:
# systemctl stop apache2
# systemctl start apache2
Идем в файл VRD публикации бухгалтерии и добавляем туда блок WS, чтобы были опубликованы веб-сервисы расширений. В БП в частности, в расширении есть веб-сервис по получению зарплатных затрат.
Файл VRD можно править обычным редактором MC, даже несмотря на какие-то странные симводы ^M, которые видны в редакторе. Просто добавляем после них и перезапускаем апач.
Файл лежит тут: /var/www/1c/[Номер платформы]/acc
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/acc"
ib="Srvr=localhost;Ref=acc;">
<standardOdata enable="false"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<analytics enable="true"/>
<ws
enable="true"
pointEnableCommon="true"
publishExtensionsByDefault="true">
</ws>
</point>
Перезапуск Апач:
/etc/init.d/apache2 restart
Управление кластером 1С из консоли
Можно прямо с сервера проверить подключение постгресскуэль
# psql -U my_login -h 192.168.0.14 postgres
Перейдем в каталог платформы.
$ cd /opt/1cv8/x86_64/8.3.18.1289
$ ./ras --daemon cluster
Получаем ID кластера, далее используем его
$ ./rac cluster list
Список баз
$ ./rac infobase --cluster=8c80a5d2-ed8a-4ebe-af2d-07fbd16d02ab summary list
Создаем админа кластера
$ ./rac cluster admin --cluster=8c80a5d2-ed8a-4ebe-af2d-07fbd16d02ab register --name=admin --pwd=Secret1c --auth=pwd
Создание базы
$ ./rac infobase create --cluster=8c80a5d2-ed8a-4ebe-af2d-07fbd16d02ab --create-database --name=test --descr=MyTestBaseOnLinuxPower
--dbms=PostgreSQL --db-server=192.168.122.2 --db-name=test --locale=ru
--db-user=postgres --db-pwd=SecretPass1c --cluster-user=admin --cluster-pwd=SecretPass1c --license-distribution=allow
Повторно смотрим список баз
$ ./rac infobase --cluster=8c80a5d2-ed8a-4ebe-af2d-07fbd16d02ab --cluster-user=admin --cluster-pwd=Secret1c summary list
На заметку. Сработала эта команда, когда была ошибка с порядком сортировки и региональными настройками:
$ su postgres pg_ctl initdb -D '/var/lib/pgpro/1c-12/data2 –locale=ru_RU.UTF-8'
Установка сервера 1С до 8.3.22
Через lynx заходим на portal.1c.ru и скачиваем оттуда дистрибутивы в какую-нибудь папку. В моем случае deb версию, т.к. у меня Ubuntu
Далее распаковываем данный архив
$ tar -xzvf deb64.tar.gz
Устанавливаем пакеты через менеджер:
# dpkg -i 1c-enterprise-8.3.18.1289-common_8.3.18-1289_amd64.deb
# dpkg -i 1c-enterprise-8.3.18.1289-server_8.3.18-1289_amd64.deb
# dpkg -i 1c-enterprise-8.3.18.1289-ws_8.3.18-1289_amd64.deb
Даём созданному при установке 1С пользователю права на директорию с установленной платформой:
# chown -R usr1cv8:grp1cv8 /opt/1cv8
Ставим шрифты Microsoft, соглашаемся с лицензией при установке:
# apt install -y ttf-mscorefonts-installer
Для того, чтобы система "увидела" установленные шрифты, инсталлируем конфигуратор шрифтов:
# apt install -y fontconfig
# fc-cache –fv
Включение отладки на сервере 1С - отдельная история. В статье на сайте ИТС такая фраза:
"Конфигурационный файл /etc/sysconfig/srv1cv83 (для RPM-системы) используется для задания параметров запуска агента сервера «1С:Предприятия» с помощью скрипта /etc/init.d/srv1cv83. Если установка выполнялась для DEB-системы, то нижеперечисленные параметры следует редактировать в файле /etc/init.d/srv1cv83."
Ссылка на источник этой информации
Иногда в конфигураторе нужно поставить флаг "Искать предметы отладки на удаленном компьютере" и указать IP ServerSQL
Также в брэндмауэре отладочной машины нужно добавить правило на входящие порты 1560-1591
Ubuntu - это DEB-система.
Запускаем 1с сервер:
# cd /opt/1cv8/x86_64/8.3.18.1289 && ./srv1cv83 start
Проверим его состояние:
$ ./srv1cv83 status
(должно быть: Init script: STARTED. Ragent: RUNNING.)
Для управления данным экземпляром сервера как обычными службами выполним:
# ln -s /opt/1cv8/x86_64/8.3.18.1289/srv1cv83 /etc/init.d/srv1cv83
Важно! Для DEB систем флаг debug нужно прописывать прямо в этот файл /etc/init.d/srv1cv83 в процедуру buildCommandLine()
Активируем запуск сервера при загрузке системы:
# /lib/systemd/systemd-sysv-install enable srv1cv83
Проверим состояние службы (должна быть в состоянии active):
$ systemctl status srv1cv83
Важно! Если у вас отсутствует DNS-сервер, который будет раздавать имена, то нужно прописать имя сервера в хосты (файлик hosts) на клиентах, иначе не удастся подключиться с клиента 1с к серверу 1с:
# nano /etc/hosts
или для windows, если, например, вы установили оснастку консоли кластера 1С на другую win машину и пытаетесь создать базу, то ничего не получится, пока не пропишете IP и имена сервера 1С и сервера базы данных.
> notepad %windir%\system32\drivers\etc\hosts (с повышением привилегий)
xxx.xxx.xxx.xxx servername
Обновление платформы 1С до 8.3.22
Через lynx заходим на portal.1c.ru и скачиваем оттуда дистрибутивы в какую-нибудь папку.
Распаковываем данный архив
$ tar -xzvf deb64.tar.gz
Устанавливаем пакеты через менеджер:
# dpkg -i 1c-enterprise-8.3.18.1289-common_8.3.18-1289_amd64.deb
# dpkg -i 1c-enterprise-8.3.18.1289-server_8.3.18-1289_amd64.deb
# dpkg -i 1c-enterprise-8.3.18.1289-ws_8.3.18-1289_amd64.deb
Тормозим старую службу
$ systemctl stop srv1cv83
Запускаем 1с сервер:
# cd /opt/1cv8/x86_64/8.3.18.1289 && ./srv1cv83 start
Проверим его состояние:
$ ./srv1cv83 status
(должно быть: Init script: STARTED. Ragent: RUNNING.)
Нужно удалить старую ссылку /etc/init.d/srv1cv83
Добавить новую. Для управления данным экземпляром сервера как обычными службами выполним:
# ln -s /opt/1cv8/x86_64/8.3.18.1289/srv1cv83 /etc/init.d/srv1cv83
Важно! Для DEB систем флаг debug нужно прописывать прямо в этот файл /etc/init.d/srv1cv83 в процедуру buildCommandLine()
function buildCommandLine() {
local cmdline="$SRV1CV8_BINDIR/ragent -daemon -debug"
Активируем запуск сервера при загрузке системы:
# /lib/systemd/systemd-sysv-install enable srv1cv83
Проверим состояние службы (должна быть в состоянии active):
$ systemctl status srv1cv83