Установка сервера 1С 8.3 и PostgreSQL на Ubuntu Server

Как поставить PostgreSQL от 1С, сервер 1С:Предприятие 8.3 и менеджер ключей HASP на Ubuntu Server: зависимости, локаль, инициализация базы, проверка портов.

Актуальность. Инструкция написана для Ubuntu 14.04, PostgreSQL 9.2 и платформы 8.3.4–8.3.5. Порядок действий остался тем же, но версии пакетов и их имена изменились: берите сборку PostgreSQL, которую 1С рекомендует для вашей версии платформы, и актуальный дистрибутив с releases.1c.ru.

1. Подготовка системы

Увеличиваем максимальный размер сегмента разделяемой памяти (в примере — 2 ГБ; на слабых машинах достаточно 64 МБ, на мощных — до половины ОЗУ):

echo "kernel.shmmax=2147483648" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Генерируем русскую локаль — с ней будет работать скрипт инициализации базы:

sudo locale-gen en_US ru_RU ru_RU.UTF-8
export LANG="ru_RU.UTF-8"

Ставим зависимости (для Ubuntu 14.04):

sudo apt-get install libssl0.9.8 libossp-uuid16 libxslt1.1 libicu52 libt1-5 t1utils imagemagick ttf-mscorefonts-installer unixodbc texlive-base libgfs-1.3-2

2. PostgreSQL от 1С

Скачайте пакеты PostgreSQL с сайта 1С и устанавливайте строго по одному в таком порядке:

sudo dpkg -i libpq5_9.2.4-1.1C_amd64.deb
sudo dpkg -i postgresql-client-common_154_all.deb
sudo dpkg -i postgresql-client-9.2_9.2.4-1.1C_amd64.deb
sudo dpkg -i postgresql-common_154_all.deb
sudo dpkg -i postgresql-contrib-9.2_9.2.4-1.1C_amd64.deb
sudo dpkg -i postgresql-9.2_9.2.4-1.1C_amd64.deb

Если contrib требует libicu46

Пакет postgresql-contrib собран под старую libicu. Пересоберите его с нужной зависимостью:

dpkg -x postgresql-contrib-9.2_9.2.4-1.1C_amd64.deb tmpdir
dpkg -e postgresql-contrib-9.2_9.2.4-1.1C_amd64.deb tmpdir/DEBIAN
nano tmpdir/DEBIAN/control      # libicu46 (>= 1.4.6) → libicu52 (>= 1.4.6)
dpkg -b tmpdir postgresql-contrib-9.2_9.2.4-1.1C_amd64_fix.deb
sudo dpkg -i postgresql-contrib-9.2_9.2.4-1.1C_amd64_fix.deb

Проверка и инициализация

whereis postgresql
sudo service postgresql status    # ожидаем: 9.2/main (port 5432): online

Порт меняется в /etc/postgresql/9.2/main/postgresql.conf. Создаём каталог для баз 1С и инициализируем кластер:

sudo mkdir -p /mnt/1c/db
sudo chown postgres:postgres /mnt/1c/db
sudo -u postgres /usr/lib/postgresql/9.2/bin/initdb -D /mnt/1c/db --locale=ru_RU.UTF-8
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'надёжный_пароль';"

Чтобы сервер 1С подключался по паролю, в pg_hba.conf замените метод ident на md5 для локальных подключений:

# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
sudo service postgresql restart

3. Сервер 1С:Предприятие

sudo ln -s /usr/lib/x86_64-linux-gnu/libMagickWand.so.5 /usr/lib/x86_64-linux-gnu/libMagickWand.so
sudo dpkg -i 1c-enterprise83-common_*.deb 1c-enterprise83-common-nls_*.deb \
  1c-enterprise83-server_*.deb 1c-enterprise83-server-nls_*.deb \
  1c-enterprise83-ws_*.deb 1c-enterprise83-ws-nls_*.deb
sudo chown -R usr1cv8:grp1cv8 /opt/1C
sudo service srv1cv83 restart

Проверка

sudo netstat -atn | grep 0.0.0.0:15    # должны слушаться 1540, 1541, 1560
ps aux | grep 1c                        # процессы ragent, rmngr, rphost

4. Ключи защиты HASP

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

Публикация для веб-клиента

Для работы через браузер базу публикуют на веб-сервере утилитой webinst — об этом отдельная статья «Публикация базы 1С на Apache».

Все статьи

Расскажите о задаче — подберём платформу и оценим работу

Обсудить проект