Есть вопросы?
Закажите звонок специалиста!
Есть вопросы?
Закажите звонок специалиста!
Устанавливаем CentOS 7 редакции minimal.
Образ можно взять с официального сайта: www.centos.org/download/
Так как 1С работает только с русской локализацией, то необходимо сразу устанавливать систему с учётом этого. В дальнейшем все действия производятся от имени суперпользователя.
Проверка текущей локализации системы:
Для проверки доступности необходимой локали используем команду:
Для смены локали:
Далее настраиваем статический IP-адрес, маску подсети, шлюз по умолчанию, DNS.
Предварительно делаем бекап стандартного файла конфигурации сетевого интерфейса:
Далее конфигурируем интерфейс (адреса выставляем свои):
В файле /etc/hostname изменим имя хоста на более удобное: 1с-srv.
Сопоставим IP с именем хоста для удобства обращения к серверу. В файле /etc/hosts добавляем запись:
Так же необходимо это соответствие будет прописать на все клиентах, которые будут работать с сервером 1С. В операционной системе Windows это прописывается в файле: C:\Windows\System32\drivers\etc\hosts
172.17.18.236 1c-srv
Также редактируем файл /etc/sysconfig/network, прописываем имя хоста и отключим адресацию IPv6:
Отключаем использование IPv6 на уровне ядра. В файле /etc/sysctl.conf добавляем строчки:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Сохраняем и применяем настройки:
sysctl -p
Отключаем SELinux в файле /etc/sysconfig/selinux
Выполняем команду
setenforce 0
После всех манипуляций обязательно рестарт сети: systemctl restart network и проверяем работу введенной конфигурации.
Следующим шагом обновляем систему и устанавливаем пакеты программ и библиотек:
yum -y update yum -y install epel-release yum -y install nano mc wget net-tools rpm-build gcc make glibc-devel bison flex python-devel tcl-devel readline-devel zlib-devel openssl-devel krb5-devel e2fsprogs-devel gettext pam-devel openldap-devel icu libicu libicu-devel
Скачиваем необходимые нам пакеты с 1с сервером и PostgreSQL и копируем на сервер:
Переходим в папку с 1с:
cd ./tmp/1c
Распаковываем наш архив:
tar -xvf rpm64_8_3_13_1865.tar.gz
Устанавливаем сервер:
yum localinstall ./*.rpm
Прописываем сервер в автозагрузку:
chkconfig srv1cv83 on
Запускаем сервер:
service srv1cv83 start
Проверяем запуск сервера:
Назначим владельцем директории /opt/1C автоматически созданного пользователя usr1cv8 и группу пользователей grp1cv8:
chown -R usr1cv8:grp1cv8 /opt/1C
Задаём пароль для usr1cv8:
passwd usr1cv8
Переходим в папку с пакетами PostgreSQL:
cd ./Postgresql
Распаковываем наш архивы:
tar -xvf postgresql_10.5_11.1C_x86_64_rpm.tar.bz2 tar -xvf postgresql_10.5_11.1C_x86_64_addon_rpm.tar.bz2
Устанавливаем Postgresql:
cd ./postgresql-10.5-11.1C_x86_64_rpm/ yum localinstall ./*.rpm
Устанавливаем доп. модули:
cd ./postgresql-10.5-11.1C_x86_64_addon_rpm/ yum localinstall ./*.rpm
Переключаемся на пользователя postgres (создаётся автоматически при сборке из исходников):
su - postgres
Далее необходимо проинициализировать служебные базы данных с русской локалью:
/usr/pgsql-10/bin/initdb -D /var/lib/pgsql/10/data --locale=ru_RU.UTF-8
Если все прошло успешно можно запускать сервер базы данных. Если нужно создать новую системную базу, то необходимо удалить папку /var/lib/pgsql/10/data.
Запускаем сервер:
/usr/pgsql-10/bin/pg_ctl -D /var/lib/pgsql/10/data -l logfile start
Заходим в базу и задаём пароль для пользователя postgres:
Проверяем локализацию и работоспособность сервера Postgres:
Обязательно редактируем файл /var/lib/pgsql/10/data/pg_hba.conf задаем в нем доступ к базам по паролю, а также передачу данных аутентификации в формате md5 хеш суммы.
Перезагружаем сервер.
После перезагрузки запускаем вручную Postgre и добавляем в автозагрузку:
service postgresql-10 start chkconfig postgresql-10 on
Проверяем результат:
service postgresql-10 status
netstat -tulpn | grep 5432 (по умолчанию postgres использует порт 5432)
Следующим шагом задаем конфигурации сервера Postgres.
Здесь нужно ориентироваться на конфигурацию 1С, количество пользователей 1С, объёмы баз, количество операций с базами. Поэтому конфигурирование большей части параметров производится, на запущенном сервере, путём подбора оптимальных показателей. Настройку выполняем путем редактирования файла /var/lib/pgsql/10/data/postgresql.conf
Частично можно ознакомится с параметрами здесь infostart.ru/public/554213/, а также на сайте postgrespro.ru/docs/.
Предварительно делаем резервную копию postgresql.conf
cp /var/lib/pgsql/10/data/postgresql.conf /var/lib/pgsql/10/data/postgresql.conf.bak
На данной стадии нас интересует параметр listen_addresses, данный параметр позволят задать адрес, список адресов, с которых будет возможно подключение, * - для любого адреса.
Теперь необходимо добавить шрифты и кодировки.
yum -y install xorg-x11-fonts-Type1 xorg-x11-fonts-truetype yum install -y curl cabextract xorg-x11-font-utils fontconfig rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
Устанавливаем библиотеки для иконок и картинок:
yum install ImageMagick.i686 ImageMagick libgsf.i686 unixODBC.i686 glib2.i686
При подключении 1с к серверу может выдать ошибку на отсутствие библиотеки libWand.so, поэтому создадим символическую ссылку на файл установленной библиотеки:
Настроим firewall на нашем сервере.
systemctl stop firewalld systemctl disable firewall yum -y install iptables-services systemctl enable iptables systemctl start iptables
Заходим в настройки iptables и приводим файл к следующему виду:
vi /etc/sysconfig/iptables
Переходим на машину с Windows. Устанавливаем клиент 1С и утилиты для администрирования. Запускаем администрирование 1С.
Если будет ошибка о невозможности загрузить оснастку, используем bat-файл от имени администратора, Регистрация утилиты администрирования. Найти его можно в Пуск - 1С:Предприятие:
Теперь можно добавить наш сервер.
В появившемся окне прописываем имя нашего сервера.
Если все настроено правильно, то увидим локальный кластер с нашим сервером. Создаём информационную базу.
В случае ошибки, при создании базы, идем на сервер и заходим под пользователем postgres. Далее удаляем базу: dropdb postgres.
Следующим шагом переходим в 1С и добавляем нашу базу:
Заходим в конфигуратор и загружаем базу Gilev для теста:
Следующим шагом настроим Web-публикацию:
yum -y install httpd
Редактируем /etc/httpd/conf/httpd.conf где задаем значение директиве ServerName:
ServerName=1c-srv
В корневом каталоге сайта создаем директорию test, где test — имя базы к которой мы будем предоставлять доступ.
mkdir /var/www/html/test
Теперь нам необходимо запустить специальный скрипт для публикации базы на веб-сервере:
/opt/1C/v8.3/x86_64/webinst -apache24 -wsdir test -dir '/var/www/html/test' -connStr 'Srvr="1c-srv";Ref="test";' -confPath /etc/httpd/conf/httpd.conf
Выдаем права на директорию:
chown -R apache:apache /var/www/html/test
Запускаем Apache и добавляем в автозагрузку:
systemctl enable httpd systemctl start httpd
Теперь проверяем по адресу 1c-srv/test
Заключительным этапом настроим резервное копирование базы данных и обслуживание.
Первым делом установим архиватор pigz, поскольку он, в отличии от gzip, хорошо загружает все ядра процессора, что в свою очередь повышает производительность и скорость выполнения архивации.
yum -y install pigz
Монтирование диска:
Создадим папку для монтирования диска для бекапов и монтируем его:
mkdir /mnt/buckup mount /dev/sdb1 /mnt/buckup/
Для автоматического монтирования прописываем диск в файл fstab:
vi /etc/fstab /dev/sdb1 /mnt/buckup ext4 defaults 0 0
Создаем директории, в которых будут находиться наши бекапы (Day, Week, Month…) и назначим владельцем postgres:
mkdir /mnt/buckup/Day /mnt/buckup/Week /mnt/buckup/Month chown -R postgres:postgres /mnt/buckup
Создаем папки для записи лог файлов:
mkdir /var/log/postgresql/ /var/log/postgresql/Day /var/log/postgresql/Week /var/log/postgresql/Month chown -R postgres:postgres /var/log/postgresql/
Далее создаем скрипт buckup.sh для резервного копирования и обслуживания базы:
#!/bin/sh #Установим период, по истечению которого удалятся старые бекапы days=$2 #Установим тип резервного копирования type=$1 # Устанавливаем дату DATA=`date +"%Y-%m-%d_%H-%M"` # Записываем информацию в лог с секундами echo “----------------------------$DATA---------------------------------------” >> /var/log/postgresql/$type/backup.log echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup postgres" >> /var/log/postgresql/$type/backup.log # Бэкапим базу данных postgres и сразу сжимаем /usr/bin/pg_dump -U postgres postgres | pigz > /mnt/buckup/$type/$DATA-postgres.sql.gz echo "`date +"%Y-%m-%d_%H-%M-%S"` End backup postgres" >> /var/log/postgresql/$type/backup.log echo “------------------------------------------------------------------------” >> /var/log/postgresql/$type/backup.log # Удаляем в папке с бэкапами старые архивы /usr/bin/find /mnt/buckup/$type -type f -mtime +$days -exec rm -rf {} \; sleep 2 #Очистка и анализ базы echo “----------------------------$DATA---------------------------------------” >> /var/log/postgresql/$type/service.log # Записываем информацию в лог с секундами echo "`date +"%Y-%m-%d_%H-%M-%S"` Start vacuumdb postgres" >> /var/log/postgresql/$type/service.log vacuumdb --verbose --analyze --full --quiet --dbname=postgres echo "`date +"%Y-%m-%d_%H-%M-%S"` End vacuumdb postgres" >> /var/log/postgresql/$type/service.log echo “------------------------------------------------------------------------” >> /var/log/postgresql/$type/service.log #Перестроение индекса sleep 2 echo "`date +"%Y-%m-%d_%H-%M-%S"` Start reindex postgres" >> /var/log/postgresql/$type/service.log /usr/bin/reindexdb --username postgres --dbname postgres echo "`date +"%Y-%m-%d_%H-%M-%S"` End reindex postgres" >> /var/log/postgresql/$type/service.log echo “------------------------------------------------------------------------” >> /var/log/postgresql/$type/service.log
Сохраняем скрипт и кладем его в папку /var/log/postgresql/buckup.sh
Добавляем привилегии на запуск:
chmod +x /var/log/postgresql/buckup.sh
Заходим от имени пользователя postgres и добавляем скрип в /etc/crontab
su – postgres crontab -e