Даем супер-права, чтобы не вводить каждый раз 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
Через 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
Ставлю локализацию для нормального функционирования 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
# 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
Можно прямо с сервера проверить подключение постгресскуэль
# 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'
Через 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
Создадим папку для vrd-файла (если была публикация на веб-сервере):
# mkdir -p /var/www/1c/8.3.18.1289/demo
Создадим файл конфигурации apache:
# touch /etc/apache2/conf-available/demo.conf
Переходим в каталог платформы:
$ cd /opt/1cv8/x86_64/8.3.18.1289
Публикуем базу:
# ./webinst -apache24 -wsdir trade_sql -dir /var/www/1c/8.3.18.1520/trade_sql -connstr "Srvr=localhost;Ref=trade;" -confPath /etc/apache2/conf-available/trade_sql.conf
Перезагружаем веб-сервер:
# systemctl stop apache2
# systemctl start apache2
Если меняется скрипт бэкапа (в нем ссылка на платформу), нужно перезапустить таймер:
# systemctl stop backup_1c.timer
# systemctl start backup_1c.timer
# systemctl status backup_1c.timer
Идем в файл 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