1C÷Linux÷PostgreSQL÷Apache

Администрирование - Системное

Дружим 1С с Линуксом ИЛИ Установка окружения для работы с 1С на Линуксе под Постгресом и Апачем.

Платформа 1С в последнее время бурно развивается, приобретая много различных функций, в том числе поддержку различных операционных систем (ОС). Возможность установки сервера 1С на линукс существует еще с платформы 8.2 и даже на данном портале можно найти множество статей и руководств по данной тематике. Но все же я опишу процесс подготовки тестового (или даже боевого) сервера на линуксе в современных реалиях.

Пару лет вынашивал идею написать эту статью, но никак не брался за нее, а в свете текущих политических тенденций за импортозамещение данная тема становится все актуальнее.  На момент написания статьи актуальная платформа 8.3.11. Сразу скажу, что здесь будут только основы для подготовки окружения без настройки всяких оптимизаций, безопасности и прочего. Минимальные знания ОС GNU/Linux необходимы. Картинок в статье не будет, так как вся дальнейшая работа будет происходить в черной-черной консоли. Ну, помчали...

 

1) Установка GNU/Linux

За основу серверной операционной системы возьмем свежий 64-х разрядный дистрибутив Ubuntu 17.10.1 (https://www.ubuntu.com/download/server). Устанавливаем операционную систему на физический или виртуальный сервер (я использовал виртуализацию на основе VirtualBox (https://www.virtualbox.org/wiki/Downloads)). Думаю, что с установкой проблем не должно возникнуть, если не понимаете, соглашайтесь с установщиком.

После входа в систему обновим ее:

# apt update && apt upgrade -y && reboot

Здесь и далее команды, начинающиеся с '#' выполняются под суперпользователем, а с '$' - под текущим пользователем с ограниченными правами.

Можно удалить старое ядро и исходники:

# apt purge linux-image-4.13.0-21
# apt purge linux-headers-4.13.0-21

Если вы проделываете установку на VirtualBox, то необходимо установить дополнения гостевой ОС:

а) установим необходимые пакеты для дальнейшей сборки дополнений:

# apt install -y dkms build-essential

б) подключим гостевые дополнения и перезагрузимся:

# mount /dev/cdrom /media/cdrom
# cd /media/cdrom
# ./VBoxLinuxAdditions.run
# reboot

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

# usermod -G vboxsf -a ИмяПользователя
$ logout

Теперь для удобства русифицируем консоль (сменим шрифт):

# nano /etc/default/console-setup

Должно быть так:

    ACTIVE_CONSOLES="/dev/tty[1-6]"
    CHARMAP="UTF-8"
    CODESET="guess"
    FONTFACE="Fixed"
    FONTSIZE="8x16"

$ setupcon

Сменим локаль (данный шаг важен, если будете ставить Постгрес):

# dpkg-reconfigure locales

Выберем

    ru_RU.UTF-8 UTF-8

и отметим ее по умолчанию.

Для возможности удаленного администрирования установим ssh

# apt install -y openssh-server

На этом элементарную предподготовку ОС можно считать выполненной.

 

2) Установка 1С

Теперь ставим платформу 1С. Я использовал 64-х битную платформу 8.3.11.3034 (deb-пакеты, с национальными языками).

Скачиваем файл deb64.tar.gz (https://releases.1c.ru/project/Platform83), распаковываем данный архив:

$ tar -xzvf deb64.tar.gz

Устанавливаем пакеты через менеджер:

# dpkg -i 1c-enterprise83-common_8.3.11-3034_amd64.deb
# dpkg -i 1c-enterprise83-server_8.3.11-3034_amd64.deb
# dpkg -i 1c-enterprise83-ws_8.3.11-3034_amd64.deb

Если вам нужны дополнительные языки, кроме английского и русского, то ставим nls-пакеты

# dpkg -i 1c-enterprise83-common-nls_8.3.11-3034_amd64.deb
# dpkg -i 1c-enterprise83-server-nls_8.3.11-3034_amd64.deb
# dpkg -i 1c-enterprise83-ws-nls_8.3.11-3034_amd64.deb

Даем созданному эской пользователю права на директорию с установленной платформой:

# chown -R usr1cv8:grp1cv8 /opt/1C

Ставим шрифты от M$ (соглашаемся с лицензией при установке):

# apt install -y ttf-mscorefonts-installer

Доустанавливаем нужные зависимые библиотеки:

# apt install -y libfontconfig1
# apt install -y imagemagick

Запускаем 1с сервер:

# service srv1cv83 start

Проверим состояние службы (должна быть в состоянии active):

$ service srv1cv83 status

Если у вас отсутствует DNS-сервер, который будет резолвить имена, то нужно прописать имя сервера в хосты на клиенте:

# nano /etc/hosts

    xxx.xxx.xxx.xxx    servername

 

Установим драйвер аппаратных лицензий платформы (HASP):

а) скачиваем на сайте 1С либо на сайте производителя (https://safenet-sentinel.ru/helpdesk/download-space/) и распаковываем:

$ unzip sentinel_ldk_run_time_linux.zip

б) так как пакет под 32-битную архитектуру, то нужно доустановить 32-х разрядные библиотеки:

# sh install_32bit_compatibility_package_for_x64.sh

в) устанавливаем пакет через менеджер:

# dpkg -i --force-architecture aksusbd_7.63-1_i386.deb

г) проверим состояние службы (должна быть в состоянии active):

$ service aksusbd status

Учтите, что для 64-х разрядного сервера 1С нужен соответствующий ключ защиты.

 

3) Установка PostgreSQL

Следующим шагом будет установка бесплатной СУБД PostgreSQL от "Postgres Pro" (https://postgrespro.ru/products/1c)

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

# apt install -y gnupg2

Скачаем ключ репозитория:

$ wget --quiet -O - http://repo.postgrespro.ru/pgpro-9.6/keys/GPG-KEY-POSTGRESPRO | sudo apt-key add -

Подключим репозиторий:

#  sh -c 'echo "deb http://repo.postgrespro.ru/pgpro-9.6/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro.list'

И установим саму СУБД (данная сборка создана на основе открытой PostgreSQL с патчами от фирмы 1С):

# apt update
# apt install -y postgresql-pro-1c-9.6

Проверим состояние службы (должна быть в состоянии active):

$ service postgresql status

Меняем пароль учетной записи psql "postgres", созданной по умолчанию:

$ sudo -u postgres psql

# \password

Вводим новый пароль и выходим из консоли управления psql:

# \q

 

На этом этапе можно создать клиент-серверную версию демонстрационной базы от 1с с именем demo

а) перейдем в каталог платформы:

$ cd /opt/1C/v8.3/x86_64

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

$ ./ras --daemon cluster

в) прочитаем инфу о кластере:

$ ./rac cluster list

г) получим список баз по данному кластеру (CLUSTER_UID - идентификатор кластера с предыдущего шага):

$ ./rac infobase --cluster=CLUSTER_UID summary list

д) добавим администратора кластера:

$ ./rac cluster admin --cluster=CLUSTER_UID register --name=admin --pwd=Pa$$w0rD --auth=pwd

е) добавим базу:

$ ./rac infobase create --cluster=CLUSTER_UID --create-database --name=demo --dbms=PostgreSQL --db-server=localhost --db-name=demo --locale=ru --db-user=postgres --db-pwd=Pa$$w0rD --cluster-user=admin --cluster-pwd=Pa$$W0rD --license-distribution=allow

 

4) Установка Apache

Устанавливаем Web-сервер:

# apt install apache2

Проверим состояние службы (должна быть в состоянии active):

$ service apache2 status

Создадим папку для vrd-файла:

# mkdir -p /var/www/1c/8.3.11.3034/demo

Создадим файл конфигурации apache:

# touch /etc/apache2/conf-available/demo.conf

Переходим в каталог платформы:

$ cd /opt/1C/v8.3/x86_64/

Публикуем базу:

# ./webinst -apache24 -wsdir demo -dir '/var/www/1c/8.3.11.3034/demo' -connstr 'Srvr="localhost";Ref="demo";' -confPath /etc/apache2/conf-available/demo.conf

Подключаем демо конфигурацию:

# a2enconf demo

Перезапускаем веб-сервер с применением изменений:

# service apache2 reload

Теперь можно открыть конфигурацию в веб-браузере по ее URL: 
    http://servername/demo

 

На этом этапе окружение готово и его можно применять в целях тестирования (либо в небольшой конторе, тем самым сэкономив на лицензиях забугорных товарищей ;-) ).

Конечно, для реальной эксплуатации еще нужно правильно настраивать Постгрес, повышать безопасность через файервол и т. д. и т. п., но это уже другая история...

См. также

Комментарии
Сортировка: Древо
1. spezc 482 26.03.18 09:51 Сейчас в теме
Несмотря на то, что подобных статей вагон и тележка - все равно спасибо. Таких статей много не бывает.
Мах; baracuda; Gorus; cleaner_it; +4 Ответить
2. vano-ekt 1107 26.03.18 10:18 Сейчас в теме
а в десктопе можно и клиент поставить (в т.ч. этот ваш Конфигуратор)
3. Gilev.Vyacheslav 1779 26.03.18 14:36 Сейчас в теме
VirtualBox под продуктив?
blackhole321; kc-ropa; +2 Ответить
4. SerVer1C 147 26.03.18 15:00 Сейчас в теме
(3) Улыбнуло... )) Использую тестовое окружение на VirtualBox для тестирования/отладки веб-клиента. Если серьезно, то любой спец. по IT должен понимать, что алгоритм в "железе" выполнится в разы быстрее аналогичного софтового алгоритма.
10. Gilev.Vyacheslav 1779 26.03.18 22:57 Сейчас в теме
(4) тестирование в среде отличной от продуктива приводит к "неожиданностям" в продуктиве
тут дело даже не в скорости, а в предсказуемости результата

если уж виртуализация "неизбежна", ну тогда хотя бы тестируйте в клоне виртуалки продуктива
Nigelist; +1 Ответить
16. SerVer1C 147 27.03.18 01:04 Сейчас в теме
(10) Полностью с вами согласен. Но для разработки в 1с под веб подойдет и *nix в виртуалке.
5. quick 566 26.03.18 15:17 Сейчас в теме
подтянул полезные команды в свою сборку 1С в docker.
Все руки не дойдут простенький веб интерфейс сделать для rac
6. oldfornit 26.03.18 15:28 Сейчас в теме
а насколько необходимо ставить -nls-пакеты на более-менее свежих дистрибутивах?
Кстати, dpkg -i 1c-enterprise83-common_8.3.11-3034_amd64.deb и далее для каждого пакета можно заменить на
dpkg -i ./*.deb - установка всех deb-ов из текущего каталога
7. SerVer1C 147 26.03.18 16:07 Сейчас в теме
(6) По умолчанию, в дистрибутив включены языки "en" и "ru". Если вы хотите еще 15 дополнительных языков, то ставьте nls-пакеты. Про замену команд тут неоднозначно: если у вас в данной папке нет других файлов, то да, можно написать "dpkg -i *" , а если есть другие файлы, то, чтобы не путать читателя, написал полный список команд.
cleaner_it; +1 Ответить
8. kuld 305 26.03.18 16:29 Сейчас в теме
А где SSL и HTTPS? Я уж не говорю о настройке бесплатного сертификата от доверенного CA.
А где настройка по расписанию бэкапов средствами pgdump и cron?
А где Kerberos для авторизации пользователей от AD на линуксовом сервере?

Не, не зачет )) вот моя, более полная инструкция
Dmitri93; Stan; obmanOZ; ErshKUS; ikekoval; A_Max; regint; baracuda; cleaner_it; unichkin; Fox-trot; WizaXxX; +12 Ответить
12. SerVer1C 147 27.03.18 00:36 Сейчас в теме
(8) Вы сначала к своему сайту SSL привяжите )) Цель гайда - показать простоту развертывания актуальной платформы 1с на linux, а не умение админить сервера.
79123890854; baton_pk; Alien_job; +3 Ответить
29. baracuda 3 28.03.18 10:27 Сейчас в теме
(8) у вас реально топ статья) лайкую
9. morohon 26.03.18 22:50 Сейчас в теме
Ubuntu 17.10.1 взята для примера? Может стоит сделать оговорку касательно срока поддержки Linux дистрибутивов и намекнуть использовать LTS (а лучше CentOS)?
kc-ropa; regint; +2 Ответить
13. SerVer1C 147 27.03.18 00:40 Сейчас в теме
(9) Версия Ubuntu 17.10.1 с ограниченным сроком поддержки взята исключительно в качестве примера как один из свежих дистрибутивов. Что использовать в качестве боевого линукса - вопрос риторический.
25. morohon 28.03.18 09:34 Сейчас в теме
(13) Да, вы полностью правы. Просто многие не берут этот важный фактор во внимание.
36. the1 314 29.03.18 08:57 Сейчас в теме
(25) А можно подробнее про это?
11. DjSpike 26.03.18 23:57 Сейчас в теме
За статью спасибо. Для 1с все также не подходит оригинальный postgresql из дистрибутива ???
15. SerVer1C 147 27.03.18 00:58 Сейчас в теме
(11) В продакшн - не подойдет.
14. SerVer1C 147 27.03.18 00:45 Сейчас в теме
(11) Оригинальный Постгрес будет работать с 1С, но не во всех сценариях использования. Так что нужно обязательно накладывать патчи от фирмы 1С на оригинальную версию СУБД.
17. 79123890854 27.03.18 07:40 Сейчас в теме
Помогите пожалуйста, застрял на этапе установки postgresql
# echo deb http://1c.postgrespro.ru/archive/2017_12_26/deb artful main > /etc/apt/sources.list.d/postgrespro-1c.list
apt update

Ошибка на скриншоте.
Прикрепленные файлы:
18. SerVer1C 147 27.03.18 08:44 Сейчас в теме
(17) Вот новая информация от Postgres Pro (см. https://postgrespro.ru/products/postgrespro/download/9.6.8.2):
# sh -c 'echo "deb http://repo.postgrespro.ru/pgpro-9.6/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro.list'
wget --quiet -O - http://repo.postgrespro.ru/pgpro-9.6/keys/GPG-KEY-POSTGRESPRO | sudo apt-key add -
# apt update
19. 79123890854 27.03.18 09:41 Сейчас в теме
(18) Это отработало без ошибок.
Далее apt install -y postgresql-pro-1c-9.6.
Не удалось найти пакет.
Прикрепленные файлы:
20. SerVer1C 147 27.03.18 10:24 Сейчас в теме
(19) В *nix системах регистр букв важен! Поэтому "1С" <> "1c"
21. 79123890854 27.03.18 10:34 Сейчас в теме
(20) по всякому уже пробовал, не получается.
22. SerVer1C 147 27.03.18 10:41 Сейчас в теме
(21) Попробуйте найти точное имя пакета через команду
apt-cache search postgresql-pro
23. beregnov.av_2015 27.03.18 14:41 Сейчас в теме
(19) Попробуйте вот так
apt-get update -y
apt-get install -y wget gnupg2
wget -O - http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | apt-key add -
echo deb http://1c.postgrespro.ru/archive/2018_03_02/deb bionic main > /etc/apt/sources.list.d/postgrespro-1c.list
apt-get update -y
apt-get install -y postgresql-pro-1c-9.6
24. ogre2007 109 27.03.18 18:22 Сейчас в теме
Народ, а что с торговым оборудованием в *nix? Сколько мозгов нужно, чтобы настроить СШК, ПЭ, ТСД? Есть банальная печать ШК? Есть успешные внедрения с ТО, с каким?
41. SerVer1C 147 30.03.18 15:51 Сейчас в теме
(24) Из своего опыта могу сказать, что в современных линуксах настроить печать не сложнее, чем в "окнах". Если, конечно, это не Win-принтер, который тоже можно настроить, имея определенные знания. А многие печатающие устройства ШК - это обыкновенные принтеры. Про остальную торговую периферию не скажу точно. Да, с ней могут возникнуть трудности, т. к. драйвер может быть только под win или будет использоваться какой-то COM-объект или какая-то управляющая утилита будет только для винды и т. п. В каждом случае придется разбираться отдельно. Но мир не стоит на месте, Linux активно движется и в клиентскую сферу.
26. Berckk 28.03.18 09:50 Сейчас в теме
(0) За статью спасибо.
Но устаревшие ядра лучше удалять перед перезагрузкой и автоматически.
Т.е. вместо
# apt update && apt upgrade -y && reboot
# apt purge linux-image-4.13.0-21
# apt purge linux-headers-4.13.0-21


# apt update &&  apt upgrade -y &&  apt autoremove -y && reboot
27. 79123890854 28.03.18 10:04 Сейчас в теме
До 12 подключений можно потестить без ключика?
28. SerVer1C 147 28.03.18 10:16 Сейчас в теме
(27) Платформу 8.3.10 можно (при наличии клиентской лицензии), а вот в 8.3.11 лазейку прикрыли... Для веб-клиента в любом случае обязательно нужна серверная лицензия.
30. 79123890854 28.03.18 11:13 Сейчас в теме
Ну postgrespro поставил. Дальше опять затык.
Прикрепленные файлы:
31. SerVer1C 147 28.03.18 12:56 Сейчас в теме
(30) Белым по черной консоли написано: "Администратор кластера не аутентифицирован"
Используйте команду с ключами аутентификации:
./rac infobase --cluster=CLUSTER_UID --cluster-user=admin --cluster-pwd=Pa$$w0rD summary list
32. 79123890854 28.03.18 13:42 Сейчас в теме
(31) Не получается. Как сменить пароль администратора кластера?

./rac cluster admin --cluster=9e1f4732-3171-11e8-5d9a-0800278d84a0 register --name=newadmin --pwd=1234 --auth=pwd
не работает, пишет:
Ошибка операции администрирования
Администратор кластера не аутентифицирован.
Прикрепленные файлы:
34. SerVer1C 147 28.03.18 16:27 Сейчас в теме
(32) Вам для экспериментов проще создать новый кластер:
./rac cluster insert --host=localhost --port=2541 --name=NewCluster
35. 79123890854 29.03.18 06:19 Сейчас в теме
(34) Новый кластер тоже не дает создать. Старый видимо нужно удалить?
Прикрепленные файлы:
38. SerVer1C 147 29.03.18 12:35 Сейчас в теме
(35) Переустановите сервер 1с и проделайте шаги строго по инструкции из статьи.
33. xioxao 28.03.18 14:07 Сейчас в теме
Нет мудрее связки чем WINDOWS+MSSQL)
37. Fox-trot 54 29.03.18 09:38 Сейчас в теме
если гугл внезапно тебя забанил, прошу сюды https://ru.wikipedia.org/wiki/Ubuntu#LTS
40. 79123890854 30.03.18 11:53 Сейчас в теме
Предлагаю в этой инструкции Pa$$w0rD везде поменять на 1234, а то если не поменять на своё по невнимательности, оно на самом деле принимает значение Pa2543w0rD.
42. CSiER 18 02.04.18 10:59 Сейчас в теме
За упоминание ОС в правильном варианте "GNU/Linux" отдельный плюс!
Оставьте свое сообщение