Для работы Сервера 1С Linux, необходимо иметь СУБД. В будущем мы будем рассматривать связку 1C Server Ubuntu + PostgreSQL Ubuntu. Но прежде чем перейти к рассмотрению и тестированию данной связки, нам необходимо установить PostgreSQL для 1С на Ubuntu Server 16.04 . По большому счету на данном этапе мы не будем рассматривать куда устанавливать postgres, на одну вирт машину рядом с сервером 1С, на другую виртмашину машину в пределах одного хоста, или же другую виртмашину на другом хосте. Сейчас необходимо лишь описать процесс установки postgresql на ubuntu server 16.04. Чтобы в дальнейшем прибегать к этой статье как основе для следующих статей. Почему именно 16.04 а не 18.04 которая уже вышла? Просто чтобы не заморачиваться за установку Postgres 9.6 на 18.04, которая жалуется на то что эта версия слишком старая и требует установку Postgres 10
Установка PostgreSQL для 1С на Ubuntu
Хотел бы сразу же предостеречь от установки PostgreSQL, которая будет использоваться для организации работы серверов 1С, из репозиториев. Связано это с тем, что 1С — капризная дичь, для её работы нужны специальные сборки PostgreSQL, которые в официальных репозиториях не проживают, банально за ненадобностью таких реализация PostgreSQL для чего-либо кроме 1С. Поэтому перво наперво нам нужна именно 1Сная сборка PostgreSQL. Такая сборка либо берется с сайта ИТС 1С, если есть готовая под вашу платформу, либо собирается ручками из исходников со всеми необходимыми патчами (которые тоже имеются на сайте ИТС). Собственно если вы можете собрать постгрес из исходников, то вам эта статься и не нужна. Поэтому я буду описывать ситуацию установки PostgreSQL для 1С на Ubuntu Server 18.04 из готового пакета, с сайта ИТС 1С.
Исходные данные
- Установленный и обновленный Ubuntu Server 16.04 x64. Если нет то вам сюда Установка Ubuntu Server 16.04
- IP и имя тестового сервера Ubuntu Postgres: 192.168.1.111 ag-psql-s1
- IP и имя тестового сервера Ubuntu 1C: 192.168.1.110 ag-1c-s1
- На сервере ag-1c-s1 в /etc/hosts должна быть запись 192.168.1.111 ag-psql-s1
-
Скачиваем DEB пакет в архиве
Попутно стоит заглянуть в Особенности релиза. Про Ubuntu там написано следующее:
sudo apt-get install libicu55 postgresql-common
Это то что нам будет необходимо сделать прежде чем устанавливать скачанный пакет. -
Устанавливаем локали
По сути, когда мы устанавливали систему, и выбрали там Russian + Russian, мы уже сделали все необходимое, но таки на всякий случай, можно перегенерировать локали повторно. Вводим последовательно:
-
sudo locale-gen en_US
-
sudo locale-gen ru_RU
-
sudo update-locale LANG=ru_RU.UTF8
-
sudo dpkg-reconfigure
locales
-
-
Переносим архив в папку /tmp
Заливаем пакет в /tmp на наш сервер, с помощью WinSCP или любым другим удобным для вас способом.
- Переходим в папку /tmp
cd /tmp
- Убеждаемся что наш архив на месте
ls
- Извлекаем архив
tar -xvf ./postgresql_9.6.6_1.1C_amd64_deb.tar.bz2
- Проверяем куда был извлечен архив, команда
ls
Архив был извлечен в папку ./postgresql-9.6.6-1.1C_amd64_deb - Устанавливаем пакеты
- Сперва тот что упомянут в Особенностях релиза
- Потом все пакеты что извлеклись в папку postgresql-9.6.6-1.1C_amd64_deb
cd ./postgresql-9.6.6-1.1C_amd64_deb
sudo dpkg -i ./*.deb
- Проверяем что все работает
service postgresql status
— Должно зелененьким написать active (exited)
telnet localhost 5432
— Проверяем можно ли подключиться на порт 5432 на локальной машине. Должно написать Connected to localhost - Проверяем доступ из вне
Если при подключении внутри сервера всё работает, пытаемся подключитьсяtelnet <ip сервера> 5432
. Если не пустило, то
sudo nano /etc/postgresql/9.6/main/postgresql.conf
и смотрим параметрlisten_addresses
если он равен ‘localhost’, значит сейчас постгрес не принимает подключения откуда либо кроме как с самого сервера. Меняем на ‘*’ и тогда любой компьютер сможет подключиться на порт 5432 - Настраиваем доступ суперпользователя
- Открываем pg_hba.conf
Данный файл находится по пути/etc/postgresql/9.6/main/pg_hba.conf
Если у вас другая версия postgres, в вашем пути числа 9.6 изменятся на номер вашей версии.
sudo nano /etc/postgresql/9.6/main/pg_hba.conf
- Находим строку
local all postgres peer
- Меняем тип доступа для пользователя postgres на trust, строка должна выглядеть
local all postgres trust
- Все остальные строки с правилами необходимо закоментить, поставив вначале знак #. Сохраняем изменения
Ctrl+O
, закрываем файлCtrl+X
- Перезапускаем postgresql
sudo service postgresql restart
- Супер пользователь не должен быть без пароля. Задаем длинный и сложный пароль пользователю postgres следующей командой:
psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'Qwerty123'"
Вам нужно будет использовать другой пароль.
- Добавляем в pg_hba.conf новую или изменяем одну из имеющихся строку:
host all postgres 192.168.1.0/24 md5
192.168.1.0 замените на вашу подсеть. - Перезагружаем PostgreSQL
sudo service postgresql restart
- Открываем pg_hba.conf
Теперь пользователь postgres сможет подключиться к серверу с любого устройства находящегося в подсети 192.168.1.0/24, используя логин postgres и пароль Qwerty123. Для того чтобы сервер 1С смог создавать базы на данном сервере, у него в hosts должна быть указана запись связывающая ip адрес с именем сервера ag-psql-s1. В моём случае это 192.168.1.111 ag-psql-s1
Хочу заметить что это плохая практика работать под пользователем postgres. Желательно иметь если не по отдельному пользователю на каждую базу и при наличии подрядчиков, иметь еще отдельные учетки для баз для подрядчиков, то хотябы отдельного пользователя с ограниченными правами, чтобы не накосячить в процессе работы.
Vkontakte Comments
Default Comments