Установка сервера 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».