Установка 1С:Документооборот на VPS-сервере с PostgreSQL

В данной статье мы рассмотрим установку программы «1С:Документооборот КОРП 2.0» с модулем «Корпоративные процессы» на виртуальный сервер VPS (или VDS). Вы также можете установить любой другой продукт на базе «1С:Предприятие 8.3».

Мы постараемся изложить информацию так, что бы пользователи и администраторы, мало знакомые с Linux (Ubuntu), могли выполнить все действия и развернуть базу данных в среде Linux.1С Документооборот на Linux VPSДля установки «1С:Документооборот» будем использовать виртуальный сервер VPS для установки демонстрационной версии и нам будет достаточно VPS с такими системными характеристиками: RAM 2G, HDD 15GB и, что достаточно важно CPU не менее, чем с 2 или 3-я ядрами 2.6GHz. Для коммерческой эксплуатации виртуального сервера VPS с «1С:Документооборот КОРП» понадобиться более производительный сервер, с оперативной памятью минимум 4-6, а лучше 8-12 GB, а также SSD диском.

Так как основной рабочей операционной системой у нас является Windows, а установка VPS будет идти по протоколу SSH в Linux (Ubuntu 14 LTS), то необходимо установить клиентскую программу putty.exe. Данная программа является бесплатной и позволяет подключаться по протоколу SSH к удаленным серверам.

Подключимся к нашему новому VPS (VDS) серверу для установки на него демо-версии программы «1С:Документооборот КОРП» с интегрированным модулем «Корпоративные процессы».

Подготовка сервера Ubuntu для установки «1С:Предприятие 8.3»

Проверим, какая операционная система у нас установлена:
cat /etc/issue
Проверим свободное и занятое место на диске:
df -h
Проверим доступную и занятую память:
free -m
Если все ОК, установим новый пароль для нашего пользователя
passwd root
Обновим список программ, доступных из репозитория
apt-get update
и выполним их обновление
apt-get upgrade
Установим редактор текстовых файлов
apt-get install nano
Диспетчер файлов Midnight Commander (похожий на Norton Comander из MS DOS).
apt-get install mc
Программу, показывающую загрузку процессора
apt-get install htop

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

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

Создаем нового пользователя myuser и его домашний каталог
useradd myuser -m
После выполнения данной команды были созданы новый пользовтель myuser и его домашний каталог /home/myuser
добавляем нашего нового пользователя в группу sudo, что бы он мог выполнять привилегированные операции
usermod -aG sudo myuser
Установим пароль пользователя
passwd myuser
Установим bash средой исполнения для нашего нового пользователя
chsh -s /bin/bash main
Внесем изменения в параметры доступа по SSH, для этого отредактируем файл sshd_config
выполним команду
nano /etc/ssh/sshd_config
заменим порт 22 на порт
port 2234
установим запрет на вход с правами root
PermitRootLogin no
установим разрешение для входа нашего нового пользователя
AllowUsers myuser
если данной строки в файле
sshd_config
нет, то её нужно будет добавить.

Для сохранения файла нажмем в редакторе nano сочетание клавиш Ctrl+O и Enter, для выхода из редактора nano нажмем Ctrl+X и перезапустим наш сервис SSH, что бы изменился порт доступа и другие параметры
service ssh restart

Теперь, не закрывая сеанса root, проверим возможность доступа нашего нового пользователя по новому порту через putty.exe
Запускаем putty.exe, устанавливаем новый порт и проверяем вход через myuserПодключние к 1С серверу через puttyМы можем упростить и, в тоже время, дополнительно обезопасить вход на наш сервер заменив вход по паролю на вход с использованием открытого ключа SSH.

Создадим в домашнем каталоге нашего пользователя каталог для хранения открытых ключей доступа компьютеров, с которых возможен вход на наш VPS сервер.
mkdir ~/.ssh

Если мы ранее не создавали пары открытых и закрытых ключей SSH, то их необходимо создать, например с помощью утилиты puttygen.exe, создание ключей несколько выходит за рамки нашей статьи о развертывании базы данных «1С:Документооборот КОРП» на VPS-сервере и широко освещено в сети Интернет.

После создания открытых ключей нам необходимо добавить их в файл authorized_keys на нашем сервере. Для этого выполните команду
nano ~/.ssh/authorized_keys

Обратите внимание — быстро скопировать текст из буфера Windows в терминал SSH можно кликнув правой кнопкой мышки, текст из буфера будет вставлен в открытую в терминале программу (например, в текстовый редактор nano или командную строку).

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

Например, это может быть SSH ключ, сгенерированный на рабочей станции Windows, на ноутбуке, а также ключи, сгенерированные на других серверах Linux, например для выполнения регулярных операций архивирования на удаленные сервера и прочее.

После входа пользователя myuser мы можем выполнять все команды с префиксом sudo либо сразу переключиться в среду пользователя root, выполнив команду
su

Теперь нам необходимо проверить имя нашего компьютера, выполним команду
hostname
и получим текущее имя компьютера.

Проверим доступ к нему командой
ping имя
где имя это имя нашего сервера полученное командой hostname
если пинг не идет, то это обязательно нужно исправить, иначе сервер «1С:Предприятие 8.3» с большой вероятностью при запуске командой
service srv1cv83 start
не будет запускаться и будет выдавать неочевидную ошибку:
Starting 1C:Enterprise 8.3 server: Error: service failed to start!
Итак, если команда
ping имя
не выполняется корректно, то добавим имя нашего сервера в файл hosts, выполним команду
nano /etc/hosts
добавим в конец файла строку
127.0.0.1 имя
Снова выполним
ping имя

Установка вспомогательных программ и библиотек Ubuntu

Теперь можно переходить к установке «1С:Предприятие 8.3» для нашей базы «1С:Документооборот КОРП» и сервера PostgreSQL.

Сервер PostgreSQL можно достаточно просто заменить на IBM DB2, установка которого более простая и быстрая, но в данной статье мы будем ставить именно PostgreSQL.

Предварительно нам нужно будет поставить ряд вспомогательных программ (imagemagick и другие) их, конечно, можно поставить вручную скачав с сайта разработчика и установив нужные пакеты. Но, операционные системы Linux, в том числе Ubuntu представляют более удобные механизмы установки из репозиториев программ выполнением простой команды apt-get install <имя пакета>. Команда apt-get является достаточно мощным средством установки программ (apt = advanced packaging tool).

К сожалению, список доступных пакетов в репозиториях программ после установки Ubuntu не достаточно полный, точнее он содержит только ссылки на актульные, проверенные и одобренные программы. Как это часто бывает, такой список не всегда полный, поэтому мы отредактируем список источников репозитория, выполнив команду
nano /etc/apt/sources.list

Дополним файл источников следующим списком:
deb https://archive.canonical.com/ubuntu trusty partner
deb https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty multiverse
deb-src https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty multiverse
deb https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb-src https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty universe
deb-src https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty universe
deb https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb-src https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb https://archive.ubuntu.com/ubuntu precise main restricted universe
deb https://archive.ubuntu.com/ubuntu precise-updates main restricted universe
deb https://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse
deb https://archive.canonical.com/ubuntu lucid partner
deb-src https://archive.canonical.com/ubuntu lucid partner

Как мы писали ранее, можно вставить эти строки в буфер Windows и затем нажать правую кнопку мышки в терминале, таким образом все строки будут скопированы в редактор nano из буфера. Сохраним файл, нажав Ctrl+O и выйдем из редактора нажав Ctrl+X.

Обновим списки программ репозитория, выполнив команду
apt-get update
Теперь всё готово к установке вспомогательных программ. Выполним команду
apt-get install libssl0.9.8 libossp-uuid16 libxslt1.1 libicu52 libt1-5 t1utils imagemagick unixodbc texlive-base libgfs-1.3-2
Далее установим шрифты Microsoft, которые корректно отображают данные в «1С:Предприятие 8.3». Такие шрифты не встроены в Ubuntu, так как они являются проприетарными и лицензированы Microsoft. Тем не менее мы теперь можем их устанавливать, т.к. отредактировали список источников /etc/apt/sources.list. Итак, выполним команду
apt-get install ttf-mscorefonts-installer
После выполнения команды начнется процедура установки шрифтов, будет выведено лицензионное соглашение Microsoft которое будет необходимо принять.

Перейдем теперь к установке сервера PostgreSQL.

Установка сервера PostgreSQL для «1С:Предприятие 8» на сервере Ubuntu

Установку PostgreSQL для «1С:Документооборот КОРП» необходимо выполнять из специального дистрибутива, подготовленного фирмой «1С» и размещенного на её официальном сайте, либо оригинального дистрибутива PostgreSQL с применением специальных патчей. В противном случае работа «1С:Документооборот» на таком сервере будет невозможна.

Так как нам необходимо обеспечить работу PostgreSQL с базами данных «1С:Предприятие 8.3» которые имеют кодировку UTF8 и русскую сортировку, то необходимо предварительно настроить локаль операционной системы.

Установим специальный пакет, обеспечивающий полнофункциональную поддержку Unicode и локали. Для операционной системы Ubuntu версии 14 этот пакет имеет наименование libicu52. Установим его, выполнив команду
apt-get install libicu52
Посмотрим, какая текущая локаль у нас имеется, выполним команду
locale
Если в ней нет ru_RU.UTF-8, то её необходимо установить. Давайте установим, выполним следующие команды:
locale-gen en_US ru_RU
locale-gen ru_RU.UTF-8
export LANG=ru_RU.UTF-8
dpkg-reconfigure locales
Снова выполним команду
locale
В результате выполнения мы должны получить примерно такие значения:PostgreSQL порядок сортировки базы данных 1СПосле выполнения всех действий давайте перезагрузим наш VPS первый раз, выполнив команду
reboot

После перезагрузки зайдем под пользователем myuser и выполним команду
su
для входа как пользователь root.

Проверим текущую локаль. Выполним команду
locale
если локаль сбросилась, то добавим в файл
/root/.bashrc строку
export LANG=ru_RU.UTF-8
и также выполним команду
export LANG=ru_RU.UTF-8
Отредактировать файл .bashrc можно командой
nano /root/.bashrc

Перейдем к установке PostgreSQL из дистрибутивов. Если несколько способов загрузить дистрибутивы на VPS сервер, например можно воспользоваться командой wget или другими. Из среды Windows проще всего передать файлы через дополнительную программу, например, через WinSCP.

Откроем наш VPS с пользователем myuser из этой программы, указав наш порт 2234 и IP адрес. Создадим в домашнем каталоге пользователя каталог /home/myuser/1c/postgre и загрузим на него дистрибутив PostgreSQL, можем сразу загрузить в каталог /home/myuser/1c/server и дистрибутив «1С:Предприятие 8» для Linux (DEB-пакеты).Загрузка пакетов deb на сервер 1СС помощью программы WinSCP мы загрузили дистрибутивы в формате .tar.gz. Это файлы архивов их можно распаковать программой tar (если она у вас не установлена, вы можете её установить через apt-get install tar). Например, для распаковки в текущую директорию можно выполнить команду
tar xvzf <имя>.tar.gz

Но мы ранее установили файловый менеджер Midnight Comander, поэтому давайте его запустим, выполнив команду
mc

Перейдем в каталог /home/myuser/1c, войдем в архивный файл, выделим кнопкой Ins на клавиатуре все файлы и нажимаем F5 для их извлечениz в другую часть окна MC (в ней также должен быть выбран каталог /home/myuser/1c).Распаковка пакетов deb для установки 1С сервера на ubuntuВыйдем из программы MC нажав F10, перейдем в каталог с распакованными дистрибутивами, набрав в консоли
cd /home/myusers/1c/postgres

Теперь всё готово к установке PostgreSQL для запуска нашей базы данных «1С:Документооборот КОРП». Так как все пакеты с расширением .deb уже доступны на нашем VPS мы воспользуемся командой dpkg (Depackager).

Эта команда является одной из основных в Linux и устанавливает программы из пакетов .deb (в ветви Linux Debian). В отличие от команды apt-get она не проверяет наличие программ в каких-либо репозиатриях и ничего не скачивает из интернета, просто берет пакет с жесткого диска и устанавливает его.

Итак, в каталоге /home/myusers/1c/postgres выполним команду
dpkg -i *.deb
Данная команда установит все файлы с расширением .deb.
В ходе установки будет выдано много сообщений, если среди них вы заметите сообщения об ошибках, то пытайтесь их исправить введя команду
apt-get -f install

Основная причина сообщений об ошибках — это отсутствие каких-либо необходимых библиотек или программ. Команда apt-get -f install команда анализирует такие ситуации и автоматчиски устанавливает недостающие библиотеки и программы (ключ -f это значение force, что значит принудительно).

Если всё же ошибки остаются, то причин может быть множество, возможно в вашем дистрибутиве Ubuntu есть какие то особенности либо он содержит не все библиотеки по умолчанию. Попробуйте найти информацию в в google, т.к. дистрибутив Ubuntu и PostgreSQL являются широкораспространенными и информации по ним много.

Если ошибок не было или все они были исправлены командой apt-get -f install, то перейдем к нашему серверу и проверим, что же было установлен. Выполним команду
su — postgres
Данная команда запускает среду выполнения пользователя postgres (дефис говорит о том, что будут загружены все параметры среды исполнения пользователя postgres).
Давайте выведем текущий список баз данных PostgreSQL. Выполним
psql -l
Внимательно проверьте список. Везде должна быть указана кодировка UTF-8 и ru_RU.UTF-8

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

Нажмите Ctrl-Z для выхода из списка баз данных.

Теперь установим пароль пользователя postgres. Под пользователем root выполним команду
sudo -u postgres psql
Далее наберем
\password
введем два раза новый пароль
и наберем команду
\q
для выхода.
Обратите внимание, что данный пароль устанавливается для внутреннего пользователя базы данных, а не для одноименного пользователя операционной системы Ubuntu

Проверим, корректно ли запущен и работает наш сервер PostgreSQL который нам нужен для дальнейшего развертывания базы данных «1С:Документооборот». Выполним
service postgresql status
Мы должны получить строку с номером порта (обычно 5432) и статусом online.
PostgreSQL и 1С:ПредприятиеЕсли всё ОК, то пока завершим установку PostgreSQL и перейдем к установке сервера «1С:Предприятие 8.3»

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

Для установки программы «1С:Документооборот» на сервер «1С:Предприятие 8.3» под управление Ubuntu, необходимо скопировать файлы дистрибутива с сервера «1С» в каталог нашего VPS. Мы проделали это с помощью программы WinSCP когда копировали файлы дистрибутива PostgreSQL. Теперь дистрибутив «1С» располагается в каталоге /home/myuser/1c/server.

Перейдем в каталог, набрав в командной строке Linux
cd /home/myusers/1c/server (путь может отличаться, если вы загрузили файлы в другой каталог вашего VPS-сервера).

Извлечем файлы с помощью команды tar xvzf <имя>.tar.gz или, что нам кажется проще, через копирование из архива в Midnight Commander как мы делали при распаковке архивов PostgreSQL.

После распаковки архивов .gz в пакеты .deb можно переходить к их установке.
В отличие от установки пакетов сервера PostgreSQL, установку пакетов сервера «1С:Предприятие 8.3» лучше выполнять в определенной последовательности. Вот она:
dpkg -i 1c-enterprise83-common_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-ws_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-ws-nls_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-common-nls_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-server_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-crs_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-server-nls_8.3.6-2299_i386.deb

В примере выше указаны пакеты сервера «1С» версии 2299, актуального на момент написания данной статьи, в вашем случае цифры релиза могут быть другие.

Кроме того, мы устанавливаем пакеты для 32-х разрядной операционной системы, т.к. у нашей VPS всего 2GB оперативной памяти и смысла ставить 64-х разрядную операционную систему и «1С» нет.

Вы также можете установить пакеты командой
dpkg -i *.deb и затем
apt-get -f install
но корректность такой установки не гарантируется. На данный день рекомендуем всё же ставить пакеты в указанной выше последовательности.

В процессе установки сервера «1С:Предприятие 8.3» у нас был создан новый пользователь операционной системы Ubuntu usr1cv8 и группа grp1cv8.

Давайте теперь установим им права доступа на каталог /opt/1C, где располагаются файлы сервера «1С:Предприятие 8.3» в операционной системе Ubuntu.
Установим права доступа на каталог
chown -R usr1cv8:grp1cv8 /opt/1C
После этого можно перейти к запуску сервиса сервера. Наберем в командной строке
service srv1cv8 start

Должен появиться статус OK.
К сожалению, иногда мы видим надпись:
Starting 1C:Enterprise 8.3 server: Error: service failed to start!

Средства диагностики и логирования проблем в «1С:Предприятие 8.3» для Linux достаточно ограничены. Основываясь на нашем опыте, основная причина появления такого сообщения (если все компоненты были установлены корректно), это проблема с hostname, точнее с записями в DNS или /etc/hosts как было описано выше.

Вы также можете запустить встроенные средства диагностики Ubuntu (а также Debain) выполняя команду
bash -x /etc/init.d/srv1cv83 start
и анализируя полученные диагностические сообщения.

Если вам потребуется полностью переустановить «1С:Предприятие 8.3» под Linux, то необходимо будет удалить все пакеты 1c-enterprise83. Получить их список можно командой
dpkg -l | grep 1c-
Далее начинаем удалять в такой, рекомендуемой, последовательности:
dpkg -remove 1c-enterprise83-common
dpkg -remove 1c-enterprise83-crs
dpkg -remove 1c-enterprise83-ws
dpkg -remove 1c-enterprise83-server-nls
dpkg -remove 1c-enterprise83-server
dpkg -remove 1c-enterprise83-common-nls
dpkg -remove 1c-enterprise83-common
dpkg -remove 1c-enterprise83-server
dpkg — purge 1c-enterprise83-server
Проверяем, что пакетов не осталось, снова выполнив
dpkg -l | grep 1c-
После удаления можно перейти к повторной установке deb пакетов сервера «1С:Предприятие 8.3». Если установка или запуск сервера не удается, рекомендуем поискать ответ в google.

Проверка, настройка и оптимизация сервера PostgreSQL

Ранее мы уже установили PostgreSQL и сервер «1С:Предприятие 8.3». Давайте теперь выполним настройку и оптимизацию сервера баз данных PostgreSQL.

Сервер PostgreSQL имеет достаточно больше количество параметров, влияющих на его производительность в конкретной среде при выполнении конкретных задач.

Основные параметры расположены в файле postgresql.conf. Давайте отредактируем его, выполнив команду
nano /etc/postgresql/9.4/main/postgresql.conf
Наш VPS сервер имеет всего 2GB оперативной памяти, постараемся использовать их наиболее оптимальным способом.

Установим следующие значения:
work_mem 64MB
maintenance_work_mem 256MB
temp_buffers 16MB
wal_buffers 512KB
Если вы готовы ради роста производительности несколько снизить надежность записи на диски, то можно отключить постоянную синхронизацию кэша. Для этого установим следующие параметры:
fsync = off
full_page_writes = off

Если на вашем VPS используется SSD диск, то имеет смысл установить следующее значение параметра
random_page_cost=1.5
Приведенные выше параметры являются ориентировочными и применимыми для VPS с размером памяти 2GB. PostgreSQL имеет большие возможности по настройке и оптимизации производительности в работе с базами данных «1С:Предприятие 8.3».

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

Полная оптимизация PostgreSQL для работы с базами данных «1С:Документооборот» выходит за рамки данной статьи.

После изменения параметров сервера, перезапустим его:
service postgresql restart

Подключение нового сервера и создание базы данных

Так как мы не устанавливали клиентские пакеты на сервере VPS с Ubuntu, то нам остается выполнить создание и подключение баз данных с рабочей станции с Windows. Для этого запустим программу «Администрирование серверов «1С:Предприятия» и добавим наш новый сервер.

Укажем у сервера IP адрес и порт 1540. По умолчанию «1С» создает локальный кластер, мы можем использовать его, но его локальный адрес нужно будет прописывать в файле lmhosts, сопоставляя с IP-адресом виртуального VPS сервера. Рекомендуем удалить локальный кластер и создать новый, при создании нового кластера серверов «1С:Предприятие 8.3» указать IP адрес нашего виртуального VPS сервера и порт 1541.

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

Создание новой базы данных на 1С сервереПопробуем создать базу данных. Можно отследить рост нагрузки на ваш сервер запустив команду
htop

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

Создание базы данных 1С на VPS

Создание базы данных может занять продолжительное время, при этом загрузка ядер процессоров VPS может отличаться, в некоторые периоды нагрузка падает почти до нуля, в некоторые возрастает до 100%.

Если создание прошло успешно, то можно подключать данную информационную базу, входить в режиме «1С:Конфигуратор» и загружать базу «1С:Документооборот КОРП» из архива.

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

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

Продолжим установку и настройку на следующей странице.

Страницы:
1 2
Следующая →