Рабочее место 1С на Linux через WSL. Часть 1 - Подготовка и базовая установка окружения 1С и PostgreSQL в WSL
В этой лабораторной работе мы сконфигурируем базовое рабочее место программиста на платформе 1С:Предприятие 8. Мы воспользуемся подсистемой WSL и установим дистрибутив Linux Ubuntu внутри операционной системы Windows. При этом сервер 1С:Предприятие и сервер базы данных PostgreSQL будут установлены и запущены в среде Linux, а графические клиенты, инструменты администрирования и СУБД-оснастки - на стороне Windows-хоста. Для проверки работоспособности полученного стенда мы развернем и загрузим демонстрационную базу данных 1С. В работе будет использоваться технологическая платформа 1С:Предприятие 8 версии 8.3.16.1148 и СУБД PostgreSQL 11.5 сборки компании 1С.
Теоретическая часть
Что такое WSL? WSL (Windows Subsystem for Linux) - это программный слой в операционной системе Windows, который делает её совместимой для запуска дистрибутивов Linux и скомпилированных для Linux консольных приложений. Использование WSL вместо полноценной виртуальной машины (например, Hyper-V или VirtualBox) дает разработчику ряд преимуществ:
- Очень простая и быстрая установка дистрибутивов Linux напрямую из Microsoft Store.
- Отсутствие необходимости сложного администрирования и настройки гипервизора.
- Прямой доступ Linux к ресурсам хоста: дисковому пространству, оперативной памяти, ядрам процессора и сетевому стеку без проброса адаптеров. Поддерживаемые дистрибутивы Компания 1С официально гарантирует стабильную работу серверных частей своих продуктов на дистрибутивах семейств Red Hat (RPM-пакеты) и Debian/Ubuntu (DEB-пакеты). В рамках этой лабораторной работы мы будем использовать проверенный и доступный в Microsoft Store дистрибутив Ubuntu 18.04 LTS.
Пошаговая инструкция
Шаг 1. Подготовка папок и дистрибутивов
- В ОС Windows на диске C: создайте папку TMP_C (она будет выступать в качестве локального репозитория для дистрибутивов).
- Скачайте в эту папку следующие компоненты:
- Дистрибутив сервера 1С:Предприятия (64-bit) для DEB-based Linux-систем версии 8.3.16.1148.
- Технологическую платформу 1С:Предприятия (64-bit) для Windows той же версии.
- Демонстрационную базу (выгрузку 1cv8.dt).
- СУБД PostgreSQL 11.5-12.1С (архив DEB) сборки 1С.
- Дополнительные зависимости PostgreSQL для Ubuntu 18.04.
- pgAdmin v4 для Windows.
- Терминал ConEmu для Windows.
Шаг 2. Включение WSL и установка Ubuntu 18.04
- Включите компонент Windows «Подсистема Windows для Linux» через панель управления Windows. Перезагрузите компьютер.
- Откройте Microsoft Store, найдите дистрибутив Ubuntu 18.04 LTS и нажмите кнопку «Получить».
- После завершения скачивания выполните первый запуск Ubuntu из меню «Пуск».
- Задайте имя пользователя (например, pen) и пароль:
Enter new UNIX username: pen
Enter new UNIX password:
Retype new UNIX password:
Шаг 3. Первичная настройка Linux
- Обновите индексы пакетов и установите системные обновления:
sudo apt update
sudo apt upgrade -y
- Сконфигурируйте русскую локаль (выберите ru_RU.UTF-8 UTF-8 в псевдографическом интерфейсе и задайте её по умолчанию):
sudo dpkg-reconfigure locales
- Проверьте установку локали с помощью команды locale -a.
Шаг 4. Связывание сети и настройка хостов
- Определите IP-адрес вашей Windows-машины (в примере используется статический домашний адрес 192.168.1.10).
- Откройте в Windows файл hosts (путь %windir%\system32\drivers\etc\hosts) под правами администратора и добавьте строчку сопоставления адреса и имени вашего ПК:
192.168.1.10 PEN-PC
Шаг 5. Установка дополнительных библиотек и шрифтов для 1С
- Установите необходимые серверные библиотеки 1С:
sudo apt install -y libwebkitgtk-3.0-0 libMagickWand-6.Q16 libfontconfig libfreetype6
libgsf-1-common libglib2.0 unixodbc libkrb5-3 libgssapi-krb5-2
- Скачайте и установите пакет дополнительных шрифтов TrueType:
cd ~/DISTR
wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-install
er_3.7_all.deb
sudo apt install ./ttf-mscorefonts-installer_3.7_all.deb
fc-cache -fv
Шаг 6. Установка сервера 1С:Предприятие
- Создайте рабочий каталог и скопируйте дистрибутив платформы из папки Windows:
mkdir -p ~/DISTR/1CSRV
cp /mnt/c/TMP_C/deb64_8_3_16_1148.tar.gz ~/DISTR/1CSRV/
cd ~/DISTR/1CSRV
tar -xvf deb64_8_3_16_1148.tar.gz
- Установите пакеты сервера:
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
- Включите режим отладки на сервере: откройте файл конфигурации /etc/init.d/srv1cv83 через текстовый редактор nano и раскомментируйте параметр SRV1CV8_DEBUG=1.
- Запустите службу сервера 1С:
sudo service srv1cv83 start
Шаг 7. Установка и базовая настройка СУБД PostgreSQL
- Скопируйте и установите зависимости СУБД:
mkdir -p ~/DISTR/SQLDEP
cp /mnt/c/TMP_C/ubuntu_18.04.3_server.x64.tar.gz ~/DISTR/SQLDEP/
cd ~/DISTR/SQLDEP
tar -xvf ubuntu_18.04.3_server.x64.tar.gz
cd ubuntu_18.04.3-server.x64
sudo apt install ./*.deb
- Скопируйте и установите пакеты PostgreSQL сборки 1С:
mkdir -p ~/DISTR/SQL
cp /mnt/c/TMP_C/postgresql_11.5_12.1C_amd64_deb.tar.bz2 ~/DISTR/SQL/
cd ~/DISTR/SQL
tar -xvf postgresql_11.5_12.1C_amd64_deb.tar.bz2
cd postgresql-11.5-12.1C_amd64_deb
sudo apt install ./*.deb
- Зафиксируйте версии пакетов для предотвращения неконтролируемого обновления:
sudo apt-mark hold libpq5 postgresql-11 postgresql-client-11
- Запустите службу PostgreSQL:
sudo service postgresql start
- Переключитесь на пользователя postgres и задайте пароль базы данных:
sudo su postgres
psql
ALTER USER postgres WITH PASSWORD '1111';
\q
exit
Практическое задание
Цель работы: Настроить рабочую среду СУБД PostgreSQL и сервера 1С на ОС Linux в WSL, связать их с оснастками Windows и загрузить тестовую конфигурацию. Задание:
- ☐ Разверните СУБД PostgreSQL и сервер 1С в подсистеме WSL согласно пошаговой инструкции.
- ☐ Запустите консоль «Администрирование серверов 1С:Предприятия» на стороне Windows и добавьте новый центральный сервер с именем PEN-PC (укажите имя вашего хоста).
- ☐ Создайте кластер серверов 1С с именем PEN-Cluster на порту 1541.
- ☐ В СУБД PostgreSQL создайте пустую информационную базу данных DemoDB с кодировкой UTF-8 для пользователя postgres с паролем 1111.
- ☐ Запустите Конфигуратор 1С из-под Windows, выберите расположение базы на сервере 1С:Предприятия (имя сервера: PEN-PC, имя базы: DemoDB) и загрузите демонстрационный файл выгрузки 1cv8.dt.
- ☐ Выполните успешный вход в систему 1С:Предприятие в режиме предприятия и убедитесь, что база функционирует стабильно.
Проверьте себя
- Что представляет собой подсистема WSL и какие преимущества она предоставляет разработчику по сравнению с классической виртуальной машиной? Ответ: WSL - это программный слой в Windows, транслирующий системные вызовы Linux API в системные вызовы Windows API, за счет чего Linux-приложения работают со скоростью хоста и имеют прямой доступ к памяти, сети и диску без накладных расходов на аппаратную виртуализацию.
- Зачем после ручной установки СУБД PostgreSQL от компании 1С необходимо выполнять команду apt-mark hold? Ответ: Чтобы зафиксировать версии пакетов от автоматического обновления. Иначе при общем обновлении системы PostgreSQL обновится до стандартной «ванильной» версии из публичных репозиториев Ubuntu, которая не содержит специфических доработок 1С для работы с блокировками, и базы перестанут запускаться.
- С какими ошибками может столкнуться кластер серверов 1С при некорректном разрешении имен хостов в WSL? Ответ: Из-за попытки сопоставить имена по протоколу IPv6 могут возникать сетевые таймауты и ошибки вида «Соединение с сервером потеряно». Решением является жесткое отключение IPv6 на сетевом адаптере или пропись соответствия в файле hosts.
- Где и для чего редактируется файл hosts в рамках настройки взаимодействия хост-системы Windows и сервера 1С в WSL? Ответ: Файл hosts редактируется в Windows по пути %windir%\system32\drivers\etc\hosts для того, чтобы сопоставить статический IP-адрес компьютера с сетевым именем хоста (например, 192.168.1.10 PEN-PC), гарантируя безошибочную маршрутизацию.
- Как в операционной системе Linux проверить статус запущенных служб и фоновых процессов сервера 1С и СУБД? Ответ: С помощью утилиты top или htop (где должны быть видны фоновые процессы postgres и ragent), а также с помощью команд проверки сервисов service postgresql status и service srv1cv83 status.
Попробовать НОПик →
Проверить свой уровень бесплатно →