Платформа 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="8×16"
$ 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
На этом этапе окружение готово и его можно применять в целях тестирования (либо в небольшой конторе, тем самым сэкономив на лицензиях забугорных товарищей 😉 ).
Конечно, для реальной эксплуатации еще нужно правильно настраивать Постгрес, повышать безопасность через файервол и т. д. и т. п., но это уже другая история…
Несмотря на то, что подобных статей вагон и тележка — все равно спасибо. Таких статей много не бывает.
а в десктопе можно и клиент поставить (в т.ч. этот ваш Конфигуратор)
VirtualBox под продуктив?
(3) Улыбнуло… )) Использую тестовое окружение на VirtualBox для тестирования/отладки веб-клиента. Если серьезно, то любой спец. по IT должен понимать, что алгоритм в «железе» выполнится в разы быстрее аналогичного софтового алгоритма.
подтянул полезные команды в свою сборку 1С в docker.
Все руки не дойдут простенький веб интерфейс сделать для rac
а насколько необходимо ставить -nls-пакеты на более-менее свежих дистрибутивах?
Кстати, dpkg -i 1c-enterprise83-common_8.3.11-3034_amd64.deb и далее для каждого пакета можно заменить на
dpkg -i ./*.deb — установка всех deb-ов из текущего каталога
(6) По умолчанию, в дистрибутив включены языки «en» и «ru». Если вы хотите еще 15 дополнительных языков, то ставьте nls-пакеты. Про замену команд тут неоднозначно: если у вас в данной папке нет других файлов, то да, можно написать «dpkg -i *» , а если есть другие файлы, то, чтобы не путать читателя, написал полный список команд.
А где SSL и HTTPS? Я уж не говорю о настройке бесплатного сертификата от доверенного CA.
А где настройка по расписанию бэкапов средствами pgdump и cron?
А где Kerberos для авторизации пользователей от AD на линуксовом сервере?
Не, не зачет )) вотмоя, более полная инструкция
Ubuntu 17.10.1 взята для примера? Может стоит сделать оговорку касательно срока поддержки Linux дистрибутивов и намекнуть использовать LTS (а лучше CentOS)?
(4) тестирование в среде отличной от продуктива приводит к «неожиданностям» в продуктиве
тут дело даже не в скорости, а в предсказуемости результата
если уж виртуализация «неизбежна», ну тогда хотя бы тестируйте в клоне виртуалки продуктива
За статью спасибо. Для 1с все также не подходит оригинальный postgresql из дистрибутива ???
(8) Вы сначала к своему сайту SSL привяжите )) Цель гайда — показать простоту развертывания актуальной платформы 1с на linux, а не умение админить сервера.
(9) Версия Ubuntu 17.10.1 с ограниченным сроком поддержки взята исключительно в качестве примера как один из свежих дистрибутивов. Что использовать в качестве боевого линукса — вопрос риторический.
(11) Оригинальный Постгрес будет работать с 1С, но не во всех сценариях использования. Так что нужно обязательно накладывать патчи от фирмы 1С на оригинальную версию СУБД.
(11) В продакшн — не подойдет.
(10) Полностью с вами согласен. Но для разработки в 1с под веб подойдет и *nix в виртуалке.
Помогите пожалуйста, застрял на этапе установки postgresql
http://1c.postgrespro.ru/archive/2017_12_26/deb artful main > /etc/apt/sources.list.d/postgrespro-1c.list
# echo deb
apt update
Ошибка на скриншоте.
(17) Вот новая информация от Postgres Pro (см.https://postgrespro.ru/products/postgrespro/download/9.6.8.2):
http://repo.postgrespro.ru/pgpro-9.6/ubuntu $(lsb_release -cs) main» > /etc/apt/sources.list.d/postgrespro.list’
http://repo.postgrespro.ru/pgpro-9.6/keys/GPG-KEY-POSTGRESPRO | sudo apt-key add —
# sh -c ‘echo «deb
wget —quiet -O —
# apt update
(18) Это отработало без ошибок.
Далее apt install -y postgresql-pro-1c-9.6.
Не удалось найти пакет.
(19) В *nix системах регистр букв важен! Поэтому «1С» <> «1c»
(20) по всякому уже пробовал, не получается.
(21) Попробуйте найти точное имя пакета через команду
apt-cache search postgresql-pro
(19) Попробуйте вот так
Народ, а что с торговым оборудованием в *nix? Сколько мозгов нужно, чтобы настроить СШК, ПЭ, ТСД? Есть банальная печать ШК? Есть успешные внедрения с ТО, с каким?
(13) Да, вы полностью правы. Просто многие не берут этот важный фактор во внимание.
(0) За статью спасибо.
Но устаревшие ядра лучше удалять перед перезагрузкой и автоматически.
Т.е. вместо
# apt purge linux-image-4.13.0-21
# apt purge linux-headers-4.13.0-21
До 12 подключений можно потестить без ключика?
(27) Платформу 8.3.10 можно (при наличии клиентской лицензии), а вот в 8.3.11 лазейку прикрыли… Для веб-клиента в любом случае обязательно нужна серверная лицензия.
(8) у вас реально топ статья) лайкую
Ну postgrespro поставил. Дальше опять затык.
(30) Белым по черной консоли написано: «Администратор кластера не аутентифицирован»
Используйте команду с ключами аутентификации:
./rac infobase —cluster=CLUSTER_UID —cluster-user=admin —cluster-pwd=Pa$$w0rD summary list
(31) Не получается. Как сменить пароль администратора кластера?
./rac cluster admin —cluster=9e1f4732-3171-11e8-5d9a-0800278d84a0 register —name=newadmin —pwd=1234 —auth=pwd
не работает, пишет:
Ошибка операции администрирования
Администратор кластера не аутентифицирован.
Нет мудрее связки чем WINDOWS+MSSQL)
(32) Вам для экспериментов проще создать новый кластер:
./rac cluster insert —host=localhost —port=2541 —name=NewCluster
(34) Новый кластер тоже не дает создать. Старый видимо нужно удалить?
(25) А можно подробнее про это?
если гугл внезапно тебя забанил, прошу сюдыhttps://ru.wikipedia.org/wiki/Ubuntu#LTS
(35) Переустановите сервер 1с и проделайте шаги строго по инструкции из статьи.
Предлагаю в этой инструкции Pa$$w0rD везде поменять на 1234, а то если не поменять на своё по невнимательности, оно на самом деле принимает значение Pa2543w0rD.
(24) Из своего опыта могу сказать, что в современных линуксах настроить печать не сложнее, чем в «окнах». Если, конечно, это не Win-принтер, который тоже можно настроить, имея определенные знания. А многие печатающие устройства ШК — это обыкновенные принтеры. Про остальную торговую периферию не скажу точно. Да, с ней могут возникнуть трудности, т. к. драйвер может быть только под win или будет использоваться какой-то COM-объект или какая-то управляющая утилита будет только для винды и т. п. В каждом случае придется разбираться отдельно. Но мир не стоит на месте, Linux активно движется и в клиентскую сферу.
За упоминание ОС в правильном варианте «GNU/Linux» отдельный плюс!
На этапе смены локали (dpkg-reconfigure locales) при выборе локали по умолчанию может отсутствовать ru_RU.UTF-8 UTF-8. В этом случае ее надо предварительно установить: sudo apt-get install language-pack-ru
(44) Если взять другой дистрибутив, то там может и sudo не оказаться.