Печать

На момент написания данной статьи-инструкции, это самая свежая сборка для поднятия сервера 1C:Предприятие 8.3 в связке с PostgreSQL и Debian. Постараюсь максимально полно осветить весь процесс, начиная от установки Debian до настройки конфигурации PostgreSQL.

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

Система будет устанавливаться на недорогой резервный сервер от компании Supermicro, на его борту 32ГБ оперативной памяти, 1 процессор Intel Xeon 2.4 Ghz, и 2 Toshiba Server HDD по 1TB.

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

  1. Debian 8.6. Будет использоваться "netinst" версия, чтобы не было ничего лишнего. Скачать можно по этой ссылке. Архитектура - amd64
  2. Сервер 1C:Предприятие 8.3.9.1818. Качается с диска ИТС или с сайта поддержки пользователей 1C:Предприятие (нужна подписка ИТС). Или можно хорошо поискать в интернете.
  3. Пропатченная версия Postgresql-9.4.2-1.1C_amd64. Мы будем компилировать и собирать систему, на мой взгляд это самый надежный способ с минимальным количеством глюков. Главное соблюдать последовательность и не забыть поставить все необходимые компоненты. Так же возможна установка сервера из deb-пакетов, но этот вариант тут рассматриваться не будет. Дистрибутив загружается с диска ИТС или с сайта поддержки пользователей 1C:Предприятие (нужна подписка ИТС). На сайте этот пакет находится в разделе "PostgreSQL - 9.4.2-1.1C - Патч СУБД PostgreSQL.
  4. Драйвер HASP ключа для Сервер 1C:Предприятие 8.3. Скачать можно по этой ссылке.

 

1. Настройка RAID и установка системы.

Загружаемся с установочного носителя и следуюм инструкциям по установке. В процессе установки вводим свои параметры языков, имени сервера, рабочей группы, пользователя и пароля, а также настраиваем сетевую карту по DHCP, потом мы ее перенастроим. Настривать мы будем только разметку HDD.

 

Настройка разметки HDD

Примечание: Режим работы HDD в BIOS выставляется - AHCI.
RAID будет программным.

1. В ручном режиме создать разметку дисков. (Если их несколько, то для каждого)
Настройки такие:

 

2. Настройка программного RAID и разметки дисков. 2.1. Создать новое MD (составное) устройство

 

2.2. Объединяем одинаковые разделы на разных HDD.

 

2.3. Из MD устройства 10Gb делаем файл подкачки

 

2.4. Из MD устройства 990Gb делаем файловую систему Ext4
Параметры:

 

2.5. Результат должен выглядеть примерно так:

partman choose partition 0

 

3. Продолжаем следовать инструкциям установщика до выбора предустановленного ПО.

4. Снимаем все галочки, оставляем только 2 пункта: SSH сервер и Стандартные системные утилиты

tasksel first 0

 

5. Даем согласие на установку GRUB

 

6. При выборе загрузочного устройства, следует выбирать - первое (dev/sda)

 

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

 

 

Первичная настройка установленной системы

Примечание! Т.к. во время установки используются 2 разных пользователя, поэтому для удобства, будем использовать обозначения:
(R) - root
(P) - postgres

 

1. (R) Устанавливаем файловый менежер MidnightCommander

apt-get install mc

 

2. (R) Даем доступ root пользователю через ssh. В конфиге /etc/ssh/sshd_config, меняем значение:

PermitRootLogin yes

 

2.1. (R) Перезагружаем сервис ssh:

service ssh restart

 

3. (R) Настраиваем статический IP адрес в etc/network/interfaces:

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.55.99
netmask 255.255.255.0
gateway 192.168.55.1


3.1. (R) Настройку IP проверяем с помощью команды:

ifconfig

 

3.2. (R) Перезагружаем сетевой интерфейс для внесения изменений командой:

/etc/init.d/networking restart

 

4. (R) Настраиваем репозитории для будущих обновлений и установки необходимых пакетов.

4.1. (R) Расширяем репозитории /etc/apt/sources.list путем добавления папок "contrib" и "non-free":

deb http://mirror.yandex.ru/debian/ jessie main contrib non-free
deb-src http://mirror.yandex.ru/debian/ jessie main contrib non-free

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

deb http://security.debian.org/debian-security/ jessie/updates main contrib non-free
deb-src http://security.debian.org/debian-security/ jessie/updates main contrib non-free

# jessie-updates, previously known as 'volatile'
deb http://mirror.yandex.ru/debian/ jessie-updates main contrib non-free
deb-src http://mirror.yandex.ru/debian/ jessie-updates main contrib non-free

 

4.2. (R) Обновляем репозитории и пакеты

apt-get update
apt-get upgrade

 

5. (R) Для удобства дальнейшей установки и настройки ставим пакет samba

apt-get install samba

 

5.1. (R) Создаем каталог

mkdir /home/share

 

5.2. (R) Даем полный доступ к папке

chmod 777 /home/share

 

5.3. (R) Настраиваем конфиг samba. Расположен в /etc/samba/smb.conf

После блока [printers] прописываем блок [share]

[share]
path = /home/share
guest ok = yes
read only = no


5.2. (R) Перезагружаем samba

/etc/init.d/samba restart

 

6. Заходим в Windows по адресу \\192.168.55.99\share и кладем сюда все скаченные заранее дистрибутивы.

7. (R) Ставим дополнительные пакеты:

apt-get install bison
apt-get install flex
apt-get install build-essential
apt-get install unrar

 

8. (R) Добавляем локали (locale)

nano /etc/locale.gen


8.1. (R) Ищем строки и снимаем с них комментирование:

en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8


8.2. (R) Переконфигурируем locale командой:

dpkg-reconfigure locales


8.3. (R) Проверяем, что нужные нам локали были в списке, командой:

locale -a

 

9. (R) Увеличиваем максимальный размер сегмента памяти до 10Gb.
В файле /etc/sysctl.conf добавляем параметр:

kernel.shmmax = 10737418240

 

9.1. (R) Применить изменения:

sysctl -p

 

10. (R) Устанавливаем дополнительные пакеты необходимые для PostgreSQL:

apt-get install libreadline6-dev
apt-get install zlib1g-dev

 

11. (R) Устанавливаем дополнительные библиотеки:

wget http://security.debian.org/debian-security/pool/updates/main/i/icu/libicu48_4.8.1.1-12+deb7u5_amd64.deb
chmod u+x libicu48*.deb
dpkg -i libicu48*.deb
wget http://security.debian.org/debian-security/pool/updates/main/i/icu/libicu-dev_4.8.1.1-12+deb7u5_amd64.deb
chmod u+x libicu-dev*.deb
dpkg -i libicu-dev*.deb

 

12. (R) Можно проверить версии установленных библиотек libicu командой:

dpkg-query -l 'libicu*'


Результат должен содержать:

libicu-dev 4.8.1.1-12+deb7u5  amd64
libicu48:amd64   4.8.1.1-12+deb7u5  amd64
libicu52:amd64   52.1-8+deb8u3      amd64

 

2. Подготовка и установка PostgreSQL

1. (R) Создаем каталог:

mkdir /home/postgresql


2. (R) В дистрибутиве Patch_PostgreSQL есть архив Patch_SUBD_PostgreSQL.rar. Из этого архива распаковываем в /home/postgresql три файла:

2.1. (R) Распаковываем исходные файлы командой

dpkg-source -x postgresql-9.4_9.4.2-1.1C.dsc


Появится каталог postgresql-9.4-9.4.2 2.2.

2.2. (R) Из появившегося каталога postgresql-9.4-9.4.2 запускаем файл:

/home/postgresql/postgresql-9.4-9.4.2/configure


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

2.3. (R) Компиляция запускается из этого же каталога командой:

make


(R) 2.4 По итогу, если все Ок, отсюда же запускаем:

make install


Результатом будет созданная папка /usr/local/pgsql.

 

3. (R) Установим патчи для сервера 1С из каталога /home/postgresql/postgresql-9.4-9.4.2/contrib/:

make


Затем

make install


4. (R) Создаем каталог:

mkdir /usr/local/pgsql/data


5. (R) Создаем каталог

mkdir /var/run/postgresql


6. (R) Создаем пользователя postgres в группе postgres

adduser postgres


7. (R) Передаем права на каталог /usr/local/pgsql/data пользователю postgres командой

chown postgres /usr/local/pgsql/data


8. (R) Передаем права на каталог /var/run/postgresql пользователю postgres командой

chown postgres /var/run/postgresql


9. (P) Необходимо проинициализровать базу данных в созданный каталог командой:

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

 

9.1. (R) Создать файл для логирования состояния сервера и вывода сообщений:

cd /usr/local/pgsql/data
>logfile
chown postgres /usr/local/pgsql/data/logfile

 

10. (P) Запускаем PostgreSQL командой

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &

 

10.1. (P) Создаем тестовую базу:

/usr/local/pgsql/bin/createdb test

 

10.2. (P) Пробуем зайти в созданную тестовую базу:

/usr/local/pgsql/bin/psql test

 

(P) Если все хорошо, должна появится командная строка базы:

test=# 

 

(P) Выход обратно к комадной строке Debian:

\quit


11. (R) Редактируем конфиг PostgreSQL /usr/local/pgsql/data/postgresql.conf. Найти эти строки и выставить указанные параметры (если нужно, снять комментирование):

backslash_quote = on
escape_string_warning = off
standard_conforming_strings = off

 

12. (P) Добавить альтернативного пользователя командой:

/usr/local/pgsql/bin/psql -U postgres -c "alter user postgres with password '123';"


14. (R) После установки PostgreSQL нужно создать исполняемый файл postgresql в папке /etc/init.d/

Примечание! Данный файл, настроен на стандартные пути каталогов и файлов!

 

14.1. (R) Cоздаем пустой файл:

cd /etc/init.d/
>postgresql

 

14.2. (R) Затем вставляем ниже, написанный код, в файл. Сохраняем.

#! /bin/sh

### BEGIN INIT INFO
# Provides:             postgresql
# Required-Start:       $local_fs $remote_fs $network $time
# Required-Stop:        $local_fs $remote_fs $network $time
# Should-Start:         $syslog
# Should-Stop:          $syslog
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    PostgreSQL RDBMS server
### END INIT INFO

# chkconfig: 2345 98 02
# description: PostgreSQL RDBMS

# This is an example of a start/stop script for SysV-style init, such
# as is used on Linux systems.  You should edit some of the variables
# and maybe the 'echo' commands.
#
# Place this file at /etc/init.d/postgresql (or
# /etc/rc.d/init.d/postgresql) and make symlinks to
#   /etc/rc.d/rc0.d/K02postgresql
#   /etc/rc.d/rc1.d/K02postgresql
#   /etc/rc.d/rc2.d/K02postgresql
#   /etc/rc.d/rc3.d/S98postgresql
#   /etc/rc.d/rc4.d/S98postgresql
#   /etc/rc.d/rc5.d/S98postgresql
# Or, if you have chkconfig, simply:
# chkconfig --add postgresql
#
# Proper init scripts on Linux systems normally require setting lock
# and pid files under /var/run as well as reacting to network
# settings, so you should treat this with care.

# Original author:  Ryan Kirkpatrick <Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.>

# contrib/start-scripts/linux

## EDIT FROM HERE

# Installation prefix
prefix=/usr/local/pgsql

# Data directory
PGDATA="/usr/local/pgsql/data"

# Who to run the postmaster as, usually "postgres".  (NOT "root")
PGUSER=postgres

# Where to keep a log file
PGLOG="$PGDATA/serverlog"

# It's often a good idea to protect the postmaster from being killed by the
# OOM killer (which will tend to preferentially kill the postmaster because
# of the way it accounts for shared memory).  Setting the OOM_SCORE_ADJ value
# to -1000 will disable OOM kill altogether.  If you enable this, you probably
# want to compile PostgreSQL with "-DLINUX_OOM_SCORE_ADJ=0", so that
# individual backends can still be killed by the OOM killer.
#OOM_SCORE_ADJ=-1000
# Older Linux kernels may not have /proc/self/oom_score_adj, but instead
# /proc/self/oom_adj, which works similarly except the disable value is -17.
# For such a system, enable this and compile with "-DLINUX_OOM_ADJ=0".
#OOM_ADJ=-17

## STOP EDITING HERE

# The path that is to be used for the script
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# What to use to start up the postmaster.  (If you want the script to wait
# until the server has started, you could use "pg_ctl start -w" here.
# But without -w, pg_ctl adds no value.)
DAEMON="$prefix/bin/postgres"

# What to use to shut down the postmaster
PGCTL="$prefix/bin/pg_ctl"
PIDDIR="/run/postgresql"
set -e

# Only start if we can find the postmaster.
test -x $DAEMON ||
{
	echo "$DAEMON not found"
	if [ "$1" = "stop" ]
	then exit 0
	else exit 5
	fi
}


# Parse command line parameters.
case $1 in
  start)
	echo -n "Starting PostgreSQL: "
	install -o postgres -g postgres -m 755 -d $PIDDIR
        test x"$OOM_SCORE_ADJ" != x && echo "$OOM_SCORE_ADJ" > /proc/self/oom_score_adj
	test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj
	su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1
	echo "ok"
	;;
  stop)
	echo -n "Stopping PostgreSQL: "
	su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast"
	echo "ok"
	;;
  restart)
	echo -n "Restarting PostgreSQL: "
	su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w"
	test x"$OOM_SCORE_ADJ" != x && echo "$OOM_SCORE_ADJ" > /proc/self/oom_score_adj
	test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj
	su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1
	echo "ok"
	;;
  reload)
        echo -n "Reload PostgreSQL: "
        su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s"
        echo "ok"
        ;;
  status)
	su - $PGUSER -c "$PGCTL status -D '$PGDATA'"
	;;
  *)
	# Print help
	echo "Usage: $0 {start|stop|restart|reload|status}" 1>&2
	exit 1
	;;
esac

exit 0

 

14.3. (R) Даем права:

chmod 777 /etc/init.d/postgresql

 

14.4. (R) Для применения внесенных в конфиг изменений, перезагружаем postgresql

 service postgresql reload 

 

15. (R) Добавим PostgreSQL в автозагрузку

update-rc.d postgresql defaults

 

3. Подготовка и установка сервера 1С

1. (R) Устанавливаем шрифты и дополнительные пакеты:

apt-get install ttf-mscorefonts-installer
apt-get install imagemagick
apt-get install libglib2.0-0
apt-get install unixodbc


2. (R) Устанавливаем Сервер 1С из заранее скачанных дистрибутивов в следующей последовательности:

dpkg -i 1c-enterprise83-common_8.3.9-1818_amd64.deb
dpkg -i 1c-enterprise83-common-nls_8.3.9-1818_amd64.deb
dpkg -i 1c-enterprise83-server_8.3.9-1818_amd64.deb
dpkg -i 1c-enterprise83-server-nls_8.3.9-1818_amd64.deb
dpkg -i 1c-enterprise83-ws_8.3.9-1818_amd64.deb
dpkg -i 1c-enterprise83-ws-nls_8.3.9-1818_amd64.deb


3. (R) Даем пользователю usr1cv8 и группе grp1cv8 права на каталог:

chown -R usr1cv8:grp1cv8 /opt/1C

 

4. (R) Запускаем сервер 1С:

/etc/init.d/srv1cv83 start

 

4. Установка HASP ключа 1C

1. (R) Устанавливаем драйвер HASP ключа для сервера 1С из заранее скачанного дистрибутива. 1.1 Запускаем скрипт добавления совместимости i863 идущий в месте с драйвером:

install_32bit_compatibility_package_for_x64.sh

 

1.2 (R) Затем устанавливаем драйвер:

dpkg -i aksusbd_7.40-1_i386.deb

 

5. Послесловие

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