Предполагается, что операционная система с поддержкой русской локализации уже установлена и мы уже имеем дистрибутив сервера 1С для RPM-based Linux-систем.
Используемые версии дистрибутивов, актуальные на момент написания статьи:
- Операционная система: CentOS Linux release 7.2.1511
- СУБД: PostgreSQL Pro 9.4.9
- Сервер 1С:Предприятия: 8.3.9.1818
Дистрибутивы СУБД PostgreSQL Pro устанавливаются из установочных пакетов, собранных компанией Postgres Professional. В эти установочные пакеты включены изменения, предоставленные компанией 1С.
Настройка hostname и DNS
Hostname в Centos меняется следующей командой:
hostnamectl set-hostname pgsql_1c
Для нормальной работы сервера 1С необходим правильно настроенный DNS сервер, но его настройка выходит за рамки данной статьи. Поэтому для сохранения функциональности сервера мы будем использовать файлы hosts на используемых системах.
На Centos необходимо прописать адрес сервера в файле /etc/hosts :
127.0.0.1 pgsql_1c
Также необходимо прописать на машине, на которой будут установлены платформа и консоль управления сервером 1С в файле hosts (для Windows это C:WindowsSystem32Driversetchosts) адрес сервера 1С:Предприятие.
Например:
192.168.1.5 pgsql_1c
Установка и настройка PostgreSQL
1) Для установки дистрибутивов PostgreSQL Pro необходимо подключить репозитории.
sudo rpm -ivh http://1c.postgrespro.ru/keys/postgrespro-1c-centos94.noarch.rpm
2) Далее устанавливаем непосредственно дистрибутив PostgreSQL Pro.
sudo yum install postgresql-pro-1c-9.4
3) После установки дистрибутива для удобства администрирования сервера PostgreSQL рекомендуется прописать необходимые переменные окружения для пользователя postgres. Этот шаг необязателен.
Переключимся на пользователя postgres с его окружением:
su - postgres
Открываем файл, в котором зададим необходимые переменные окружения:
vim .bash_profile
Добавляем в этот файл переменные:
export PATH=/usr/pgsql-9.4/bin:$PATH export MANPATH=/usr/pgsql-9.4/share/man:$MANPATH
Пример результата измененного файла:
4) Инициализируем служебные базы данных с русской локализацией (под пользователем postgres).
initdb --locale=ru_RU.UTF-8
5) Запуск сервера PostgreSQL.
systemctl enable postgresql-9.4 systemctl start postgresql-9.4 systemctl status postgresql-9.4
6) Изменение настроек сервера PostgreSQL
В файле /var/lib/pgsql/9.4/data/pg_hba.conf изменим строку
host all all 0.0.0.0/0 trusted на host all all 0.0.0.0/0 md5
для возможности пользователю postgres авторизовываться по паролю.
Далее в файле /var/lib/pgsql/9.4/data/postgresql.conf изменяем настройки под наши нужды. Редактируемые настройки:
shared_buffers = 512MB temp_buffers = 16MB work_mem = 128MB maintenance_work_mem = 192MB effective_cache_size = 8GB
Внимание! Подбор данных настроек производится индивидуально и зависит как от характеристик сервера, на котором будет работать сервер PostgreSQL, так и от характеристик информационных баз, которые будут обрабатываться на этом сервере.
7) Задаем пароль пользователю postgres, для того чтобы была возможность подключаться к серверу удаленно.
su – postgres psql ALTER USER postgres WITH ENCRYPTED PASSWORD 'yourpassword';
(вместо yourpassword поставьте нужный пароль)
8) Рестарт сервера PostgreSQL
systemctl stop postgresql-9.4 systemctl start postgresql-9.4 systemctl status postgresql-9.4
Установка сервера 1С:Предприятие
1) Установка сервера 1С:Предприятие из пакетов.
Как оговаривалось в начале статьи, предполагается что у нас уже есть дистрибутив сервера 1С для RPM-based Linux-систем. Он из себя представляет архив с именем rpm64.tar.gz. После разархивирования мы получим список файлов:
1C_Enterprise83-common-8.3.9-1818.x86_64.rpm 1C_Enterprise83-server-8.3.9-1818.x86_64.rpm 1C_Enterprise83-ws-8.3.9-1818.x86_64.rpm 1C_Enterprise83-common-nls-8.3.9-1818.x86_64.rpm 1C_Enterprise83-server-nls-8.3.9-1818.x86_64.rpm 1C_Enterprise83-ws-nls-8.3.9-1818.x86_64.rpm
Находясь в каталоге с этими файлами, мы их устанавливаем командой:
yum localinstall *.rpm
2) Запуск сервера 1С.
systemctl enable srv1cv83 systemctl start srv1cv83 systemctl status srv1cv83
Высока вероятность, что сервер не запустится с первого раза, и при попытке запуска Вы получите ошибку вида:
Failed at step EXEC spawning /etc/rc.d/init.d/srv1cv83: Exec format error
Чтобы устранить эту ошибку, необходимо в скрипте инициализации сервера указать интерпретатор (например shell или bash), для этого необходимо добавить в начало файла /etc/init.d/srv1cv83 строку:
#!/bin/bash
Затем надо перезагрузить systemd для поиска новых или измененных юнитов:
systemctl daemon-reload
И снова попытаться запустить сервер 1С:Предприятие
systemctl restart srv1cv83.service
3) Установка необходимых пакетов для корректной работы сервера 1С.
В документации сервера 1С:Предприятия описана утилита config_system, которая необходима для анализа готовности системы к запуску сервера 1С, в частности она помогает обнаружить отсутствующие необходимые пакеты для корректной работы сервера 1С. К сожалению, анализ rmp пакетов (rmp -ql) показал отсутствие данной утилиты в составе дистрибутива сервера 1С версии 8.3.9.1818.
Необходимость данных пакетов выяснилась опытным путем:
yum install fontconfig-devel yum install ImageMagick
4) Рестарт сервера 1С.
systemctl stop srv1cv83 systemctl start srv1cv83 systemctl status srv1cv83
Настройка сервера 1С посредством консоли администрирования.
1) Подключение к серверу 1С.
Необходимо указать имя сервера (прописанное в hosts) и порт 1540 (используется по умолчанию):
2) Создание кластера.
Необходимо указать:
— произвольное имя кластера,
— имя центрального сервера, на котором располагается кластер (прописанный в hosts)
— порт 1541 (используется по умолчанию)
3) Создание базы на кластере сервера 1С.
Необходимо указать:
— имя базы на кластере 1С;
— имя сервера баз данных (прописанное в hosts);
— тип СУБД (PostgeSQL);
— имя базы данных на сервере СУБД;
— пользователь сервера СУБД (в нашем случае postgres);
— пароль указанного пользователя сервера СУБД.
При необходимости можно отметить пункт «Создать базу с случае ее отсутствия»
Хорошо бы написать скрипт, который все эти манипуляции сделал с командами и фалами настройки.
Не увидел правильного решения этой задачи. Низачот (с)
(1) zabaluev, Экономия времени при наличии скрипта небольшая, зато вероятность ошибки значительная. Например, если версии пакетов изменились, или у вас настройки отличаются.
Все-таки в документации это все есть. По поводу config_server, он есть в версии 8.2, поэтому лучше один раз поставить на виртуальную машину сервер 1с 8.2 и получить список пакетов из config_server. Про настройку PostgreSQL лучше отправить наИТС Postgresql . Прописывать в файликах hosts адрес сервера на всех клиентских компьютерах решение не ахти, лучше на сервере настроить wins (да придется поставить Samba). Так же ничего не сказано про hasp, так как ключи все-таки лучше программной лицензии. Настройка firewall была бы не лишней, и есть ли проблемы с SELinux. Интересен опыт использования сборки от Postgresql Professional: какая база, сколько работаете ? У меня с УПП при работе с документом Реализация товаров и услуг были большие проблемы, пришлось перейти на сборку от 1С.
Все внятно и понятно в общих чертах. Спасибо! +
P.S.http://1c.postgrespro.ru/keys/postgrespro-1c-centos94.noarch.rpm — не работает ))
(3) Ну да… У кого-то это займет пару недель… Скрип написать точно не быстрее. ))
Один vim чего стоит (
(4)
Я просто в консоли кластера удалю вновь созданный кластер, и добавляю новый и указываю ip адрес или корректное dns имя.
кому интересно как установить Apache32 битный на CentOS x64.
1. надо забэкапить repo файлы: cp -f -R /etc/yum.repo.d /etc/yum.repo.d.backup
2. потом удалить текущие репо: rm -f /etc/yum.repo.d/*
3. и создать один репо файлик : /etc/yum.repo.d/my.repo c содержимым
[my]
name=CentOS
baseurl=http://mirror.centos.org/altarch/$releasever/os/i386/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
4. устанавливаем yum install httpd.i686
5. если успешно поставится, надо вернуть назад нормальные репо-файлы:
cp -f /etc/yum.repo.d.backup/* /etc/yum.repo.d/
./webinst -apache24 -wsdir mybase -dir ‘/var/www/mybase/’ -connStr ‘Srvr=localhost;Ref=base;’ -confPath /etc/httpd/conf/httpd.conf
А никто не сталкивался с таким, после установки Postgresql от Postgrespro в системе отсутствует psql?
Почему так, понять не могу. google тоже молчит.
psql не найден ни под root, ни под postgres ни под sudo.
Сервер CentOS 7.
https://postgrespro.ru/products/archive/1c .
Установку postgres делал по инструкции с сайта
Сам же и нашел ответ.
Теперь psql лежит в другом месте
/opt/pgpro/1c-11/bin/psql
Как прописать этот путь в окружение пользователя не знаю.
при вызове vim .bash_profile получаю пустой файл.
(10)
При установке pgpro достаточно выполнить yum install postgrespro-std-10 и больше ничего не трогать, ну кроме нужных пакетов типа postgrespro-std-10-client postgrespro-std-10-libs postgrespro-std-10-contrib postgrespro-std-10-devel и т.д. И все будет на месте сам ПГ в /opt база в /var/lib/pgpro Кластер инициализируется автоматом и запустится и сам перейдет в режим автозапуска. И pgpro11 я бы пока не рекомендовал использовать
(10) Добавить в него строчки
PATH=$PATH:/opt/pgpro/1c-11/bin
export PATH
Перелогиниться, чтобы изменения вступили в силу.
Для пользователя postgres, конечно.