Написать пост

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache

Аватарка пользователя Alexander Rudnitsky

Как настроить облако на примере комбинации 1С, Ubuntu и Apache, чтобы заместить иностранные технологии и избежать потери данных.

Уход западных вендоров корпоративных систем учета из России приводит наш бизнес к необходимости адаптировать отечественные аналоги. Одним из самых популярных решений для замены становится система 1С. Реалии ИТ сегодня таковы, что замещать приходится весь стек, на котором «крутится» корпоративный софт, включая сервера и ОС.

Демонстрируем, как может выглядеть настройка такого набора на примере комбинации 1С, Ubuntu и Apache.

Подготовка

Дано:

1. Компания, оказывающая облачные услуги, предоставляет доступ к серверу через SSH: адрес, порт, логин, пароль.

2. Подключаемся к серверу: ssh ip-адрес -p 22 -l пользователь

3. Чтобы большинство настроек выполнялось автоматически, и чтобы было удобней (для пользователей Windows привычней), установим графическую оболочку.

Также графическая оболочка нужна, чтобы работать в конфигураторе 1С. Самой быстрой, легкой и оптимальной в сочетании «удобство + производительность» является оболочка LXDE, поэтому устанавливаем ее.

			apt install lxde
		
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 1

Размер оболочки чуть меньше 2 Гб.

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 2

Экранную программу можно выбрать любую, я выбрал gdm3.

В оболочке LXDE автоматически устанавливается анимационная заставка; в нашем случае она лишняя, поэтому удаляем:

			dpkg --purge xscreensaver
		

4. Для безопасности устанавливаем обновления.

			apt upgrade
		

5. Перезагружаемся

			reboot
		

Основная часть

6. Создадим пользователя, под которым будем входить на сервер:

			useradd rudnitsky -m
		

7. Изменение пароля пользователя:

			passwd rudnitsky
		

8. Включить пользователя в группу sudo:

			usermod -aG sudo rudnitsky
		

9. Теперь нужно войти на сервер в графическом режиме. По умолчанию в Linux отсутствует RDP-сервер (по сравнению с Windows), а также отсутствует аналогичный производительный терминальный сервер.

В Linux есть множество вариантов организации терминального сервера, однако большинство из них настолько низкопроизводительны и низкостабильны, что работать просто невозможно. Наиболее оптимальными в сочетании «скорость + стабильность» являются два RDP-сервера: XRDP и X2GO.

У обеих программ сбоит буфер обмена.

У программы XRDP плюсом является возможность подключиться встроенным RDP-клиентом Windows, но есть замечания к безопасности.

У программы X2GO есть минус в необходимости устанавливать клиент, зато плюсом является безопасность, так как работает через протокол SSH, поэтому выбор пал на X2GO (wiki.x2go.org).

Установка серверной службы:

			apt-get install x2goserver x2goserver-xsession
		
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 3

Всего-то 18 Мб. В ранних версиях Ubuntu нужно было добавлять репозиторий:

			add-apt-repository ppa:x2go/stable
		

В версии 20.04 программа уже присутствует в стандартном репозитории.

Проверяем, что сервер X2GO работает:

			service x2goserver status
		
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 4

10. На своем компьютере (Linux Mint) устанавливаем клиент:

			apt install x2goclient
		

Клиент x2go есть и для систем: Windows, OS X, Ubuntu, Raspbian, Fedora, Redhat, Slackware, FreeBSD; также можно собрать клиент из исходников.

В клиентском приложении X2GO настраиваем подключение.

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 5

и подключаемся

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 6

11. При первом запуске сеанса в целях безопасности нам предлагают сохранять историю сохранений и копирований, но эта опция мало на что влияет, поэтому «No».

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 7

12. Настраиваем рабочее окружение.

Для удобства оставляем только один рабочий стол.

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 8

13. Так как в x2go буфер обмена сбоит, а при установке и при выполнении настроек нужно часто копировать пароль, то временно нужно скопировать или вписать пароль в текстовом редакторе. Так как система Ubuntu Server, то удобные привычные текстовые редакторы отсутствуют, поэтому установим Geany:

			apt install geany
		

14. И для редактирования системных файлов, чтобы исключить сбои настроек (такая ошибка присутствует в Linux), установим другой текстовый редактор, например, gedit:

			apt install gedit
		

Устанавливаем русский язык:

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 9
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 10

16. Завершаем сеанс и входим заново, чтобы дальше работать в русскоязычном окружении.

17. Добавляем раскладку клавиатуры.

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 11
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 12

18. После перезапуска сеанса почему-то перестает открываться файловый менеджер PCManFM, поэтому устанавливаем другой файловый менеджер Thunar, легковесный, быстрый, удобный, достаточно функциональный.

			apt install thunar
		
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 13

Всего 11 Мб для файлового менеджера.

19. Создаем общий каталог, чтобы пользователи, работающие на сервере (например, консультанты и разработчики 1С) могли обмениваться в нем файлами.

			mkdir /C
		

 

			chmod -R u-rwx,g=rwx,o=rwx /C
		

20. Файл с настройками из эталонного профиля заменяем на общий системы:

			cp /home/rudnitsky/.config/lxpanel/LXDE/panels/panel /etc/xdg/lxpanel/default/panels/panel
		

 

			cp /home/rudnitsky/.config/lxpanel/LXDE/panels/panel /etc/xdg/lxpanel/LXDE/panels/panel
		

 

			cp /home/rudnitsky/.config/openbox/lxde-rc.xml /etc/xdg/openbox/LXDE/rc.xml
		

21. Проверяем указание имени сервера в файле hosts:

			sudo gedit /etc/hosts
		

 

			127.0.0.1 localhost
		

 

			127.0.1.1 prod
		

22. Скачиваем дистрибутив PostgreSQL с сайта 1С

В данном случае я скачал PostgreSQL-14.3-1.1C.

23. Распаковываем архив в отдельный каталог и запускаем установку:

			dpkg -i ./*.deb
		
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 14

В описании к данной версии указано, что протестировано на Ubuntu 20.04, однако, как видим, версия от 1С сходу отказывается устанавливаться.

Пробуем автоисправление зависимостей и ошибок:

			apt install -f
		

Повторная попытка установки безрезультатна. Читаем, какие зависимости требуются: libreadline7.

Находим: оказывается, пакет принадлежит дистрибутиву Ubuntu 18.04 (Bionic) — странная ситуация.

Скачиваем и пробуем установить пакет.

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 15

Опять препятствие; и похоже, что «чем дальше в лес», тем больше может быть неудовлетворенных зависимостей, поэтому придется добавить источник пакетов Bionic:

			sudo gedit /etc/apt/sources.list
		
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 16

Добавлена строка:

			deb http://cz.archive.ubuntu.com/ubuntu bionic main
		

Пробуем снова:

			apt update
		

 

			apt install -f
		

 

			dpkg -i ./*.deb
		

Ошибка исчезла, остались другие:

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 17

Устанавливаем требуемые зависимости:

			apt install -f
		

 

			apt install postgresql-common
		

 

			apt install libicu60
		

 

			apt install libllvm6.0
		

Фиксируем пакет, чтобы исключить обновление и поломку работоспособности

			apt-mark hold libicu60
		

Еще попытка:

			dpkg -i ./*.deb
		
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 18

Оказывается, автоматически установилась версия postgresql-common меньше, чем требуемая, и это тоже странно. Ищем более новую версию.

Версия 229 присутствует между дистрибутивами Ubuntu impish и jammy, а оба они более поздние, т. е. новее.

Здесь внимание! Нельзя указывать источник пакетов из более нового дистрибутива, так как пакеты могут обновиться, зависимости пересекутся и в результате невозможно будет установить ни одно приложение — проверил на собственном опыте.

Так как далее придется скачивать и устанавливать по одному пакету, для удобства установим менеджеры пакетов gdebi:

			apt install gdebi
		

 

			apt install aptitude
		

Устанавливаем зависимости:

			apt install libjson-perl
		

Скачиваем и устанавливаем пакеты:

			dpkg -i ./postgresql-client-common_238_all.deb
		
			dpkg -i ./postgresql-common_238_all.deb
		

Теперь попытка установки PostgreSQL проходит успешно с автоматической инициализацией кластера баз:

			dpkg -i ./*.deb
		
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 19

Проверим работоспособность:

			service postgresql status
		

 

			netstat -tlnp
		

 

			su postgres
		

 

			psql
		
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 20

24. В СУБД меняем пароль postgres:

			su postgres
		

 

			psql
		

 

			alter user postgres password 'СложныйПароль';
		

25. Подключаемся к базе под пользователем postgres с указанием пароля (стандартная практика при создании базы 1С):

26.

			psql template1 -U postgres;
		

 

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 21

Ошибка: по умолчанию разрешен вход только под системным пользователем postgres.

Включаем возможность авторизации по паролю.

			sudo gedit /etc/postgresql/14/main/pg_hba.conf systemctl restart postgresql
		

Теперь подключение успешно:

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 22
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 23

27. Скачиваем дистрибутив платформы 1С с сайта 1С

В данном случае я скачал 8.3.21.1302, выбрав строку «Технологическая платформа 1С:Предприятия (64-bit) для Linux».

28. Распаковываем архив, двойным кликом запускаем установку:

			sudo ./setup-full-8.3.21.1302-x86_64.run
		

29. Установка выглядит так, как будто мы работаем в Windows:

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 24
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 25
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 26
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 27
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 28

30. В файле службы включаем отладку:

			sudo gedit /opt/1cv8/x86_64/8.3.21.1302/srv1cv8-8.3.21.1302@.service
		

 

			Environment=SRV1CV8_DEBUG=-debug
		

31. В последних платформах 1С для Linux исключено автосоздание службы.

Создаем её вручную.

Для платформы до 8.3.21:

			ln -s /opt/1cv8/x86_64/8.3.20.1549/srv1cv83 /etc/init.d/srv1cv83
		

Настраиваем автозапуск службы:

			systemctl enable srv1cv83
		

 

			systemctl restart srv1cv83
		

 

			systemctl status srv1cv83
		

Для платформы, начиная с 8.3.21:

			systemctl link /opt/1cv8/x86_64/8.3.21.1302/srv1cv8-8.3.21.1302@.service
		

 

			systemctl enable srv1cv8-8.3.21.1302@
		

 

			systemctl restart srv1cv8-8.3.21.1302@default
		

Если понадобилось отредактировать файл службы (например, отключить отладку или сменить каталог), актуализируем службу:

			systemctl daemon-reload
		

Проверяем, что служба работает:

			systemctl status srv1cv8-8.3.21.1302@default
		

 

			netstat -tlnp
		
Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 29

32. Создаем базу 1С.

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 30

При создании базы может быть ошибка: «Authentication method 10 not supported».

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 31

Понижаем уровень шифрования пароля до md5:

			sudo gedit /etc/postgresql/14/main/postgresql.conf
		

 

			password_encryption = md5
		

Заодно можно сразу и настроить параметры в соответствии с данным сервером.

			ssl = off
max_connections = 1000
shared_buffers = 8GB
temp_buffers = 256MB
work_mem = 32MB
autovacuum_naptime = 2min
synchronous_commit = off
row_security = off
standard_conforming_strings = off
escape_string_warning = off
max_locks_per_transaction = 256
log_duration = on
log_min_duration_statement = 5000 #записывать запросы, которые выполнялись более 5 секунд.
		

Для применения изменений перезагружаем службу:

			systemctl restart postgresql
		

33. Устанавливаем Apache.

			apt install apache2
		

Проверяем работу в браузере

Как настроить облако на Linux Ubuntu 20.04, 1C и Apache 32

34. Если извне закрыты порты 80 и 443, то их нужно открыть (можно только для конкретного адреса или пути), чтобы проверить работу веб-сервера и публикуемых баз 1С:

			ufw allow 80
		

 

			ufw allow 443
		

Порты могут быть закрыты на стороне облачного провайдера, тогда придется попросить поставщика услуг об открытии.

35. Устанавливаем бесплатный сертификат от «Let’s Encrypt» через certbot. Каждые 3 месяца сертификат продлевается автоматически.

			snap install core
		

 

			snap refresh core
		

 

			snap install --classic certbot
		

 

			certbot –apache
		

При запросе домена, если домен отсутствует, указываем "ip-адрес сервера".sslip.io

36. Публиковать базу 1С можно теперь на самом сервере стандартным способом, аналогичным, как это делается в Windows.

Адрес базы по умолчанию:

			https://"ip-адрес сервера".sslip.io/ИмяБазы
		

Заключение

Как видим, развертывание 1С в Linux-среде c базой данных PostreSQL является полностью выполнимой задачей, а все возникающие трудности с настройкой в процессе носят вполне рабочий характер.

Linux и раньше был рабочим вариантом для развертывания 1С, и вендор предпринимал шаги для адаптации платформы под эту ОС. В новых условиях развития экономики использование Linux в качестве основной среды для всего комплекса задач корпоративного учета является оптимальным решением, поэтому мы продолжим серию публикаций на эту тему.

Следите за новыми постами
Следите за новыми постами по любимым темам
14К открытий14К показов