Шаг 1. Введение и постановка задачи.
Задача лабораторной работы №1
В этой лабораторной работе мы сконфигурируем рабочее место программиста 1С, которое будет состоять из следующих компонентов:
- Платформа 1С Предприятие 8 в составе конфигуратора и клиента (Windows)
- Сервер 1С:Предприятие 8 (Linux)
- Инструмент администрирования сервера 1С:Предприятие 8 (Windows)
- Сервер PostgreSQL 11.5 (Linux)
- Инструмент администрирования сервера PostgreSQL pgAdmin 4 (Windows)
Для проверки работоспособности системы загрузим на сервер 1С:Предприятие демонстрационную базу.
В лабораторной работе используется платформа 1С:Предприятие 8 версии 8.3.16.1148
В данной статье используется следующее условное выделение:
- Серые вставки содержат команды, выполняемые в терминале Linux
- Знаком # отмечается комментарий, который при повторении лабораторной работы вводить не нужно.
WSL, коротко о подсистеме
Согласно ru.wikipedia.org WSL (Windows Subsystem for Linux) это программный слой в операционной системе Windows 10, который делает ее совместимой для запуска ОС Linux и приложений написанных для Linux. Я выделил несколько преимуществ использования Linux под управлением WSL перед использованием Linux в виртуальной машине:
- Очень простая и быстрая установка системы Linux
- Нет виртуальной машины, а значит не нужно ничего администрировать и настраивать
- Системе Linux доступны все ресурсы машины: дисковое пространство, оперативная память, ядра процессора, сеть. И все это без дополнительного администрирования.
Важно отметить, что не все дистрибутивы операционной системы Linux работают под управлением WSL. Дистрибутивы, которые будут гарантированно работать под WSL располагаются в магазине приложений Microsoft Store.
Еще нужно помнить, что компания 1С гарантирует работу своих продуктов только в следующих дистрибутивах Linux:
RPM версии дистрибутива Linux (RED HAT PACKAGE MANAGER, семейство систем Linux построенных на базе дистрибутива системы Red Hat)
- Red Hat Enterprise Linux 7 (отсутствует в Microsoft Store)
- CentOS 7 (в Microsoft Store имеется платный дистрибутив для WSL)
DEB версии дистрибутива Linux (DEBIAN PACKAGE MANAGER, семейство систем Linux построенных на базе дистрибутива системы Debian)
- Debian: версии 9 (в Microsoft Store имеется дистрибутив для WSL)
- Ubuntu: версии 18.04 LTS (в Microsoft Store имеется дистрибутив для WSL)
- Mint: версии 19 (отсутствует в Microsoft Store)
Шаг 2. Подготовка к работе
Для лабораторной работы нам потребуются:
Windows 10
Вся работа будет происходит в операционной системе Windows 10. Необходима 64-битная версия ОС. Номер сборки требуется 1607 и старше. Вариант Windows не важен. Будет работать и на Prof и на Home.
Папка с локальным репозиторием
В системе Windows на диске С: создадим папку TMP_C, которую будем считать локальным репозиторием. Дистрибутивы, которые потребуются для лабораторной работы будем сохранять в этой папке.
Дистрибутивы
Все скаченные дистрибутивы сохраняем в папку C:\TMP_C
Сервер 1С:Предприятия (64-bit) для DEB-based Linux-систем скачиваем из репозитория компании 1С releases.1c.ru/project/Platform83 Для работы потребуется дистрибутив версии 8.3.16.1148
Технологическая платформа 1С:Предприятия (64-bit) для Windows версии 8.3.16.1148 скачиваем из того же репозитория
Демонстрационная информационная база (файл DT) скачиваем из того же репозитория
Дистрибутив СУБД PostgreSQL для Linux x86 (64-bit) одним архивом (DEB) скачиваем из репозитория компании 1С releases.1c.ru/project/AddCompPostgre Для работы потребуется дистрибутив версии 11.5-12.1С
Зависимости (служебные библиотеки) postgres для Ubuntu 18.04.3-server x86_64 от 20.12.2019 находятся в разделе Дополнительные материалы репозитория PostgreSQL.
pgAdmin v.4 скачиваем с официального репозитория проекта postgresql.org/ftp/pgadmin/pgadmin4/ Требуется версия для Windows версии 4.17
ConEmu терминал для консольных приложений скачаем с официального репозитория fosshub.com/ConEmu.html Требуется версия 191012 вариант Installer 64-bit
Установка ConEmu
ConEmu на мой взгляд самый удобный терминал и браузер консольных приложений. В ConEmu могут исполняться например такие консольные приложения: Far, PowerShell, Git и другие. Пара скриншотов.
Установите ComEmu соглашаясь с настройками по умолчанию.
При первом запуске в ConEmu по умолчанию запустится файловый менеджер Far. Выполните минимальную настройку ConEmu. Я под свои глаза меняю настройки Fonts и Size & Pos Войти в режим настройки [Win + Alt + P] или меню на скриншоте ниже
Для того, что бы открыть новый терминал в очередной вкладке можно нажать [Win + Shift + W] и в диалоговом окне указать тип открываемого терминала. Полезными будут следующие типы терминала:
- {Far} - открыть еще один Far в очередной вкладке
- {Bash::bash} - открыть терминал Linux (вариант доступен при включенном WSL и установленном Linux)
- {Shells::cmd} - открыть окно с командной строкой Windows 10
Так же новую вкладку терминала можно открыть нажав зеленую кнопку, см. скриншот.
Шаг 3. Установка WSL
Для того, чтобы установить Linux требуется включить компоненту Windows под названием Подсистема Windows для Linux. После включения компоненты необходимо перезагрузить компьютер.
Управление компонентами находится в Панель управления – Программы – Включение или отключение компонентов Windows.
Шаг 4. Установка Linux
План установки:
- Установить Linux из магазина приложений Microsoft Store
- Первый запуск Linux
- Обновить Linux
- Установить локаль русского языка
- Присвоить хосту статический ip адрес
- Установить необходимые дополнительные пакеты
Теперь, каждый шаг подробно.
Установка Linux
Как писалось выше, дистрибутивы Linux, которые работают под управлением WSL располагаются в магазине приложений Microsoft Store. Устанавливать будем систему Ubuntu 18.04 LTS (Long-term support это продукты с длительным сроком поддержки, например для Ubuntu 18.04 LTS срок поддержки равен 10 лет). В поиске магазина приложений введите ubuntu 18.04 lts и перейдите на страницу установки.
Далее нажмите кнопку Получить и дождитесь окончания установки.
Первый запуск Linux
После установки необходимо сделать первый запуск и выполнить указания системы. Linux можно запустить несколькими способами:
- Кнопка Пуск -Ubuntu 18.04 LTS
- Открытие нового окна терминала в ConEmu с помощью команды {Bash::bash}
- Команда wsl набранная в командной строке Windows
- Команда bash набранная в командной строке Windows
При первом запуске система закончит свою установку и настройку после чего попросит вас указать имя пользователя и пароль, под которым вы будете работать в Linux.
# Диалог установки имени пользователя и пароля
# При вводе пароля в Linux никаких знаков не появляется.
Enter new UNIX username: pen
Enter new UNIX password:
Retype new UNIX password:
Если все в порядке, то появится следующее сообщение:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Запомните на будущее, если вам нужно воспользоваться полномочиями администратора (пользователя root) используйте команду sudo.
Обновление Linux
Ubuntu установленная из магазина Microsoft Store имеет номер релиза 20190521 от 08.05.2018г. Рекомендуется перед началом использования обновить Linux на актуальный релиз. Обновления пакетов выполняются от имени суперпользователя. Будем использовать программу apt (advanced packaging tool), которая предназначена для установки, обновления и удаления программ в операционных системах Linux построенных на базе Debian.
# Обновим информацию о последних версиях пакетов установленных в системе
pen@PEN-PC:~$ sudo apt update
# Просмотрим список пакетов, которые можно обновить
pen@PEN-PC:~$ apt list –upgradable
# Обновим все пакеты, которые могут быть обновлены
pen@PEN-PC:~$ sudo apt upgrade
Установка локали ru_RU
Локаль locale в Linux примерно соответствует региональным настройкам в Windows 10 и определяет язык, который доступен системе, формат чисел, дат и денежных единиц.
Список доступных локалей на вашей машине можно получить, используя команду loicale.
# По умолчанию в системе установлена одна локаль.
# Наименование локали состоит из наименования языка en,
# наименования региона US и наименования кодировки utf8
pen@PEN-PC:~$ locale -a
en_US.utf8
Для корректной работы платформы 1С:Предприятие требуется русская локализации. Для ее установки воспользуемся пакетом locales
# Команда конфигурирования локали.
# Требуются полномочия суперпользователя.
pen@PEN-PC:~$ sudo dpkg-reconfigure locales
Настройка этого пакета идет в псевдографическом интерфейсе. На первом экране необходимо выбрать локаль ru_RU.UTF-8 UTF-8 и отметить ее нажатием клавиши пробел. Нажмите Enter для перехода к следующему экрану, где необходимо выбрать локаль по умолчанию ru_RU.UTF-8. Для завершения настройки требуется нажать клавишу Enter и перезагрузить терминал.
После настройки список установленных в системе локалей расширится
# После настройки стала доступна русская локализация
pen@PEN-PC:~$ locale -a
en_US.utf8
ru_RU.utf8
Статический IP адрес хоста
Для нашей лабораторной работы будем исходить из предположения, что сетевая инфраструктура крайне проста и состоит из маршрутизатора или Wi-Fi роутера, который соединен с компьютером программиста. Для работы с приложениями на сервере Linux нам потребуется зафиксировать IP адрес вашей машины и связать его с именем хоста. Сделаем это.
Настройка маршрутизатора
Компьютер, на котором работает сервер Linux должен иметь постоянный статический адрес. Обычно IP адрес компьютеру выдается сервером DHCP (Dynamic Host Configuration Protocol), который работает на маршрутизаторе. Сервер DHCP не обязан выдавать один и тот же IP адрес компьютеру и чаще всего не выдает. Для того, чтобы у компьютера IP адрес был статическим необходимо настроить маршрутизатор. Потребуется:
- Определить диапазон IP адресов, которые будет раздавать DHCP сервер, например 192.168.0.100 – 192.168.0.255
- Добавить в таблицу статических адресов IP адрес и MAC-адрес (Media Access Control) вашего устройства
- Перезагрузить маршрутизатор и компьютер
На маршрутизаторах разных производителей эта операция выполняется по-разному, но инструкцию несложно найти поиском в Интернете по запросу Настройка статического ip на роутере ХХХ, где ХХХ это модель вашего роутера.
Как пример статический адрес моего домашнего компьютера 192.168.1.10
Определение IP адреса и имени хоста на сервере Linux
С помощью утилиты ipconfig проверим, что статический IP адрес выдан компьютеру. С помощью команды hostname получим наименование компьютера (хоста), на котором работает сервер Linux.
# Программа ipconfig выводит информацию о сетевом окружении компьютера
# в том числе IP адрес хоста
pen@PEN-PC:~$ ifconfig
eth0: flags=4163<UP,BROADCAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
# Программа hostname выводит в консоль имя хоста
# к которому подключен ваш терминал
pen@PEN-PC:~$ hostname
PEN-PC
Связывание IP адреса и имени хоста
С сервером 1C:Предприятие который будет установлен на Linux сервер мы планируем работать и управлять из под Windows. Для корректной работы в Windows установим соответствие IP адреса и имени хоста. Для этого внесем изменения в фале hosts, который располагается в папке %windir%\system32\drivers\etc
Файл hosts это конфигурационный текстовый файл. При помощи текстового редактора ConEmu необходимо добавить в конец файла следующую строку
IP-address hostname,
Где: IP-address статический адрес компьютера, hostname имя хоста. Например, на моем компьютере в файл hosts добавлена следующая строка:
192.168.1.10 PEN-PC
Шаг 5. Введение в Linux
Признаюсь честно, я в Linux совсем новичок и обхожусь минимальным набором команд. Что бы в дальнейшем не комментировать назначение команд Linux я приведу наиболее важные в этом разделе.
Строка приглашения
Строка приглашения — это часть командной строки, которая стоит перед командами, которые вводит пользователь. Пример строки:
# До амперсанда (@) указано имя пользователя, работающего в терминале.
# После амперсанда указано имя хоста (рабочего сервера) с которым
# пользователь работает через окно терминала.
# После знака двоеточие (:) указан рабочий каталог.
# Знак $ обозначает работу с обычными привилегиями
pen@PEN-PC:/mnt/c/TMP_C$
# Еще пример. Пользователь root подключен к хосту PEN-PC.
# Знак тильда (~) говорит, что пользователь находится в домашнем каталоге.
# Знак решетка (#) говорит о том, что у пользователя максимальные привилегии.
root@PEN-PC:~#
Переключение пользователя. Суперпользователь
Многие команды Linux необходимо выполнять с привилегиями суперпользователя. Для этого перед командой, которая требует дополнительных привилегий, необходимо добавить команду sudo.
Команда sudo (substitute user and do) предназначена для повышения привилегий до суперпользователя при выполнении команды, следующей за командой sudo.
В операционной системе Linux может быть много пользователей. Текущий пользователь, от имени которого программист работает в терминале указан в приглашении командной строки. Для некоторых задач требуется сменить пользователя и дальнейшие операции выполнять от имени другого пользователя. Например, управление сервером базы данных PostgreSQL выполняется от имени пользователя postgres.
Команда su (substitute user) предназначена для смены пользователя. Пример смены пользователя:
# Пользователь pen дал команду сменить текущего пользователя на пользователя postgres.
# Такая смена может быть выполнена с полномочиями суперпользователя
# Система Linux запрашивает пароль пользователя pen и в случае успеха
# устанавливает текущим пользователем пользователя postgres.
pen@PEN-PC:~$ sudo su postgres
password for pen:
postgres@PEN-PC:/home/pen$
# Для того, чтобы вернуться к своему основному пользователю pen нужно выйти
# из сеанса текущего пользователя postgres.
postgres@PEN-PC:/home/pen$ exit
exit
pen@PEN-PC:~$
Работа с каталогами
В Linux, впрочем, как и в Windows у каждого пользователя есть свой домашний каталог. Домашние каталоги пользователей операционной системы Linux располагаются в /home/%Username%. Например, домашний каталог пользователя pen располагается в /home/pen.
Каталог, в котором находится пользователь в данный момент называется рабочим или текущим каталогом. Узнать полный путь до текущего каталога можно с помощью команды pwd (print working directory)
Команда cd (change directory) предназначена для изменения текущего каталога. Приведу несколько вариантов использования. Зеленым цветом выделены команды, вводимые пользователем с клавиатуры.
Краткое замечание
Указывая в командах путь до папок, завешайте его конечным слешем, например ~/DISTR/ Указывая в командах путь до файлов не ставьте конечный слеш, впрочем, у вас это и не получиться.
# переход в указанный каталог, например /tmp
pen@PEN-PC:~$ cd /tmp/
pen@PEN-PC:/tmp$
# переход в домашний каталог (вариант 1)
pen@PEN-PC:/tmp$ cd
pen@PEN-PC:~$
# переход в домашний каталог (вариант 2)
pen@PEN-PC:/tmp$ cd ~
pen@PEN-PC:~$
# переход в родительский каталог (из каталога /home/pen/ выполнен переход
# в родительский каталог /home/)
pen@PEN-PC:~$ cd ..
pen@PEN-PC:/home$
# вернуться в предыдущий рабочий каталог
pen@PEN-PC:/home$ cd -
pen@PEN-PC:~$
При указании пути до файлов, вместо полного пути можно использовать следующие сокращения:
- ./ (точка слеш) обозначает путь до текущей папки. Например, находясь в домашней папке это сокращение обозначает /home/pen/
- ~ (тильда) обозначает путь до домашней папки.
Команда ls (list) предназначена для просмотра содержимого текущего каталога. Удобно вызывать команду ls с ключом -l (long) для более подробного представления информации. Пример вызова команды:
# Содержимое домашнего каталога пользователя pen
pen@PEN-PC:~$ ls -l
-rw-rw-rw- 1 pen pen 8 окт 29 21:36 read.me
-rwxrwxrwx 1 pen pen 23 окт 18 20:15 test.txt
Установка и удаление программ
В Linux установка и удаление программ или если быть более точным, пакетов выполняется через команду apt (advanced packaging tool). В утилите apt нам потребуются следующие команды:
list выполняет поиск установленных пакетов и выводит список в консоль. С помощью этой команды можно проверить установлен ли пакет и если установлен, то какой версии.
# Выполнить поиск пакета с наименованием mc.
pen@PEN-PC:~$ apt list mc
# Выполнить поиск пакета libwebkitgtk-3.0-0 указав маску *webkitgtk*
pen@PEN-PC:~$ apt list *webkitgtk*
install установка пакета. Пакеты могут быть установлены из официальных репозиториев Linux или из файлов, которые предварительно сохранены на локальный диск. При установке пакетов из репозиториев Linux загружаются последние версии продуктов.
# Установить интерактивный файловый менеджер mc (Midnight Commander)
# с репозитория ubuntu.com
pen@PEN-PC:~$ sudo apt install mc
# Установить пакет сервера 1С Предприятие из локальной папки DISTR,
# которая находится в домашнем каталоге.
# При установке пакета из локального каталога требуется указывать
# полный путь до пакета.
pen@PEN-PC:~/DISTR$ sudo apt install ./1c-enterprise83-server_8.3.16-1148_amd64.deb
remove удаление пакета
# Удалить интерактивный файловый менеджер mc (Midnight Commander) из Linux
pen@PEN-PC:~$ sudo apt remove mc
Управление сервисами
Сервера 1С:Предприятие и PostgreSQL в ОС Linux работают как сервисы. А это значит, что нужно уметь их запускать, останавливать и определять статус, в котором они находятся.
Команда service предназначена для управления сервисами. Выполнить запуск и остановку сервиса возможно только с привилегиями суперпользователя. Примеры управления сервисами:
# Вывести список всех сервисов и их статусов
# Сервис srv1cv83 некорректно показывает свой статус при использовании status-all
pen@PEN-PC:~$ service --status-all
[ - ] postgresql
[ - ] postgresql.save
[ + ] srv1cv83
# Вывести статус конкретного сервиса
pen@PEN-PC:~$ service postgresql status
10/main (port 5432): down
# Запустить сервис и проверить статус
pen@PEN-PC:~$ sudo service postgresql start
* Starting PostgreSQL 10 database server
pen@PEN-PC:~$ service postgresql status
10/main (port 5432): online
# Остановить сервис
pen@PEN-PC:~$ sudo service postgresql stop
* Stopping PostgreSQL 10 database server
Горячие клавиши терминала
Открыть терминал Windows (cmd) в ConEmu [Win + X]
Закрыть терминал [Ctrl + D] или команда exit
Очистить окно терминала [Ctrl + L] или команда clear
Очистить текущую строку терминала (удалить введённые в строку команды) [Ctrl + U]
Прервать выполнение команды [Ctrl + C]
И самая главная кнопка [Tab] дополняет (заканчивает) наименование команды, имя файла или путь
Шаг 6. Установка сервера 1С:Предприятие
Небольшое но важное отступление перед началом установки сервера 1С:Предприятие.
Важное замечание
Сервер 1С:Предприятие установленный в ОС Linux не проверяет серверный ключ защиты если используется один рабочий процесс и количество клиентских подключений не более 12. Однако, и это важно, компания 1С предоставляя такую техническую возможность не предоставляет юридического разрешения эксплуатировать сервер 1С:Предприятие таким образом. Иными словами для законного использования сервера 1С:Предприятие требуется приобретение лицензии.
Дополнительные библиотеки
Для корректной работы сервера 1С:Предприятие потребуются следующие библиотеки
Библиотека |
Назначение |
libwebkitgtk-3.0-0 |
webkitgtk-3.0.0 |
libMagickWand-6.Q16 |
ImageMagick требуется для построения диаграмм |
libfontconfig |
Требуется для сохранения файлов в формате PDF |
libfreetype6 |
Требуется для сохранения файлов в формате PDF |
libgsf-1-common |
Требуется для работы с файлами в формате XLS |
libglib2.0 |
Требуется для работы с внешними источниками данных |
unixodbc |
Требуется для работы с внешними источниками данных |
libkrb5-3 |
Требуется для работы механизма аутентификации |
libgssapi-krb5-2 |
Требуется для работы механизма аутентификации |
Требуемые, для работы сервера 1С:Предприятие библиотеки можно установить одним вызовом программы apt. Для этого в качестве параметра необходимо указать список всех библиотек через пробел:
# Установка всех пакетов одной командой
pen@PEN-PC:~$ sudo apt install libwebkitgtk-3.0-0 libMagickWand-6.Q16 libfontconfig libfreetype6 libgsf-1-common libglib2.0 unixodbc libkrb5-3 libgssapi-krb5-2
Дополнительные шрифты
Для корректной работы платформы 1С:Предприятие потребуется установить дополнительные шрифты и перестроить файл настроек шрифтов. Ниже приводится типовой сценарий установки дополнительных шрифтов.
# Установим дополнительные шрифты
pen@PEN-PC:~$ sudo apt install ttf-mscorefonts-installer
# Утилита fc-cache пересоздает файл ./etc/fonts/fonts.conf
# в котором находятся настройки шрифтов
pen@PEN-PC:~$ fc-cache -fv
Но, как подсказал Владимир Литвиненко в статье infostart.ru официальные репозитории Ubuntu содержат далеко не самые актуальные версии пакетов с дополнительными шрифтами. Поэтому в случае использования Ubuntu, а это наш случай, правильным будет следующий сценарий установки дополнительных шрифтов:
# Перейдем в каталог DISTR. В эту папку мы складываем полученные дистрибутивы.
pen@PEN-PC:~$ cd ~/DISTR
# С помощью утилиты wget скачаем пакет с дополнительными шрифтами
# с официального репозитория Debian. Файл будет сохранен в рабочий каталог.
pen@PEN-PC:~/DISTR$ wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.7_all.deb
# Установим дополнительные шрифты из локальной папки, указав
# полный путь до файла
pen@PEN-PC:~/DISTR$ sudo apt install ./ttf-mscorefonts-installer
# Утилита fc-cache пересоздает файл ./etc/fonts/fonts.conf
# в котором находятся настройки шрифтов
pen@PEN-PC:~/DISTR$ fc-cache -fv
Установка сервера 1С:Предприятие
Ранее мы скачали архив дистрибутива сервера 1С:Предприятия (64-bit) для DEB-based Linux-систем из репозитория компании 1С в свой локальный репозиторий, который как мы договорились располагается в папке C:\TMP_C. Далее требуется извлечь из архива пакеты, предназначенные для установки. Выполним следующие действия в консоли Linux и за одно потренируемся управлять системой.
Шаг первый. В домашней папке пользователя создадим каталог DISTR/1CSRV (дистрибутив сервера 1С). Все дальнейшие манипуляции с архивами и дистрибутивами сервера 1С будем выполнять в этой папке.
# Создадим папку DISTR/1CSRV в домашнем каталоге пользователя.
# Сокращение ~/ интерпретируется как путь к домашнему каталогу пользователя.
pen@PEN-PC:~$ mkdir ~/DISTR/1CSRV/
Шаг второй. Скопируем архив deb64_8_3_16_1148.tar.gz из папки C:\TMP_C операционной системы Windows 10 в папку ~/DISTR операционной системы Linux. Обратите внимание, именно здесь проявляется сила подсистемы WSL. ОС Linux доступны все ресурсы нашего компьютера, включая диски и папки Windows.
# cp (copy) это программа для копирования файлов и папок.
# -fi опции программы.
# f (force) перезаписывать если существует.
# i (interactive) задавать вопрос пользователю перед перезаписью
# /mnt каталог Linux с примонтированными дисками, среди которых и диски Windows.
pen@PEN-PC:~$ cp -fi /mnt/c/TMP_C/deb64_8_3_16_1148.tar.gz ~/DISTR/1CSRV/
И на конец шаг третий. Распакуем архив deb64_8_3_16_1148.tar.gz с помощью утилиты tar (tape archive)
# Перейдем в папку, где располагается архив дистрибутива.
# Так удобнее пользоваться программой архиватора tar
pen@PEN-PC:~$ cd ~/DISTR/1CSRV/
# -xvf опции программы tar
# x (extract) извлечь файлы из архива
# v (verbose) выводить подробную информацию процесса
# f (file) далее будет указано имя файла архива
pen@PEN-PC:~/DISTR/1CSRV$ tar -xvf ~/DISTR/1CSRV/deb64_8_3_16_1148.tar.gz
После подготовительных операций в каталоге DISTR будут находиться пакеты для установки сервера 1С:Предприятия и системы ключевой защиты. Следующие пакеты требуется установить в указанной последовательности.
Порядок установки |
Наименование пакета |
Назначение пакета |
1 |
1c-enterprise83-common_8.3.16-1148_amd64.deb |
Пакет содержит общие компоненты «1С:Предприятия» |
2 |
1c-enterprise83-server_8.3.16-1148_amd64.deb |
Пакет содержит компоненты сервера «1С:Предприятия» и утилита контроля целостности |
3 |
1c-enterprise83-ws_8.3.16-1148_amd64.deb |
Пакет содержит адаптер для публикации Web-сервисов «1С:Предприятия» на веб-сервере на основе Apache HTTP Server 2.0, 2.2 или 2.4 |
Установим пакеты. Для установки пакетов из локального репозитория (из папки на диске) пакетному менеджеру требуется указать полный путь до пакета. Удобно перед установкой пакетов перейти в папку репозитория и тогда можно указывать относительный путь до пакета.
# Установим все пакеты из локального репозитория
# одной командой в требуемой последовательности.
# Сокращение ./ обозначает текущую папку, то есть ~/DISTR/1CSRV/
pen@PEN-PC:~/DISTR/1CSRV$ sudo apt install ./1c-enterprise83-common_8.3.16-1148_amd64.deb ./1c-enterprise83-server_8.3.16-1148_amd64.deb ./1c-enterprise83-ws_8.3.16-1148_amd64.deb
Установка системы защиты HASP сервера 1С:Предприятие
В этой лабораторной работе мы не будем уделять время установке системы защиты. Предлагаю самостоятельно ознакомится с инструкцией на сайте its.1c.ru Также, прошу внимательно ознакомиться с важным замечанием, которое находится в начале этого шага.
Включение режима отладки на сервере
Изменим настройки сервера 1С:Предприятие и включим возможность проводить отладку на сервере. Для этого нам потребуется внести изменения в конфигурационный файл сервера srv1cv83, который находится в папке /etc/init.d Данную процедуру необходимо сделать до запуска сервиса сервера 1С:Предприятие.
# открыть конфигурационный файл srv1cv83 сервера 1С:Предприятие в редакторе nano
pen@PEN-PC:~$ sudo nano /etc/init.d/srv1cv83
С помощью редактора nano в конфигурационном файле нужно установить параметр SRV1CV8_DEBUG. Так было:
# 1C:Enterprise server configuration debug mode
# 0 - default - off
# 1 - on
#
#SRV1CV8_DEBUG
так стало:
# 1C:Enterprise server configuration debug mode
# 0 - default - off
# 1 - on
#
SRV1CV8_DEBUG=1
После изменений необходимо сохранить файл [Ctrl + O] и выйти из редактора nano [Ctrl + X].
Запуск службы сервера 1С:Предприятие
Сервис сервера 1С:Предприятие называется srv1cv83. Для того, что бы сервер 1С:Предприятие работал сервис должен быть запущен. Ниже приведены команды управления сервисом:
# проверить статус сервиса
pen@PEN-PC:~$ service srv1cv83 status
1C:Enterprise 8.3 server status:
Init script: STARTED.
Ragent: RUNNING.
# запустить сервис
pen@PEN-PC:~$ sudo service srv1cv83 start
Starting 1C:Enterprise 8.3 server: OK
# остановить сервис
pen@PEN-PC:~$ sudo service srv1cv83 stop
Stopping 1C:Enterprise 8.3 server: OK
Шаг 7. Установка сервера PostgreSQL
Дополнительные библиотеки
Сервер баз данных PostgreSQL требует, чтобы в операционной системе Linux были установлены дополнительные библиотеки или другими словами, зависимости. Архив ubuntu_18.04.3_server.x64.tar.gz со всеми необходимыми библиотеками мы заранее скачали в папку Windows C:\TMP_C см. Шаг 2.
Для удобства создадим в папке DISTR, которая располагается нашей домашней папке каталог SQLDEP (SQL Dependence) и распакуем в него содержимое архива
# Перейдем в домашнюю папку
pen@PEN-PC:~$ cd ~
# Создадим в папке DISTR вложенную папку SQLDEP
pen@PEN-PC:~$ mkdir ~/DISTR/SQLDEP/
# Скопируем из папки Windows C:\TMP_C архив с зависимостями в
# домашний каталог Linux в папку /DISTR/SQLPEP/
pen@PEN-PC:~$ cp /mnt/c/TMP_C/ubuntu_18.04.3_server.x64.tar.gz ~/DISTR/SQLDEP/
# Перейдем в каталог ~/DISTR/SQLDEP/ в который мы только что скопировали архив.
# Так удобнее пользоваться программой архиватора tar.
pen@PEN-PC:~$ cd ~/DISTR/SQLDEP/
# Распакуем архив с библиотеками в текущем каталоге
pen@PEN-PC:~/DISTR/SQLDEP$ tar -xvf ~/DISTR/SQLDEP/ubuntu_18.04.3_server.x64.tar.gz
# Обратите внимание, компания 1С пакеты библиотек собрала в папку
# ubuntu_18.04.3-server.x64 В этом легко убедится,
# просмотрев содержимое каталога ~/DISTR/SQLDEP/
pen@PEN-PC:~/DISTR/SQLDEP$ ls -l ~/DISTR/SQLDEP/
В папке ~/DISTR/SQLDEP/ ubuntu 18.04.3-server.x64/ находятся следующие файлы дистрибутивов:
- libicu55:amd64 - библиотека интернационализации для Unicode
- libllvm9:amd64 - программная инфраструктура для создания компиляторов и сопутствующих им утилит
- postgresql-client-common - менеджер управления клиентамиPostrgeSQL
- postgresql-common – менеджер кластера PostrgeSQL
- ssl-cert - оболочка для библиотеки OpenSSL
Установим эти библиотеки
# Перейдем в папку ubuntu 18.04.3-server.x64 Обратите внимание, что
# в наименовании папки используется недопустимый символ подчеркивания
# и он экранируется обратным слешем.
pen@PEN-PC:~$ cd ~/DISTR/SQLDEP/ubuntu\ 18.04.3-server.x64/
# Установим все пакеты по маске *.deb, которые находятся в текущем каталоге
pen@PEN-PC:~/DISTR/SQLDEP/ubuntu 18.04.3-server.x64$ sudo apt install ./*.deb
Установка сервера PostgreSQL
После установки необходимых библиотек установим сам сервер баз данных. Архив дистрибутива сервера postgresql_11.5_12.1C_amd64_deb.tar.bz2 мы заранее скачали в папку Windows C:\TMP_C см. Шаг 2.
По аналогии с предыдущим шагом создадим в папке DISTR каталог SQL и распакуем в него содержимое архива.
# Перейдем в домашнюю папку
pen@PEN-PC:~$ cd ~
# Создадим в папке DISTR вложенную папку SQL
pen@PEN-PC:~$ mkdir ~/DISTR/SQL/
# Скопируем из папки Windows C:\TMP_C архив с дистрибутивом PostgreSQL в
# домашний каталог Linux в папку /DISTR/SQL/
pen@PEN-PC:~$ cp /mnt/c/TMP_C/postgresql_11.5_12.1C_amd64_deb.tar.bz2 ~/DISTR/SQL/
# Перейдем в каталог ~/DISTR/SQL/ в который мы только что скопировали архив.
# Так удобнее пользоваться программой архиватора tar.
pen@PEN-PC:~$ cd ~/DISTR/SQL/
# Распакуем архив с библиотеками в текущем каталоге
pen@PEN-PC:~/DISTR/SQL$ tar -xvf ~/DISTR/SQL/postgresql_11.5_12.1C_amd64_deb.tar.bz2
# Просмотрим содержимое каталога ~/DISTR/SQL/
# Обратите внимание, пакеты дистрибутива собраны
# в папку postgresql-11.5-12.1C_amd64_deb
pen@PEN-PC:~/DISTR/SQL$ ls -l ~/DISTR/SQL/
В папке ~/DISTR/SQL/postgresql-11.5-12.1C_amd64_deb находятся следующие файлы дистрибутива:
- libpq5_11.5-12.1C – служебная библиотека сервера PostgreSQL для программирования приложений на языке С (сборка компании 1С)
- postgresql-11_11.5-12.1C – серверная часть сервера PostgreSQL (сборка компании 1С)
- postgresql-client-11_11.5-12.1C – клиентская часть сервера PostgreSQL (сборка компании 1С)
Установим сервер
# Перейдем в папку postgresql-11.5-12.1C_amd64_deb с дистрибутивом сервера
pen@PEN-PC:~$ cd ~/DISTR/SQL/postgresql-11.5-12.1C_amd64_deb/
# Установим все пакеты по маске *.deb, которые находятся в текущем каталоге
pen@PEN-PC:~/DISTR/SQL/postgresql-11.5-12.1C_amd64_deb$ sudo apt install ./*.deb
Защита пакетов от обновлений
Платформа 1С:Предприятие работает только с сервером PostgreSQL который собирает компания 1С.
Небольшое отступление:
На самом деле платформа 1С:Предприятие работает не только со сборками от компании 1С. Специальные сборки для 1С выпускают и другие компании. Однако, наибольшую активность в адаптации PostgreSQL за последний год проявляет именно компания 1С.
Платформа 1С:Предприятие не будет работать с сервером PostgreSQL если тот обновиться на оригинальные пакеты от компании Postgres (так называемая ванильная версия). Такое может произойти при обновлении системы Linux, см Шаг. 4 пункт Обновление Linux. Для защиты сервера базы данных от неконтролируемого обновления зафиксируем версии дистрибутива
# Перейдем в домашнюю папку
pen@PEN-PC:~$ cd ~
# Зафиксируем пакет libpq5
pen@PEN-PC:~$ sudo apt-mark hold libpq5
# Зафиксируем пакет postgresql-11
pen@PEN-PC:~$ sudo apt-mark hold postgresql-11
# Зафиксируем пакет postgresql-client-11
pen@PEN-PC:~$ sudo apt-mark hold postgresql-client-11
# Проверим, что собранные компанией 1С пакеты зафиксированы от обновлений
pen@PEN-PC:~$ apt-mark showhold
Запуск и начальная настройка сервера
Только что установленный сервер баз данных требуется запустить. Для этого воспользуемся программой управления сервисами services.
# Проверим текущий статус сервиса PostgreSQL. Видно, что сервис
# остановлен, а сам сервер баз данных слушает порт 5432.
pen@PEN-PC:~$ service postgresql status
11/main (port 5432): down
# Запустим сервис. Потребуются привилегии суперпользователя
pen@PEN-PC:~$ sudo service postgresql start
Во время установки сервера PostgreSQL в систему Linux был добавлен пользователь postgres. В этом легко убедиться, воспользовавшись утилитой вывода в консоль содержимого файлов cat (concatenate)
# Просмотрим содержимое файла passwd, который содержит список всех
# пользователей системы. Вывод этой команды показан частично.
pen@PEN-PC:~$ cat /etc/passwd
pen:x:1000:1000:,,,:/home/pen:/bin/bash
usr1cv8:x:999:1001:1C Enterprise 8 server launcher:/home/usr1cv8:/bin/sh
postgres:x:113:118:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
Все операции с сервером баз данных будем выполнять от имени пользователя postgres. Перед началом использования сервера SQL необходимо задать пароль этого пользователя. Воспользуемся интерактивным терминалом PostgreSQL psql.
# Переключимся на пользователя postgres. Обратите внимание на то
# как изменилась строка приглашения
pen@PEN-PC:~$ sudo su postgres
postgres@PEN-PC:/home/pen$
# Перейдем в домашнюю папку пользователя postgres
postgres@PEN-PC:/home/pen$ cd ~
# Откроем терминал PostgreSQL. Обратите внимание, что строка
# приглашения изменилась
postgres@PEN-PC:~$ psql
postgres=#
# Установим пароль 1111 для пользователя postgres. Обратите внимание
# с сервером баз данных мы можем общаться только SQL запросами, поэтому
# точка с запятой в конце запроса обязательна.
postgres=# ALTER USER postgres WITH PASSWORD '1111';
ALTER ROLE
# Закончим работу с терминалом PostgreSQL введя команду \q
postgres=# \q
postgres@PEN-PC:~$
Готово, пароль пользователя postgres установлен, теперь осталось выйти из этого пользователя и вернуться в нашего стандартного пользователя.
# Выйдем из пользователя postgres с помощью команды exit.
# Обратите внимание на то как изменилась строка приглашения.
postgres@PEN-PC:~$ exit
pen@PEN-PC:~$
Шаг 8. Установка оснасток серверов
Установка оснастки администрирования сервера 1С:Предприятие
Оснастка администрирования работает в Windows 10 и управляет сервером 1C:Предприятие, который работает на Linux. Оснастка как компонента входит в дистрибутив платформы 1С:Предприятие 8 (х86-64) для Windows.
Если оснастка уже установлена, то в программной группе 1C:Предприятие 8 (х86-64) вы увидите программу Администрирование серверов 1С Предприятия x86-64. Если такой программы нет, то ее требуется установить.
Установить оснастку можно при начальной установке платформы 1С:Предприятие 8 (х86-64) включив компоненту Администрирование сервера 1С Предприятия x86-64.
Если при начальной установке платформы оснастка не была установлена, то можно это сделать позже. Выполните в Windows 10 следующие действия. Откройте Параметры системы Windows и далее Установка и удаление программ. Выберите установленный программный продукт 1C:Предприятие 8 (х86-64) и нажмите кнопку Изменить. В открывшемся окне Обслуживание программ выберите опцию Изменить и нажмите кнопку Далее. В окне Выборочная установка включите установку компоненты Администрирование сервера 1С Предприятия x86-64 и нажмите кнопку Далее. Для изменения набора компонент вам потребуется дистрибутив соответствующей версии.
Установка pgAdmin4
Программа pgAdmin4 предназначена для интерактивного управления и администрирования серверов PostgreSQL в системе Windows. Программа работает в браузере.
Для установки запустите файл инсталляции pgadmin4-4.18-x86.exe, который мы ранее скачали и сохранили в папке C:\TMP_C. Следуйте шагам установки соглашаясь с рекомендуемыми параметрами.
После установки оснастка управления сервером PostgreSQL будет находиться в программной группе pgAdmin 4.
При запуске она откроется в WEB браузере, который установлен как браузер по умолчанию. Сервис postgresql в Linux должен работать, подробнее смотри Шаг 7. Первым откроется окно для ввода пароля пользователя postgres.
Укажите пароль, который мы установили на этапе настройки сервера см. Шаг 7. В нашем примере пароль это 1111.
Если сервис postgresql не запущен, то при попытке подключится к серверу pgAdmin выдаст сообщение: could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "192.168.1.10" and accepting TCP/IP connections on port 5432?
Шаг 9. Создание кластера серверов
И так, мы на финишной прямой. Сервера установлены и работают. Пора создать кластер серверов 1С:Предприятие.
Проверим, что сервисы серверов работают. Удобно воспользоваться командой top (table of processes) которая является аналогом диспетчера задач в Linux. Среди работающих процессов в колонке COMMAND вы должны увидеть процессы с наименованиями postgres и ragent
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2700 postgres 20 0 297012 15264 7300 S 1,7 0,0 0:05.67 postgres
2438 usr1cv8 20 0 173940 25664 23576 S 0,0 0,0 0:00.37 ragent
Что бы выйти из программы top и вернуться в терминал нажмите [Ctrl + C]
Важное замечание
Как написано выше WSL это программный слой в операционной системе Windows, который позволяет запускать программы Linux. Эту способность WSL легко продемонстрировать открыв диспетчер задач Windows. Если сервисы серверов в Linux запущены, то процессы postgres и ragent будут видны и в диспетчере задач Windows. Таким образом, приложениям, которые работают в Linux доступны все ресурсы Windows.
Если сервера остановлены, то запустим их
# Запустим сервис postgresql. Потребуются привилегии суперпользователя
pen@PEN-PC:~$ sudo service postgresql start
# Запустим сервис srv1cv83. Потребуются привилегии суперпользователя
pen@PEN-PC:~$ sudo service srv1cv83 start
Дальнейшие операции будут проводиться в Windows в оснастке администрирования серверов 1С:Предприятие.
Создание центрального сервера 1С:Предприятие
Кластер серверов состоит из центрального сервера и рабочих серверов. Центральный сервер главная часть кластера. Он один и он обязателен. Рабочие сервера в кластере создаются при необходимости и могут отсутствовать.
В оснастке на элементе дерева Central 1C:Enterprise 8.3 servers нажимаем правую кнопку мыши и выбираем команду Создать Центральный сервер 1С:Предприятия 8.3
В окне Новый центральный сервер заполняем поля:
- Имя. Указываем имя хоста, который связан с IP адресом нашей машины, см. Шаг 4 В моем случае имя хоста PEN-PC
- Описание. Понятный комментарий к серверу, например Центральный сервер PEN-PC
Поля, Протокол и IP порт не меняем и оставляем значения по умолчанию.
Создание кластера сервера
Кластер серверов это точка входа к которой подключаются клиенты 1C:Предприятие. Кластером серверов управляет центральный сервер.
В оснастке на элементе дерева Кластеры нажимаем правую кнопку мыши и выбираем команду Создать Кластер.
В окне Новый кластер заполняем поля:
- Имя кластера. Указываем имя нашего кластера, например PEN-Cluster
- Компьютер. Указываем имя компьютера, на котором работает центральный сервер кластера. В нашем примере это PEN-PC
- IP Порт. Указываем порт по умолчанию для менеджера кластера 1541
Отключение IPv6
Необходимо на машине, на которой работает центральный сервер кластера отключить интернет протокол IPv6. Если этого не сделать при работе сервера будут выдаваться сообщения об ошибках.
Шаг 10. Загрузка демонстрационной конфигурации
Создание пустой базы
В системе Windows запустим платформу 1C и создадим новую информационную базу. Создадим информационную базу без конфигурации (пустую) для того, чтобы в дальнейшем загрузить туда демонстрационную базу. Дадим наименование Демонстрационная база. Тип расположения информационной базы на сервере 1С:Предприятия.
Заполним карточку новой базы:
- Кластер серверов. Укажем имя хоста, на котором работает центральный сервер кластера. В моем примере это PEN-PC
- Имя информационной базы в кластере. Укажем имя DemoDB
- Тип СУБД. Выберем PostgreSQL
- Сервер баз данных. Укажем имя хоста, на котором работает сервер баз данных. В моем примере это PEN-PC
- Имя базы данных. Укажем имя DemoDB
- Пользователь базы данных. Имя пользователя postgres
- Пароль пользователя. Пароль пользователя базы данных нами установлен на Шаге 7 и имеет значение 1111.
Остальные параметры оставим по умолчанию и закончим создание новой базы.
Загрузка демонстрационной базы
На Шаге 2 в папку локального репозитория мы сохранили архив с демонстрационной базой, которую предоставляет компания 1С.
Распакуем архив с демонстрационной базой demodt_8_3_16_1148.zip в папку локального репозитория. В архиве содержится выгрузка информационной базы 1cv8.dt.
Загрузим выгрузку информационной базы в нашу пустую базу используя конфигуратор.
Войдем в базу в пользовательском режиме.
Поздравляю, мы настроили рабочее место программиста на Linux.
ps. Дорогие читатели, в конце позвольте несколько вопросов:
- нужно ли продолжать цикл статей Рабочее место программиста в формате лабораторных работ?
- нужно ли видео с демонстрацией всех шагов работы?
- какие темы будут интересны для следующих работ?