Как установить 1с на linux
Перейти к содержимому

Как установить 1с на linux

  • автор:

Установка 1С:Предприятие 8.3 на Linux сервер

В этой статье мы постарались собрать наиболее полную информацию по установке сервера приложений 1С:Предприятие в среде Linux с использованием СУБД PostgreSQL и публикацией информационной базы и веб-сервисов на веб-сервере Apache. Рассматривается наиболее полная установка сервера в домен Microsoft Windows. Пользователи работают на рабочих станциях в среде Windows, авторизация в системе 1С:Предприятие производится через Active Directory.

План работ

Установить операционную систему
Установить СУБД PostgreSQL
Установить сервер 1С:Предприятие
Зарегистрировать сервер в домене
Опубликовать информационную базу и веб-сервисы
Настроить резервное копирование

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

Если установка производится поверх уже работающей системы, сделайте резервную копию, например, сохраните образ дисков. Если что-то пойдет не так, Вы сможете быстро восстановить прежнюю работоспособность системы

Установка операционной системы

Поддерживаются наиболее популярные deb (Ububtu, Debian и пр.) и rmp (CentOS, Fedora и пр.) дистрибутивы. Каких-либо явных рекомендаций по выбору того или иного дистрибутива Linux не существует. Рекомендуем выбрать наиболее знакомый Вам дистрибутив, в нашем случае это Ubuntu актуальной на момент написания статьи версии 16.04 LTS, все дальнейшее описание будет основываться именно на этом выборе. Если Вы выбрали другой deb-based дистрибутив, то все описанное подойдет и для него, rmp-based дистрибутивы используют другие команды для управления пакетами, учитывайте это при адаптации статьи для своих целей. Скачайте дистрибутив Ubuntu Server. Применительно к Ubuntu желательно использовать LTS дистрибутивы, они выпускаются раз в два года и поддерживаются в течение 5 лет. Дистрибутив распространяется в виде ISO образа загрузочного диска, можно записать образ на DVD диск, но гораздо удобней подготовить загрузочную флешку.

В серверном дистрибутиве Ubuntu отсутствует графическая оболочка. Установка и последующая настройка будет производится в командной консоли. Не надо устанавливать графическую оболочку, хоть это и просто, но совершенно бессмысленно, она ничем не поможет в настройке. Для удобства администрирования потом можно установить, например, Webmin

Сам процесс установки достаточно прост. Инсталлятор будет задавать Вам различные вопросы, Вам нужно на них отвечать, тем самым выбирая как устанавливать операционную систему. Вначале Вам предложат выбрать язык и страну, часовой пояс, выбирайте в соответствии со своими предпочтениями.

Инсталлятор предложит Вам разметить диски под операционную систему. Это самый важный вопрос в установке. Внимательно ознакомьтесь с нижеследующими рекомендациями.

Если у Вас один физический диск (или RAID-массив), разделите его на 3 логических диска. В начале диска выделите 60-120 Гб собственно под операционную систему (диск 1), оставшуюся часть поделите примерно поровну под домашние папки (диск 2) и файлы СУБД (диск 3). Монтируйте следующим образом:

/ - диск 1 /home - диск 2 /var - диск 3

Если же дисковая система Вашего сервера более разнообразна, то самый медленный ее элемент рекомендуем монтировать как /home , а самый быстрый как /var .

Далее инсталлятор предложит Вам выбрать наборы пакетов для установки. Выберите для установки следующие наборы:

Как можно заметить, инсталлятор услужливо предлагает вариант установки PostgreSQL database. Не соблазняйтесь, нам нужен другой PostgreSQL, с патчем для 1С.

Инсталлятор закончит свою работу, перезапустит систему и пред Вами предстанет приглашение в консоль примерно такого вида:

Ubuntu 16.04.1 LTS MyServer tty1 MyServer login:

Заходите, и чувствуйте себя как дома.

Первым делом нужно настроить сетевые подключения. Мы имеем дело с сервером и подразумеваем, что сетевых адаптеров в нем может быть больше одного. Давайте посмотрим, что у нас есть, вводим в консоль команду

$ sudo lshw -C network

Здесь использована команда sudo — специальная конструкция deb-based дистрибутивов Linux для выполнения команд с правами root. Когда Вы делаете это первый раз система попросит Вас ввести пароль и на какое-то время запомнит его.

В ответ Вы получите нечто похожее на

*-network description: Ethernet interface product: L2 100 Mbit Ethernet Adapter vendor: Attansic Technology Corp. physical id: 3 bus info: pci@0000:03:00.0 logical name: enp0s3 version: a0 serial: 00:00:00:00:00:00 size: 100MB/s capacity: 100MB/s

Нас интересует вот этот фрагмент: logical name: enp0s3 . Если сетевых адаптеров больше одного, то и таких блоков в выдаче будет по количеству сетевых адаптеров. Запоминаем логические имена. Сетевые подключения настраиваются в конфигурационном файле, откроем его для редактирования

$ sudo nano /etc/network/interfaces

Допустим, у нас есть два сетевых адаптера. enp0s3 , его мы настроим на статический IP адрес и будем использовать для подключения к домену. Еще есть enp0s8 , он получит адрес от DHCP сервера в локальной сети, просто так, для примера. Файл настроек выглядит так:

# The loopback network interface auto lo iface lo inet loopback # The primary network interface iface enp0s3 inet static address 192.168.0.8 # здесь указываем статический адрес netmask 255.255.255.0 # маска подсети gateway 192.168.0.1 # шлюз по умолчанию dns-nameservers 192.168.0.101 # DNS сервера, можно указать несколько через пробел auto enp0s3 # The second network interface iface enp0s8 inet dhcp auto enp0s8

Сохраните файл нажав Ctrl-O и закройте редактор Ctrl-X. После редактирования перезапустим сеть:

$ sudo /etc/init.d/networking restart

и проверим что у нас получилось

$ ifconfig

В выдаче этой команды внимательно смотрим на значения inet addr — в нашем примере там должен быть статический адрес, заданный в конфигурационном файле для первого адаптера и динамический адрес выданный DHCP сервером для второго.

После того, как настроены сетевые подключения можно покинуть серверную. Дальнейшую настройку удобнее производить с рабочей станции, подключившись по протоколу SSH.

Для дистанционного управления сервером с рабочей станции Windows мы будем использовать PuTTy. Скачайте, установите и подключайтесь. Адрес сервера в нашем примере указывается так user@192.168.0.8 , где user — имя пользователя, порт по умолчанию 22 .

Далее нам потребуется копировать файлы на наш сервер. Что бы делать это максимально комфортно, настроим пакет Samba, позволяющий подружить Linux и Windows по локальной сети.

Задача минимум сейчас — расшарить папку на сервере, куда мы сможем копировать нужные файлы.

$ sudo nano /etc/samba/smb.conf

В конфигурационном файле находим и раскомментируем блок

[homes] comment = Home Directories browseable = no read only = no create mask = 0700 directory mask = 0700

Добавим нашего пользователя в Samba

$ sudo smbpasswd -a user

Указываем ему пароль и включаем

$ sudo smbpasswd -e user

И перезапускаем Samba

$ sudo service smbd restart

Попробуем зайти из проводника Windows. В нашем примере это будет выглядеть так \\192.168.0.8\user , вводим имя, пароль и попадаем в домашнюю папку.

Обратите внимание, нужно вводить сетевой адрес полностью, указывая не только адрес сервера, но и имя каталога пользователя

На всякий случай обновите русскую локаль

$ sudo update-locale LANG=ru_RU.UTF-8

Установка СУБД PostgreSQL

1С:Предприятие работает со специально пропатченной версией PostgreSQL. Версия из репозитория Ubuntu не подойдет.

Существует несколько источников, где можно взять дистрибутив PostgreSQL совместимый с 1С:Предприятие. Можно, например, как рекомендует сама фирма «1С» скачать его с портала ИТС и установить из deb или rpm пакетов, такой подход вполне привычен для пользователей Windows, скачивать и устанавливать. В Linux другой подход. Например, для поклонников Gentoo Linux привычно было бы скачать исходники PostgreSQL, пропатчить их и скомпилировать. А философия Ubuntu базируется на репозиториях, откуда пользователи получают нужные программы, устанавливая их менеджерами пакетов. К сожалению фирма «1С» не озаботилась созданием такого репозитория для распространения специальной версии PosgreSQL, зато это сделала компания Postgres Professional.

К сожалению, компания PostgresPro ограничила доступ к своим репозиториям, на официальном сайте указано, что они доступны в рамках сервисного контракта. Скачайте и установите DEB пакеты с портала 1С:ИТС.

Сначала всё-таки стоит добавить официальный репозиторий PostgreSQL в Ubuntu. Это будет полезно для разрешения зависимостей пакетов.

Качаем файл postgresql_10.5_24.1C_amd64_deb.tar.bz2 где 5_24 — актуальный на момент написания статьи номер сборки, к моменту, когда Вы это прочтете он может стать другим, берите самую актуальную сборку.

Распакуем, перейдем в папку с пакетами, установим и зафиксируем версии, что бы Ubuntu при автоматическом обновлении не заменила эти пакеты на стандартные из репозитория:

$ tar xvjf postgresql_10.5_24.1C_amd64_deb.tar.bz2 $ cd postgresql-10.5-24.1C_amd64_deb $ sudo dpkg -i libpq5_10.5-24.1C_amd64.deb $ sudo apt install postgresql-common $ sudo dpkg -i postgresql-client-10_10.5-24.1C_amd64.deb $ sudo dpkg -i postgresql-10_10.5-24.1C_amd64.deb $ sudo apt-mark hold libpq5 $ sudo apt-mark hold postgresql-client-10 $ sudo apt-mark hold postgresql-10

Не забываем заменять 5-24 на номер скачанной сборки.

Настроим права на подключение к СУБД из консоли.

$ sudo nano /etc/postgresql/10/main/pg_hba.conf

В открывшемся файле найдем строку

local all postgres peer

и приведем ее к виду

local all postgres trust

Только что мы настроили PostgreSQL доверять всем локальным подключениям. Это не совсем безопасно, мы исправим это чуть позже, после того как установим пароль пользователю postgres.

Если не хотите, что бы сервер СУБД был виден кому-либо, кроме сервера 1С:Предприятие, который мы чуть позже установим, поправьте настройки безопасности

$ sudo nano /etc/postgresql/10/main/postgresql.conf

В открывшемся файле находим строку

listen_addresses = '*'

и приводим ее к виду

listen_addresses = 'localhost'

Такая настройка ограничит видимость PostgreSQL только этим сервером. Если сервер 1С:Предприятие будет установлен на другой машине, вместо localhost укажите ее адрес.

После такой установки PostgreSQL его служба сама не стартует и не прописывается в автозагрузку. Сделаем это

$ sudo service postgresql start $ sudo update-rc.d postgresql enable

И еще немного настроек безопасности. Установим пароль password на пользователя postgres , именем которого будут производится все операции с базами данных (вместо password укажите свой пароль).

$ psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'password'"

Поправим методы аутентификации пользователей

$ sudo nano /etc/postgresql/10/main/pg_hba.conf

В открывшемся файле устанавливаем все методы в md5 , например, так

local all postgres md5

Перезапускаем службу PostgreSQL

$ sudo service postgresql restart

Установка сервера 1С:Предприятие

При выборе архитектуры дистрибутива i386 или x86-64 следует учитывать не только архитектуру сервера и установленной на него операционной системы, но и имеющуюся у Вас лицензию на сервер 1С:Предприятия. Здесь описывается процесс установки 64-разрядного сервера в x86-64 архитектуру. Установка 32-разрядного сервера в i386 архитектуру аналогична с точностью до наименования некоторых файлов и каталогов. Установка 32-разрядного сервера в архитекруту x86-64 потребует решения проблем зависимостей пакетов, и этот подвиг достоин отдельной статьи

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

$ sudo apt install imagemagick unixodbc libgsf-bin ttf-mscorefonts-installer

В процессе установки пакета ttf-mscorefonts-installer потребуется принять условия пользовательского соглашения EULA.

Любым законным способом получаем дистрибутив платформы 1С:Предприятия для deb-based Linux, например, скачиваем его с портала ИТС. Сервер 1С:Предприятие состоит из 3-х пакетов:

1c-enterprise83-common — общие компоненты
1c-enterprise83-server — собственно сам сервер, пакет зависим от общих компонент
1c-enterprise83-ws — веб-расширения сервера, пакет зависим от самого сервера

Если в 1С:Предприятии кроме русского и английского Вам потребуются другие языки, берите пакеты в наименовании которых присутствует NLS

Скопируйте только эти 3 файла по сети в домашний каталог пользователя, в нашем примере \\192.168.0.8\user Устанавливать пакеты нужно именно в такой последовательности. Случайно или нет, они по алфавитному порядку выстраиваются именно так, как нужно, а значит их можно установить одной командой

$ sudo dpkg -i 1c*.deb

Сервер установлен. Запускаем

$ sudo service srv1cv83 start

Подразумевается, что активация сервера будет проводится программной лицензией. Если по каким-либо причинам у вас появится желание воткнуть в сервер ключ HASP, скачайте и установите пакет haspd от Etersoft

Если конфигурация 1С:Предприятие имеет дополнительную защиту, установите СЛК

К серверу уже можно подключаться через консоль администрирования серверов, активировать лицензии и создавать информационные базы.

Отладка на сервере

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

$ sudo nano /etc/init.d/srv1cv83

Ищем в файле строку вида

#SRV1CV8_DEBUG=

Раскомментируем и включаем

SRV1CV8_DEBUG=1

Сохраняем Ctrl-O, закрываем редактор Ctrl-X. Обновляем системных демонов и рестартуем сервер 1С.

$ sudo systemctl daemon-reload $ sudo service srv1cv83 restart

Регистрация сервера в домене

Процедура имеет смысл только если используется домен Microsoft Windows и планируется авторизация пользователей 1С:Предприятие по учетной записи Active Directory

Как обычно, начнем с установки необходимых пакетов

$ sudo apt install krb5-user

Если при установке системы не устанавливали Samba, то самое время сделать это

$ sudo apt install samba

И еще может понадобиться, а может нет, но лучше установить

$ sudo apt install libpam-krb5

Настроим DNS

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

Сначала разберемся с именем самого сервера

$ sudo nano /etc/hostname

В этом файле должно быть указано имя компьютера, данное ему при установке операционной системы. Если по каким-то причинам там не оно — исправьте.

Теперь научим его находить самого себя по своему короткому и полному доменному имени.

$ sudo nano /etc/hosts

Здесь нужно сопоставить имена с IP адресом любого сетевого соединения, например, так

127.0.0.1 localhost 127.0.0.1 myserver.domain.ru myserver

Теперь собственно настроим DNS . Допустим, контроллер домена у нас находится на адресе 192.168.0.1 . Если IP адрес задается статически, делаем так

$ sudo nano /etc/resolvconf/resolv.conf.d/head

и прописываем имена и адреса

domain domain.ru search domain.ru nameserver 192.168.0.1

Если есть еще один сервер службы имен в домене, добавьте в файл еще одну строчку nameserver с его адресом.

При получении IP адреса от DHCP по идее все должно настроиться автоматически, но есть нюансы, записи домена могут не определиться. Исправляем

$ sudo nano /etc/dhcp/dhclient.conf

Добавляем запись домена

supersede domain-name "domain.ru";

Чтобы добавить еще один сервер службы имен домена находим в этом файле строку prepend domain-name-servers , раскомментируем ее и указываем нужный IP адрес.

Перезапустим службу сети

$ sudo /etc/init.d/networking restart

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

$ ping server $ ping server.domain.ru

Синхронизируем часы

Чуть далее мы будем использовать протокол Keberos , а для его корректной работы важно, что бы системные часы контроллера домена и нашего сервера были синхронизированы.

Забегая еще далее скажем, что для авторизации пользователей 1С:Предприятие через учетную запись Active Directory нужно что бы и часы рабочих станций были синхронизированы с контроллером домена.

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

$ sudo apt install ntpd
$ sudo nano /etc/ntp.conf

укажем источник точного времени в домене — контроллер домена

server server.domain.ru
$ sudo /etc/init.d/ntp restart

Настроим авторизацию через Kerberos

Открываем конфигурационный файл

$ sudo nano /etc/krb5.conf

И приводим его к такому виду, разумеется заменяя имена и IP адреса нашего примера под свои условия

[libdefaults] default_realm = DOMAIN.RU # заглавными буквами kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true v4_instance_resolve = false v4_name_convert = { host = { rcmd = host ftp = ftp } plain = { something = something-else } } fcc-mit-ticketflags = true [realms] DOMAIN.RU = { kdc = server # сервер службы имен #kdc = dns-server # второй сервер имен, если есть admin_server = server # контроллер домена default_domain = DOMAIN.RU # имя домена указывайте именно так - заглавными буквами } [domain_realm] .domain.ru = DOMAIN.RU domain.ru = DOMAIN.RU [login] krb4_convert = false krb4_get_tickets = false

В Linux, в отличии от Windows, регистр букв имеет значение. Например, в одной папке совершенно спокойно могут находится два файла file.txt и File.txt, и никто не помешает создать еще пару FILE.txt и file.TXT. Обратите внимание на написание имени домена в конфигурационном файле — это важно!

Пробуем войти в домен как его пользователь ivanov

$ kinit ivanov@DOMAIN.RU

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

$ klist

Он выглядит примерно так

Valid starting Expires Service principal 15.02.2017 23:08:18 16.02.2017 09:08:18 krbtgt/DOMAIN.RU@DOMAIN.RU renew until 16.02.2017 23:08:07

И он нам больше не нужен, удалим его

$ kdestroy

Настроим Samba и включим сервер в домен

Мы уже немного настраивали Samba для того, что бы нам было удобнее копировать дистрибутивы по сети. Эти настройки будут полезны в будущем при обновлении платформы 1С:Предприятие, оставьте их. В этом разделе описаны другие настройки.

Открываем файл конфигурации Samba

$ sudo nano /etc/samba/smb.conf

И приводим его примерно к такому виду

[global] workgroup = DOMAIN # заглавными буквами realm = DOMAIN.RU # заглавными буквами security = ADS # авторизация через Active Directory encrypt passwords = true # с шифрованием паролей dns proxy = no socket options = TCP_NODELAY domain master = no # этот блок настроек указывает, что мы не главные в домене local master = no preferred master = no os level = 0 domain logons = no load printers = no # принтерами управлять не будем show add printer wizard = no printcap name = /dev/null disable spoolss = yes # добавьте сюда блоки и настройки, которые мы делали в разделе установки операционной системы

Проверим правильность настроек

$ testparm

Если ошибок нет, и правильно установлена роль

Server role: ROLE_DOMAIN_MEMBER

то мы готовы включиться в домен, разумеется, если знаем пароль администратора домена domainadministrator

$ sudo net ads join -U domainadministrator -D DOMAIN

Если Вы видите нечто похожее на

Using short domain name -- DOMAIN Joined 'MyServer' to dns domain 'domain.ru'

то поздравляем, у Вас все получилось, Вы в домене!

Авторизация пользователей 1С:Предприятие на Linux сервере через Active Directory

В клиент-серверном варианте работы 1С:Предприятие аутентификация пользователей производится на сервере. Если сервер работает под управлением Windows, то он без проблем получает нужные права для того, что бы проверить учетную запись Active Directory.

В Linux дела обстоят иначе. Сервер 1С:Предприятие у нас работает под учетной записью usr1cv8 , которая имеет какие-либо права только в пределах нашего linux-сервера. В домене у этого linux-пользователя нет никаких прав, соответственно сервер 1С:Предприятие не может получить ничего от Active Directory.

Что бы исправить эту проблему серверу 1С:Предприятие нужно выдать специальный «билет» и сопоставить его с пользователем Active Directory по протоколу Keberos.

Создайте такого пользователя в Active Directory, назовите его, например, linux1сv8 . Права у него могут быть совершенно любые, главное, что бы в настройках его учетной записи была отключена опция Use DES encryption types with this account .

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

Теперь нам потребуется командная строка Windows рабочей станции, включенной в домен и утилита ktpass , найти ее можно в пакете «Windows Support Tools» сервера или «Средства удаленного администрирования» полнофункциональных версий настольных Windows. Эта утилита генерирует специальный ключ, который не-windows системы могут использовать для авторизации в домене по протоколу Keberos.

ktpass -princ linux1сv8/myserver.domain.ru@DOMAIN.RU -mapuser usr1cv8 -pass -out usr1cv8.keytab

Вот тут следует уделить особое внимание именам пользователей. Этой командой нам надо, что бы в файл usr1cv8.keytab был записан ключ, с помощью которого linux-пользователь usr1cv8 через протокол Keberos будет представлен в домене как пользователь AD linux1сv8@domain.ru вошедший в домен с хоста myserver.domain.ru

Полученный файл переместите по сети в домашнюю папку на linux-сервер \\myserver\user . А на сервере его нужно переместить в каталог, где установлено 1С:Предприятие, поменять ему владельца и назначить безопасные права

$ sudo mv /home/user/usr1cv8.keytab /opt/1C/v8.3/x86_64 $ sudo chown usr1cv8:grp1cv8 /opt/1C/v8.3/x86_64/usr1cv8.keytab $ sudo chmod 600 /opt/1C/v8.3/x86_64/usr1cv8.keytab

Проверим, все ли сделано правильно

$ sudo -u usr1cv8 klist -e -k -t /opt/1C/v8.3/x86_64/usr1cv8.keytab

Если Вы видите нечто похожее на

Keytab name: FILE:usr1cv8.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 4 01.01.1970 03:00:00 usr1cv8/myserver.domain.ru@DOMAIN.RU (arcfour-hmac)

то у Вас все получилось, поздравляем!

Файл .keytab нужно сделать только для одного пользователя AD, в нашем примере это linux1сv8@domain.ru. Не надо делать такие файлы для всех учетных записей AD пользователей 1С:Предприятие

В 1С:Предприятии для авторизации через Active Directory учетные записи нужно указывать маленькими буквами и с полным наименованием домена, вот так: \\domain.ru\ivanov

Публикация на веб-сервере Apache

Использовать один и тот же сервер в качестве сервера приложений (а также СУБД) и web-сервера безопасно только в закрытой сети предприятия Интранет. Для публикации в Интернет правильно будет использовать отдельный web-сервер и разместить его в DMZ

1С:Предприятие релизов до 8.3.9 поддерживало публикацию информационной базы на веб-сервере Apache версии не выше 2.2. Для использования Apache 2.4, включенного в репозитории Ubuntu 16.04 LTS обновитесь до актуального релиза технологической платформы 1С:Предприятие.

Как всегда, начинаем с установки нужных нам пакетов. Если Вы разворачиваете отдельный сервер для web-публикации, при установке на него операционной системы достаточно указать, что этот сервер будет работать как LAMP (Linux Apache MySQL Php).

Если сервер уже установлен без Apache

$ sudo apt install apache2

Уточним, что мы установили из репозитория

$ apache2 -v
Server version: Apache/2.4.18 (Ubuntu) Server built: 2016-07-14T12:32:26

2.4 — этот номер версии нам нужно будет указать при публикации, соответственно в параметре публикации указываем -apache24 . Все остальные параметры указаны для установки Apache 2.4 по-умолчанию.

$ sudo /opt/1C/v8.3/x86_64/webinst -apache24 -wsdir base1c -dir /var/www/html/base1c -connstr "Srvr=myserver;Ref=base1c;" -confPath /etc/apache2/apache2.conf $ sudo service apache2 restart

Проверяем, заходим через браузер http://myserver/base1c и видим веб-клиента 1С:Предприятие.

Опубликуем веб-сервисы. Утилита webinst этого не сделала, а значит придется сделать это самим. Для этого нужно отредактировать файл публикации информационной базы, созданный этой утилитой

$ sudo nano /var/www/html/base1c/default.vrd

В этот XML файл после блока, описывающего подключение к информационной базе нужно добавить блоки с описанием публикуемых веб-сервисов информационной базы, например, для работы мобильного приложения 1С:Заказы с поддерживаемыми конфигурациями нужно опубликовать веб-сервис CustomerOrdersExchange . Подробнее см. информацию в документации к прикладному решению на платформе 1С:Предприятие.

После изменений в конфигурационных файлах не забывайте перезапускать Apache.

Мы настроили публикацию информационной базы по протоколу HTTP. Это вполне годится для Интранет, но ни в коем случае не публикуйте так базу в открытом доступе в сети Интернет. По протоколу HTTP все данные, в т.ч. пароли пользователей передаются в незашифрованном виде. Обязательно настройте безопасный протокол HTTPS

Настройка HTTPS

Для совсем правильного и безопасного доступа по протоколу HTTPS нужно получить цифровой сертификат, подписанный удостоверяющим центром (Certificate Authority). Такие сертификаты гарантируют не только шифрование трафика между клиентом и сервером, но и обезопасят ваших пользователей от кражи паролей, особенно, если они будут подключаться из публичных wi-fi сетей.

Такой сертификат можно приобрести практически у любого хостинг-провайдера, многие предлагают первый выпуск базового сертификата сроком действия 3 или 12 месяцев бесплатно. Стоимость продления начинается примерно от $50, в зависимости от опций.

Еще вариант — получить сертификат центра сертификации Let’s Encrypt. Его выпуск и продление совершенно бесплатны. Сертификат выпускается сроком на 3 месяца, зато процесс его выпуска, продления и установки в веб-сервер Apache полностью автоматизированы.

Здесь же мы опишем выпуск т.н. самоподписанного сертификата.

Никто, кроме Вас не сможет проверить правильность самоподписанного сертификата и при подключении к информационной базе у пользователя не будет никакой гарантии, что он подключается именно к Вашему серверу. Трафик будет шифроваться, так что это относительно безопасно

Создадим SSL сертификат

$ openssl req -new -x509 -days 365 -keyout myserver.key -out myserver.pem

Укажите PEM pass phrase — пароль приватного ключа. На остальные вопросы можете отвечать как угодно, кроме Common Name (eg, YOUR name) []: — тут следует указать доменное имя сайта. В результате в домашней папке появится два файла myserver.key — приватный ключ и myserver.pem — публичный сертификат. Что бы Apache при загрузке не спрашивал непонятно у кого пароль приватного ключа, снимем его

$ cp myserver.key $ openssl rsa -in myserver.key.orig -out myserver.key $ rm myserver.key.orig

Переместим их в безопасное место и настроим права доступа только для root

$ sudo mv myserver.pem /etc/ssl/certs/ $ sudo mv myserver.key /etc/ssl/private/ $ sudo chmod 0600 /etc/ssl/private/server.key

Переходим к настройкам Apache, включаем поддержку SSL

$ sudo a2enmod ssl

И настраиваем доступ по HTTPS. Открываем файл конфигурации сайта по-умолчанию

$ sudo nano /etc/apache2/sites-enabled/000-default

и приводим его к такому виду

 *:80> # Перенаправим все поступающие по HTTP запросы на HTTPS хост Redirect / https://mysite.ru/ # mysite.ru - это доменое имя или IP адрес вашего сайта >  mod_ssl.c>  *:443> ServerAdmin webmaster@mysite.ru ServerName mysite.ru DocumentRoot /var/www/html # Это путь по-умолчанию ErrorLog /var/log/apache2/mysite.ru-error.log CustomLog /var/log/apache2/mysite.ru-access.log combined # SSL SSLEngine on SSLProtocol all -SSLv2 SSLCertificateFile /etc/ssl/certs/myserver.pem SSLCertificateKeyFile /etc/ssl/private/myserver.key > >
sudo service apache2 restart

Мы полностью запретили использование незащищенного протокола HTTP. Все запросы, поступающие на него будут перенаправляться на HTTPS

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

Резервное копирование

В клиент-серверном варианте работы 1С:Предприятие резервное копирование производится средствами СУБД. Т.к. СУБД PostgreSQL у нас теперь работает на Linux-сервере резервное копирование будет выполняться скриптами на этом сервере

Резервное копирование в PosеgreSQL выполняется утилитой pg_dump . Подробная справка по синтаксису выводится командой

$ pg_dump --help

Например, что бы сделать резервную копию базы base1c нужно выполнить такую команду

$ pg_dump -f base1c.sql.tar -F t -d base1c -h localhost -U postgres

Обратите внимание, запуск утилит резервного копирования и восстановления производится не от суперпользователя, без конструкции sudo. Файл бэкапа будет сформирован в текущем каталоге и его владельцем будет пользователь

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

$ pg_restore --help

Пример восстановления базы base1c из бэкапа base1c.sql.tar

$ pg_restore -d base1c -F t -U postgres base1c.sql.tar

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

Бэкап сохранился в домашней папке пользователя, это лучше, чем ничего, но хранить резервные копии баз данных на самом сервере баз данных слишком самоуверенно. Когда-то давно резервные копии делали на ленты стримера и увозили их куда подальше в надежное место. Сейчас для резервного копирования используются сетевые или облачные NAS хранилища, расположенные в таком надежном месте. В нашем примере копирование будет выполняться на сетевое NAS хранилище, включенное в домен под сетевым именем nas .

Обеспечим к нему доступ нашего пользователя. В Active Directory создадим пользователя backupuser, дадим ему права на запись в папке, где будем складывать резервные копии.

Прочим пользователям полностью запретите доступ к этой папке или оставьте права только на чтение. Так резервные копии будут целее.

Примонтируем сетевую папку, сначала создадим точку монтирования

$ sudo mkdir /mnt/nas

затем настроим автоматическое монтирование при старте системы, для чего сначала создадим файл-мандат на подключение к сетевому хранилищу

$ sudo nano /root/.smbcredintals

Прописываем в файл параметры подключения

username=backupuser password=backupuserpassword domain=domain.ru

и скроем его от посторонних глаз

$ sudo chmode 0600 /root/.smbcredintals

Пропишем подключение сетевой папки при старте системы

$ sudo nano /etc/fstab

в конец файла добавляем

//nas/backups /mnt/nas cifs credentials=/root/.smbcredentials,dir_mode=0777,file_mode=0777 0 0

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

$ sudo mount -a

В результате в точке монтировали /mnt/nas должна появиться папка сетевого хранилища \\nas\backups , куда можно складывать резервные копии.

Для выполнения автоматического резервного копирования нужно создать скрипт, который будет запускаться по расписанию демоном cron . К счастью, писать этот скрипи самому не нужно, в сообществе PostgreSQL уже написано много таких скриптов, рекомендую использовать канонический скрипт.

Альтернативный вариант — установить Webmin — веб интерфейс для администрирования Linux-сервера, и уже с его помощью настроить резервное копирование в службе PostgreSQL

Используйте скрипт pg_backup_rotated.sh , он сохраняет резервные копии за несколько дней, автоматически удаляя старые копии.

Создайте в домашней папке пользователя файл pg_backup_rotated.sh и разместите в нем скрипт по указанной выше ссылке.

Не делайте это в Windows редакторах. Из-за различия в служебных символах, обозначающих конец строки в Windows и Linux интерпретатор скриптов bash будет выдавать ошибки.

Установите для этого файла признак исполняемости

$ chmod +x pg_backup_rotated.sh

В том же каталоге создайте файл настроек pg_backup.config и заполните его как по указанной выше ссылке. Все настройки можно оставить по умолчанию, кроме

BACKUP_DIR=/mnt/nas/

Проверьте работоспособность, выполните команду

$ ./pg_backup_rotated.sh

Если не увидели никаких ошибок и процесс копирования пошел, то все сделано правильно, можно поставить задачу в расписание. Редактируем задания для демона cron

$ crontab -e

добавляем строчку с заданием

0 19 * * 1-5 /home/user/pg_backup_rotated.sh

Резервное копирование будет выполняться в 19:00 с понедельника по пятницу.

Поздравляем! Только что Вы сэкономили много тысяч рублей на лицензиях Microsoft.

linux_server.txt · Последнее изменение: 2021/03/24 08:01 — kuld

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain

Простая установка 1С на Linux (Ubuntu)

Ярослав Гагарин

Продажа программ 1С, установка и настройка программы. Помощь в установке 1С. Консультации и обслуживание.

от 2 600 руб.

Установка 1С и регионах

Установка 1С и регионах

Бесплатно установим/настроим при покупке версии ПРОФ или КОРП. 1000+ клиентов по РФ. Платные услуги от 1600 ₽

Сопровождаем с гарантией до 12 мес.

Сопровождаем с гарантией до 12 мес.

Реальная практика работы с компаниями от 5 до 1 500 пользователей 1С:ЗУП. Сопровождение по всей РФ удаленно

от 2 800 ₽/час

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

Видео эксперта

Скачивание и подготовка файлов 1С

Для того чтобы начать установку 1С, надо подготовить дистрибутивы. Начнем с вопроса: «Для какой ОС мы подбираем 1С – для 32- или 64-битной?». После заходим на сайт, где компания 1С выкладывает дистрибутивы. Введя логин и пароль, заходим в раздел с дистрибутивами и там, найдя нужные нам в списке, сохраняем на компьютер следующие архивы:

  • Клиент 1С:Предприятие для DEB-based Linux-систем;
  • Сервер 1С:Предприятие для DEB-based Linux-систем.

Дистрибутивы для DEB-based Linux-систем

На Ubuntu используется формат файлов DEB. Но поскольку мы скачали с сайта архивы, надо все скачанные пакеты распаковать и переместить в один каталог. В результате должен получиться такой список файлов:

  1. 1c-enterprise83-client_8.3.16-1148_amd64.deb;
  2. 1c-enterprise83-client-nls_8.3.16-1148_amd64.deb;
  3. 1c-enterprise83-thin-client_8.3.16-1148_amd64.deb;
  4. 1c-enterprise83- thin-client -nls_8.3.16-1148_amd64.deb;
  5. 1c-enterprise83-common_8.3.16-1148_amd64.deb;
  6. 1c-enterprise83-common-nls_88.3.16-1148_amd64.deb;
  7. 1c-enterprise83-crs_8.3.16-1148_amd64.deb;
  8. 1c-enterprise83-server_8.3.16-1148_amd64.deb;
  9. 1c-enterprise83-server-nls_8.3.16-1148_amd64.deb;
  10. 1c-enterprise83-ws_8.3.16-1148_amd64.deb;
  11. 1c-enterprise83-ws-nls_8.3.16-11482_amd64.deb.

На этом этапе подготовка заканчивается и можно приступать непосредственно к установке 1С на Линукс.

Процесс установки 1С на Ubuntu

Чтобы установить 1С на Linux, необходимо открыть терминал («Приложения»>«Стандартные») и перейти в папку, где сложены все файлы.

Терминал с файлами

В этом нам поможет команда «cd» (пример использования – «cd /etc/apt»). После этого, необходимо запустить установку скачанных пакетов в определенном порядке. Для этого последовательно вводим следующие команды в запущенный терминал:

  1. sudo dpkg -i 1c-enterprise83-common_8.3.16-1148_amd64.deb
  2. sudo dpkg -i 1c-enterprise83-common-nls_8.3.16-1148_amd64.deb
  3. sudo dpkg -i 1c-enterprise83-server_8.3.16-1148_amd64.deb
  4. sudo dpkg -i 1c-enterprise83-server-nls_8.3.16-1148_amd64.deb
  5. sudo dpkg -i 1c-enterprise83-ws_8.3.16-1148_amd64.deb
  6. sudo dpkg -i 1c-enterprise83-ws-nls_8.3.16-1148_amd64.deb
  7. sudo dpkg -i 1c-enterprise83-crs_8.3.16-1148_amd64.deb
  8. sudo dpkg -i 1c-enterprise83-thin-client_8.3.16-1148_amd64.deb
  9. sudo dpkg -i 1c-enterprise83-thin-client-nls_8.3.16-1148_amd64.deb
  10. sudo dpkg -i 1c-enterprise83-client_8.3.16-1148_amd64.deb
  11. sudo dpkg -i 1c-enterprise83-client-nls_8.3.16-1148_amd64.deb

Установка скачанных пакетов

При установке на Ubuntu могут возникнуть проблемы с отсутствием пакета «libwebkitgtk-1.0-0». Решить ее достаточно просто с помощью последовательного ввода команд в терминал «apt-get install libwebkitgtk-1.0-0» и «apt-get -f install».

Установка сервера 1С на Линукс

Никита Егоров

100% настроек удаленно. Базовая настройка — 0 ₽ при покупке у нас версий ПРОФ и КОРП. Услуги от 30 мин.

Доработки от Сервис-партнера 1С

Доработки от Сервис-партнера 1С

Опыт более 100 000 часов доработок разных 1С с 2003 г. Работаем со всеми регионами РФ. Гарантия до 12 мес.

от 2 800 ₽/час

Гарантия до 12 мес. на сопровождение 1С

Гарантия до 12 мес. на сопровождение 1С

Надежный партнер по поддержке и развитию 1С-инфраструктуры. Повышаем отказоустойчивость работы 1С на 70%.

от 2 800 ₽/час

Настройка сервера 1С:Предприятие на Linux (Линукс), а также установка тонкого клиента на платформе 1С:Предприятие 8 требуют выполнения ряда первоначальных настроек для различных версий Linux. То есть для дистрибутивов, основанных на Debian и для дистрибутивов, основанных на RMP, будут различные настройки.

Также для эффективной работы сервера и клиентской части 1С:Предприятие рекомендуется установить сервер баз данных PostgreeSQL.

Не все версии платформы 1С:Предприятие 8 работают под операционной системой Linux. Фирма «1С» рекомендует использовать последние версии, которые можно скачать на официальном сайте технической поддержки, используя свой логин и пароль для доступа

Немного расскажем о том, что такое версия 1С:Предприятие для Linux систем, где именно можно скачать актуальную версию для вашей платформы Линукс и какие действия нужно выполнить, чтобы платформа 1С:Предприятие запустилась на Linux.

Версия платформы 1С Предприятие для Linux

Итак, на сайте технической поддержки фирмы 1С, осуществив переход по ссылке одной из последних версий, например, одной из 8.3.22, можно увидеть предложенные для скачивания сборки для Windows, комбинированные для Windows и Linux, комбинированные для Windows, Linux и macOS.

Лучшим решением для дистрибутивов, основанных на Debian, будет использование технологической платформы 1С:Предприятия для Linux и технологической платформы или тонкого клиента для Linux.

Лучшим решением для дистрибутивов, основанных на RPM будет использование отдельно сервера 1С:Предприятие для RMP-based Linux операционных систем и клиента для 1С:Предприятие для RMP-based Linux.

Версия платформы для Linux

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

Также следует точно знать, какую операционную систему вы используете – 32-битную или 64-битную. То есть какая у вашей операционной системы разрядность.

Для этого существует простой способ – использовать в терминале команду arch. Результатом этой команды будет текстовая строка i386 для 32-битных операционных систем и текстовая строка x86_64 для 64-битных операционных систем.

Способ посложнее – использовать команду uname -a, которая выведет всю возможную информацию о вашей версии операционной системы Linux.

Результатом выполнения команды uname -a будет строка вида Linux OmenDeb 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 GNU/Linux, в которой вы также сможете увидеть разрядность вашей операционной системы.

Фирма «1С» тестирует работоспособность релизов платформы 1С:Предприятие для Linux и регулярно публикует в разделе системных требований перечень дистрибутивов, для которых работа платформы гарантируется

И если вашей коммерческой компании или бюджетной организации по роду деятельности/специальным требованиям необходимо наличие дистрибутив операционной системы для серверов и рабочих станций со встроенными программными средствами защиты информации, сертифицированными ФСТЭК России, то обратите внимание на операционную систему Линукс Альт СП (ALT Linux).

Выбор версии Linux для 1С Предприятия

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

Одни из самых популярных дистрибутивов Linux, которые используют для развертывания системы «1С:Предприятия», – это Ubuntu и CentOS.

Ubuntu – использует менеджер пакетов .deb, а CentOS – .rpm. Для пользователя нет особенных различий между версиями 1С:Предприятие для разных ОС Linux, однако для настройки, установки, администрирования и дальнейшей поддержки – различия более чем существенные.

Многообразие операционных систем Линукс существенно усложняет поддержку релизов, версий платформы, загрузку обновлений для платформы, а также для типовых решений на платформе 1С:Предприятие.

Необходимо проконсультироваться со специалистами, прежде чем разворачивать решения 1С:Предприятие для операционной системы Linux на большом количестве рабочих станций.

Типовые и индивидуальные настройки 1С

Типовые и индивидуальные настройки 1С

Снизим дальнейшие ошибки в учете на 50%. Работаем с 2003 года, знаем как сохранить стоимость владения 1С

Сопровождаем 1С более 20 лет

Сопровождаем 1С более 20 лет

Обеспечиваем бесперебойную работу от 1 до 2000+ пользователей. 9 выгодных тарифов. Поддержка по РФ

от 2 800 ₽/час

Настраиваем сервер и запускаем службу 1С Предприятие для Linux

Установка сервера 1С Предприятие – последовательная процедура. Чтобы установить основные дистрибутивы в Linux-подобных операционных системах, нужно скачанные дистрибутивы .deb или .rpm последовательно установить с правами администратора.

Для этого используйте пакеты common (общие), server (сервер 1С:Предприятие), thin client (тонкий клиент) и client (обычный клиент).

После установки основных пакетов: common, server, thin client и client вполне возможно, что вам придется установить пакет imagemagick для работы с изображениями, пакет unixodbc – для работы с базами данных, пакет t1utils – для операций со шрифтами и скопировать фирменные шрифты в систему Линукс.

Настраиваем и запускаем 1С для Linux

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

В случае установки клиент-серверной версии и использовании сервера баз данных для хранения информации настоятельно рекомендуем установить утилиту администрирования сервера на платформе 1С:Предприятие.

Установка и настройка сервера на этом заканчивается, далее нужно устанавливать СУБД для хранения данных типовых решений.

Устанавливаем базу данных PostgreeSQL

Для хранения информации платформа 1С:Предприятие позволяет использовать файловые хранилища (данные хранятся в виде файла) и хранилища данных на основе SQL-баз данных.

Если для Windows-систем (ОС Windows) в основном используют базу данных Microsoft (Microsoft SQL Server), то для ОС Linux практически единственным решением будет использовать базу данных PostgreSQL.

Устанавливаем базу данных PostgreeSQL

Свободная объектно-реляционная система управления базами данных (СУБД) PostgreSQL также можно скачать с сайта релизов фирмы «1С». СУБД PostgreSQL является программным обеспечением, которое распространяется под лицензией PostgreSQL License (free and open-source).

Обратите внимание, что 1С размещает на своем сервере технической поддержки сразу несколько версий СУБД PostgreSQL, в частности версии под числовыми номерами 10, 11, 12, 13, 14, 15.

При развертывании и скачивании версии, убедитесь что ваш сервер 1С:Предприятие использует правильную версию драйверов.

Типовые решения 1С для операционных систем Линукс

Установка на сервер 1С Бухгалтерии

Это простая процедура. Вы скачиваете шаблон для формирования базы данных и из шаблона в указанный каталог или подключаемую базу данных СУБД PostreSQL устанавливаете типовое решение.

Обратите внимание, что шаблон конфигурации 1С:Бухгалтерия для Linux – это точно такой же шаблон, как и 1С:Бухгалтерия для Windows.

Установка на сервер 1С Управление торговлей

Тоже все просто: скачиваете шаблон для формирования базы данных и из шаблона в указанный каталог или подключаемую базу данных СУБД PostreSQL, устанавливаете типовое решение 1С.

Шаблон конфигурации 1С:Управление торговлей для Linux – это идентичный шаблон, как и 1С:Управление торговлей для Windows.

1С:Управление нашей фирмой

Установка на сервер 1С:Управление нашей фирмой предполагает скачивание шаблона для формирования базы данных и далее установку 1С из шаблона в указанный каталог или подключаемую базу данных СУБД PostreSQL.

Обратите внимание, что шаблон конфигурации 1С:Управление нашей фирмой для Linux – это точно такой же шаблон, как и 1С:Управление нашей фирмой для Windows.

1С:ERP Управление производством

Для установки на сервер 1С:ERP Управление производством необходимо также скачать шаблон для формирования базы данных и из него в указанный каталог или подключаемую базу данных СУБД PostreSQL установить 1С:ERP.

Шаблон 1С:ERP для Linux идентичен шаблону 1С: ERP для Windows.

Публикация баз данных под сервером Apache для Linux

После установки шаблона вашей базы данных 1С и размещении ее в файловом каталоге либо в СУБД PostreSQL вы можете опубликовать БД для внешнего доступа на сервере Apache.

Для этого нужно:

  1. Установить сервер Apache.
  2. Выпустить самоподписанный сертификат.
  3. Опубликовать вашу базу данных 1С на сервере и проверить доступ к базе данных в строке браузера внутри и извне системы (при наличии внешнего доступа).

Публикация баз данных под сервером Apache

Для доступа к вашей базе данных, которая опубликована на Linux, можно использовать тонкие клиенты как для Linux, так и для Windows или macOS.

Обратите внимание, что достаточно часто различные дополнения для типовых конфигураций или отраслевые конфигурации 1C используют дополнительные системы или библиотеки для реализации бизнес-задач.

Использование дополнительных библиотек для Linux не всегда возможно, так может не быть версии библиотеки для этой операционной системы.

Также обратите внимание, что возможны серьезные сложности при работе с торговым оборудованием: сканерами, принтерами, кассовыми терминалами, терминалами сбора данных, дисплеями покупателя. Связано с тем, что производители не всегда заботятся о наличии драйвера этого оборудования для Linux.

Основная рекомендация при публикации базы данных под сервером Apache для Linux – тщательно протестировать весь функционал, начиная от подключения торгового оборудования, заканчивая формированием печатных форм и выводом их на принтер.

Перечень возможных проблем при установке сервера 1С на Линукс

Сообщение «Не найдена библиотека..» для 1С на Линукс

В зависимости от вашего дистрибутива Linux и функционала системы для корректной работы 1С:Предприятие вам может понадобиться дополнительно самим установить внешние библиотеки.

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

Запуск сервера в режиме отладки для 1С на Линукс

Чтобы на сервере была доступна отладка, необходимо запустить его в ключом –debug. Для этого нужно отредактировать файл по адресу /etc/sysconfig/srv1cv83, установив значение переменной SRV1CV8_DEBUG=1, и после этого перезапустить сервер с помощью команды systemctl restart srv1cv83.

Расположение каталога данных кластера серверов для 1С на Линукс

По умолчанию, каталог кластера находится в директории пользователя, от имени которого запущен сервер 1С:Предприятие – $HOMEDIR/.1cv83/1C/1Cv83, например: /home/usr1cv8/.1cv8/1C/1cv8.

Чтобы изменить место расположения, необходимо, по аналогии с п. 1, изменить параметр SRV1CV8_DATA запуска в конфигурационном файле /etc/sysconfig/srv1cv83.

Учитывайте, что для подобных изменений у вашего пользователя для Линукс должны быть права на администрирование системы.

Технологический журнал сервера для 1С на Линукс

Для создания технологического журнала сервера 1С:Предприятие на Линукс нужно создать каталог для хранения логов и дать пользователю usr1cv8 (по умолчанию, под ним выполняется запуск серверной части 1С:Предприятие) права на запись в этот каталог.

Обычно каталог для технологического журнала создается в разделе Linux (Линукс) для хранения логов системы, например, командой mkdir -p /var/log/1c/logs.

Права на запись данных в каталог вы можете назначить пользователю командами:

  • chown -R usr1cv8 /var/log/1c;
  • chmod g+rw /var/log/1c.

Формирование дампов для 1С на Линукс

По умолчанию в Linux создание дампов отключено. Для настройки сбора дампов НЕ используется logcfg.xml, она осуществляется в ОС

Формирование дампов аварийного завершения настраивается для всех процессов, выполняемых от лица конкретного пользователя. Чтобы включить автоматическую генерацию дампов, необходимо в файл /etc/security/limits.conf добавить следующие строки:

  • usr1cv8 soft core unlimited;
  • usr1cv8 hard core unlimited.

Напомним, что usr1cv8 – по умолчанию имя пользователя, из под которого выполняется запуск серверной части 1С:Предприятия.

Сравнение быстродействия Linux и Windows версий 1С:Предприятие

Различия между Linux и Windows-системами радикальны в своей основе. Можно сказать, что Windows – это коммерческая система с элементами открытого кода, а Linux – это полностью открытая система.

Поддержка решений на открытых системах – важный элемент экономики Российской федерации. И совершенно точно использованием Linux подобных операционных систем для развертывания решений на платформе 1С:Предприятие будет развиваться.

В целом можно сказать, что решения на платформе Windows обладают большей производительностью, однако решения на платформе Windows существенно более требовательны к ресурсам.

Разница в цене для оборудования, которое может обеспечить поддержку сравнимого количества пользователей, сравнимого количества соединений, объема базы данных будет существенно различаться. При этом различия в цене на оборудование может превышать 1,5-2 раза.

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

Заключение

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

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

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

Большинство проблем, которые были связаны с работой типовых и отраслевых решений для Windows успешно решены разработчиками фирмы «1С» и разработчиками отраслевых решений, однако для ОС Linux этот путь еще только предстоит пройти.

Доверьте установку операционной системы Linux для платформы 1С 8.3 сертифицированным системным специалистам WiseAdvice-IT. У нас есть опыт успешно реализовыванных развертываний платформы 1С:Предприятие на серверах Linux.

Установка сервера 1С на Ubuntu 20.04

Установка сервера 1С на Linux с сервером СУБД PostgreSQL выгодна по нескольким причинам. Собственник бизнеса может получить существенную экономию за счёт использования свободно распространяемого ПО. Для сервера 1С можно использовать практически любое облако, что позволит экономить на приобретении оборудования, соединить географически разбросанные точки, использовать недорогие устройства для подключения в режиме терминального доступа, например, с использованием стандартного RDP-клиента Windows. Возможна установка на отдельно расположенном в уголке системном блоке, без подключённого монитора, дома или в офисе.

В этой статье я расскажу как установить 1С сервер на Ubuntu 20.04 с Postgres Pro Std 13, а также web-сервер на Apache2 и опубликовать туда созданную базу.

Установка сервера 1С на Ubuntu 20.04

Я принял решение развернуть тестовый стенд в Hyper-V на своём ноутбуке. Использовался ноутбук с такими основными параметрами:

Виртуальный контейнер Hyper-V:

  • 1 виртуальный процессор.
  • 3 Гб динамического ОЗУ.
  • Виртуальный жёсткий диск на 20 Гб.
  • DVD-привод с ISO образом Ubuntu Desktop 20.04.2 (64-bit).

Ubuntu Desktop разрядностью 64 bit я выбрал сознательно. Во-первых, Postgres Pro бывает только 64 bit. Во-вторых, мне нужно протестировать не только установку сервера 1С, но ещё и установку клиента 1С:Предприятие для Linux, чтобы подключиться из этой ОС к своему рабочему серверу, и наоборот. Установку и настройку Ubuntu 20.04, а также установку сервера XRDP оставлю вне рамок этой статьи.

1. Загрузка необходимых пакетов

В первую очередь я авторизовался на сайте users.v8.1c.ru для скачивания дистрибутивов платформы.

wH47jgYH1AayAAAAABJRU5ErkJggg==

На снимке экрана я подчеркнул пакеты, которые скачал:

D8g+IttNUyAAAAAElFTkSuQmCC

Затем мне необходимо скачать драйвер ключа защиты HASP для Linux, чтобы получать лицензии 1С по сети и с USB-ключа. У меня не заработала версия 7.90, и я пошёл по пути наименьшего сопротивления, скачав на тестовый стенд HASPD 7.40 (описание процесса приведу ниже). В целях корректного выполнения задачи по установке самого свежего ПО приведу ссылку на скачивание HASPD 7.90 и рекомендую ставить именно его.

5ePJwAAAADAK48y32w6TXecPpX+fyIJ1c+2cTASAAAAAElFTkSuQmCC

2. Получение инструкции по установке Postgresql Pro

Далее произвожу подготовку к установке СУБД. Я уже регистрировался на сайте производителя, поэтому захожу в личный кабинет, указываю операционную систему и дистрибутив. Соглашаюсь с лицензионным соглашением и получаю инструкцию для установки Postgres Pro Std в Ubuntu 20.04. Вы можете использовать её для установки этой программы.

BrCaX4DZfA0AAAAASUVORK5CYII=

Обратите внимание, что для использования любой версии PostgreSQL Pro необходимо покупать лицензию, но программу можно получить бесплатно для тестирования, изучения и разработки.

3. Обновление Ubuntu и установка пакетов

Все действия я буду производить из графического режима Ubuntu Desktop. Однако всё, что я делаю, относится в равной степени и к Ubuntu Server 20 64-bit. В графическом режиме Ubuntu есть утилита terminal, в которой и будут производиться все манипуляции. Для удалённого подключения к Linux в консольном режиме существует большое количество приложений, использующих SSH. Обычно я использую Putty RUS.

3yv4LnvcQRz4spjmCOSP3HOz9mv8MrjGf8f+IryyozkvOurKzv7iGv98fgbORTGUohWRwUAAAAASUVORK5CYII=

Для настройки репозитория Postgres Pro Std потребуется curl. И поставлю свой любимый файловый менеджер mc. До начала обновления пакетов Ubuntu в открытом терминале пишу:

sudo apt -y install mc curl

Пробую поставить пакет libpq, входящий в дистрибутив PostgreSQL, с сайта 1С и получаю ошибку о несоответствии версии библиотеки libssl.so. 1.0.0, а у меня развёрнута версия 1.0.3. Это свидетельствует от том, что в Ubuntu 20.04 более новые библиотеки, чем используются дистрибутивами пакетов.

Поэтому необходимо ещё добавить репозитории для установки всех пакетов, которые устарели в Ubuntu 20.04, однако нужны для установки HASPD и 1С. Поэтому выполняю команду:

echo ‘deb http://ru.archive.ubuntu.com/ubuntu/ bionic main universe’ >> /etc/apt/sources.list

sudo apt update

tkiFDhgwZMmTIkCHjLwk8Ieb1eNBe14y+9h7ojXqEmyPgdrvRerERg919+P+91QSkH6ho3wAAAABJRU5ErkJggg==

Соглашаюсь со всем, что просит apt (можно нажимать Enter).

8fxqexEE47HgQAAAAASUVORK5CYII=

После завершения перезагрузите систему, но перед этим убедитесь что дистрибутивы 1C и PostgreSQL Pro успешно загружены. После этого можно двигаться дальше. Ставлю необходимые для функционирования 1С пакеты:

apt install libwebkitgtk-3.0-0 libjavascriptcoregtk-3.0-0 libmagickwand-6.q16-6 libgsf-1-114 libkrb5-3 libgssapi-krb5-2 ttf-mscorefonts-installer

Запрещаю системе их обновлять:

apt-mark hold libwebkitgtk-3.0-0 libjavascriptcoregtk-3.0-0 libmagickwand-6.q16-6 libgsf-1-114 libkrb5-3 libgssapi-krb5-2 ttf-mscorefonts-installer

Ставлю необходимые пакеты для установки драйвера HASP:

apt install dkms flex bison

4. Добавление репозитория PostgreSQL Pro

Для добавления репозитория PostgreSQL Pro выполните такие команды:

curl -o apt-repo-add.sh https://repo.postgrespro.ru/pgpro-13/keys/apt-repo-add.sh

EPIIAAAAASUVORK5CYII=

5. Установка и запуск HASPD

Установка HASPD в Ubuntu 20.04 довольно проблематична, в версии 7.90 не захотел устанавливаться aksusbd — модуль, который работает с USB-устройствами — ключами HASP, поэтому служба не стартовала. Скачал модули для Ubuntu 15.04 (64-bit) и для HASPD версии 7.40.

Менеджер пакетов apt хорош тем, что если в зависимостях пакета есть другие пакеты, то в 90 из 100% случаев он найдёт и установит самые подходящие. Поэтому разворачиваю и копирую оба файла с расширением .deb службы haspd в директорию /usr/src/haspd7_40/:

sudo mkdir /usr/src/haspd7_40

sudo cp hasp* /usr/src/haspd7_40

sudo cd /usr/src/haspd7_40

sudo apt -y install ./*.deb

KfWgAAAABJRU5ErkJggg==

Результат установки должен быть таким, как на приведённом выше скриншоте. Чтобы автоматически при загрузке ОС запускалась служба в Ubuntu, выполняю:

systemctl enable haspd

И перезапускаю службу:

systemctl restart haspd

Проверить состояние службы можно так:

systemctl status haspd

6. Установка Postgres Pro Std

Вначале необходимо добавить поддержку русского языка в систему. Ставлю локализацию для нормального функционирования Postgres Pro Std:

sudo locale-gen en_US.UTF-8

sudo locale-gen ru_RU.UTF-8

sudo update-locale LANG=ru_RU.UTF8

sudo dpkg-reconfigure locales

AwTUWgsipspSAAAAAElFTkSuQmCC

Для установки самой программы выполните:

sudo apt -y install postgrespro-std-13 postgrespro-std-13-contrib

systemctl stop postgrespro-std-13

Удаляю автоматически созданную базу, так как она не подходит для 1С:

rm -r /var/lib/pgpro/std-13/data/*

Из директории, куда установился Postgres Pro Std, запускаю инициализацию базы для 1С:

/opt/pgpro/std-13/bin/pg-setup initdb —tune=1c

Затем стандартные действия по настройке автозапуска, старта службы и проверке статуса. Должно быть так, как приведено ниже:

systemctl enable postgrespro-std-13

systemctl start postgrespro-std-13

systemctl status postgrespro-std-13

getBW60NbM8AAAAASUVORK5CYII=

7. Настройка СУБД Postgres Pro Std

Заходим из консоли под пользователем postgres. Таким способом мы получим доступ к psql без указания пароля и сможем настроить себе доступы:

Запускаем консоль СУБД:

Я не стал возиться с созданием пользователя, поэтому применяю суперпользователя postgres. Задаю пароль secret1c:

alter useR postgres with encrypted password ‘secret1c’;

Вывод должен быть ОК. Затем выходим из консоли:

И возвращаемся в терминал из окружения postgres:

8. Установка сервера 1С

Дальше надо разобраться как установить 1C в Ubuntu 20.04. Распаковываю дистрибутивы 1С и раскладываю их по папочкам в /usr/src/1cv83_18_1334. Папка cli — клиентская часть 1с, serv — серверная часть, thincli — тонкий клиент (про него напишу отдельно).

Obzae2P8PRfvh86JZMvIAAAAASUVORK5CYII=

Первым ставлю сервер 1С:

sudo apt install ./*.deb

Лучше каждый файл ставить по отдельности, так как существует чёткая последовательность: common, crs, server, ws.

9uewUosaOYAAAAAASUVORK5CYII=

Потому что в результате всё может не установиться, хотя у меня получилось.

RuwzDQAAAABgctajZiP2az70APgK2oJRmf+tAAAAAElFTkSuQmCC

9. Настройка автозагрузки сервера 1С

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

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

После этого можно настраивать автозапуск службы:

systemctl enable srv1cv83

systemctl restart srv1cv83

systemctl status srv1cv83

gdp89JGU5NSSv8PbfiIoRWHcxEAAAAASUVORK5CYII=

10. Установка толстого и тонкого клиентов 1С

Сначала перехожу в директорию /usr/src/1cv83_18_1334/cli

Затем для установки толстого клиента выполняю:

sudo apt install ./1c-enterprice-8.3.18.1334-client*.deb

А для установки тонкого клиента:

sudo apt install ./1c-enterprice-8.3.18.1334-thin-client*.deb

j9d6XgxfWHwAAAAASUVORK5CYII=

Обратите внимание, что при установке тонкого клиента (thin-client) сервер 1С удаляется. Я тонкого клиента ставить на сервер 1С не буду.

wGDlGAFmNxcFgAAAABJRU5ErkJggg==

11. Особенности размещения файла настроек HASP для 1С в Linux

Первая заключается в том, что если потребуется получать лицензию от ключа на другой машине, то необходим файл nethasp.ini. Но если в Windows его достаточно положить в установочную директорию 1С, подкаталог conf, то в Linux его нужно разместить ниже по дереву: в директорию релиза. Я для этого создал символическую ссылку на каталог в /opt/1cv8/conf:

sudo ln -s /opt/1cv8/conf/ /opt/1cv8/x86_64/8.3.18.1334/conf/

Теперь 1С будет видеть мои сетевые ключи.

12. Проверка соединения с базой данных

Для проверки работы толстого клиента, пробую подключится ко внешнему 1C серверу с помощью 1С:Документооборот:

eEMn2fJ5PuIAAAAASUVORK5CYII=

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

z9OUQlesau7ywAAAABJRU5ErkJggg==

13. Создание базы данных на сервере 1С

Создаю пустую базу для разработки на сервере СУБД. Указываю наименование информационной базы и её расположение. В данном примере будет использоваться база данных с именем test.

H4P1IoT3CHxQAAAAAElFTkSuQmCC

14. Настройки для подключения к серверу 1С и СУБД

Когда вы подключаетесь к серверу необходимо указывать либо доменное имя + имя, либо прописывать IP + имя сервера 1С Ubuntu в файле /etc/hosts вашей машины. Postgres Pro Std относительно сервера находится локально, поэтому указываем адрес 127.0.0.1. Защищённое соединение я не настраивал по тем же соображениям: сервер СУБД находится локально. Указываю логин суперпользователя postgres и пароль secret1c, которые установил при начальной настройке СУБД.

Теперь можно экспериментировать с пустой базой test.

15. Запуск базы данных на сервере 1С в разных режимах

Запускаю в режиме конфигуратора с правами суперпользователя root:

9o6jmRjBWwAAAAAElFTkSuQmCC

h9qpWEwRL7bpwAAAABJRU5ErkJggg==

16. Публикация конфигурации 1С на web-сервере

Команда для установки web-севера Apache 2 выглядит вот так:

sudo apt -y install apache2

AQCFnUkGmTZiAAAAAElFTkSuQmCC

После того как конфигуратор запустился от суперпользователя, можно публиковать базу на web-сервере. Для этого в режиме конфигуратора нужно открыть меню Администрирование и выбрать пункт Публикация на веб-сервере.

60o9lqVDRXNAAAAAElFTkSuQmCC

Указываю имя БД на web-сервере, в моём случае test. Выбираю в строке Веб-сервер значение Apache 2.4. Указываю домашний каталог для веб-приложения 1С. В моём случае /home/user/testDB/web. Нажимаю кнопку Опубликовать, а затем соглашаюсь перезапустить Apache2.

17. Проверка запуска базы данных 1С в режиме веб-приложения

Для проверки можно с самого сервера перейти по адресу http://127.0.0.1/test. Или зайти с любого другого сетевого устройства (планшет, смартфон, компьютер) по сетевому адресу или имени сервера 1С:

ux4LX7+AAAAAElFTkSuQmCC

Выводы

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

В современной Ubuntu 64-bit при установке приходится понижать версии различных пакетов, в том числе ответственных за шифрование и обеспечение защиты системы в целом. Для серверов, так или иначе подключённых в общий доступ, необходимо настраивать файрвол (брандмауэр), применять дополнительные пакеты для защиты, например, от перебора паролей fail2ban или использовать сторонние сервисы, созданные для предотвращения автоматизированных или направленных атак.

В целом производительность ОС Ubuntu 20.04 (64-bit) позволяет использовать более «тяжёлые» базы данных, использовать кластер серверов 1С и СУБД, подключать большое количество пользователей как в режиме тонкого клиента 1С, так и в режиме RDP (удалённых рабочих столов) с гарантированно минимальными затратами на аппаратную часть сервера и лицензирование необходимого ПО.

С точки зрения конфигурации сервера на 10 пользователей, моя любимая система выглядит так:

Процессор AMD Ryzen 7 PRO на материнской плате MSI B450M MORTAR MAX, с четырьмя модулями оперативной памяти, видеокартой AMD Radeon R9 Gamer Series 8Gb, с двумя хранилищами на 1000 Gb SSD M.2 (накопитель Kingston KC2000). Такой системный блок, в сборе с корпусом и блоком питания, сегодня может стоить приблизительно 85 000 рублей. В связи с тем, что пропускная способность накопителей и оперативной памяти заявлены приблизительно равными, обмен между хранилищем данных и ОЗУ будет происходить примерно на одинаковой скорости. Поэтому в такой конфигурации не потребуется проводить тонкий тюнинг сервера 1С, СУБД.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *