Установка PostgreSQL и PostGIS на VPS Linux

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница является черновиком статьи.


Статья является пошаговой инструкцией для установки СУБД Postgres с пространственным расширением PostGIS на виртуальный выделенный сервер(VPS). Рассматривается вариант использования хостинг провайдера DigitalOcean. В качестве операционной системы использовалась Ubuntu 12.04 Статья рассчитана на пользователей Linux начального уровня.

Решаемая задача

Возникла необходимость публикации в сети интернет пространственной базы данных с использованием надёжного и недорогого хостинга. Создаваемая база данных должна быть легко масштабируема в дальнейшем, при необходимости.

Пошаговая инструкция

В рассматриваемом примере использовался хостинг DigitalOcean. Для начала работы, необходимо зарегистрироваться на сайте провайдера и пополнить свой баланс. После этого можно приступать к работе.

Создание VPS сервера

VPS сервер в терминологии DigitalOcean называется «droplet». Ассоциация здесь простая: океан - капля. Кнопка «Create» вызывает диалог для указания параметров создаваемого сервера. Необходимо указать имя, выбрать параметры, регион месторасположения и операционную систему создаваемого сервера.

Create-droplet.png

Create-droplet-2.png

После нажатия кнопки «Create Droplet» инициализируется процесс создания сервера. Практически сразу, на указанный при регистрации акаунта ящик электронной почты, приходит письмо, содержащее пароль пользователя root. После получения указанного пароля, необходимо подключиться к консоли созданного сервера. Кнопка «Droplets», нужно выбрать сервер и далее кнопки «Access» / «Console Access». В открывшемся окне консоли нужно указать имя пользователя root и пароль, полученный на адрес адрес электронной почты.

Droplet-console-access.png

Droplet-console-access-2.png

Из соображений безопасности, для дальнейшей работы не от имени пользователя «root», рекомендуется создать нового суперпользователя. В рассматриваемом примере - пользователь «dab».

adduser dab
adduser dab sudo

После создания нового пользователя, необходимо выполнить команду «exit» и войти в систему уже под именем нового пользователя.

Следующий этап настройки сервера - установка русской локали в операционной системе.

sudo locale-gen ru_RU.utf8

Установка Postgres + PostGIS

Для установки СУБД необходимо добавить нужные репозитарии в систему.

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" >> /etc/apt/sources.list'
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update

Непосредственно установка Postgres и PostGIS выполняется командой

sudo apt-get install Postgresql-9.3-postgis pgadmin3 postgresql-contrib

В процессе инсталляции СУБД, пользователь «postgres» уже создан автоматически, поэтому достаточно просто назначить ему свой пароль командой:

sudo passwd postgres

Дальше необходимо создать каталог для нового кластера базы данных(БД). Это действие выполняется от имени пользователя «postgres», поэтому пользователь «postgres» становится владельцем созданного каталога.

su postgres
mkdir /var/lib/postgresql/data
exit

Отредактируем системные файлы для указания каталога данных через системную переменную «PGDATA» и добавления пути с утилитам Postgres.

sudo nano /etc/environment

Внутри файла дополняем значение переменной PATH, дописав в него через двоеточие путь «/usr/lib/postgresql/9.3/bin», а в конце этого файла дописываем строчку с указанием переменной PGDATA. Должно получиться примерно следующее:

PATH="/usr/bin:/usr/lib: ........:/usr/lib/postgresql/9.3/bin"
PGDATA="/var/lib/postgresql/data"

Сохраняем файл через нажатие клавиш «Ctrl+O» и закрываем редактор nano через «Ctrl+X».

Редактируем системные файлы Postgres для доступа к серверу СУБД из сети интернет.

sudo nano /etc/postgresql/9.3/main/postgresql.conf

Изменяем строку

#listen_addresses = 'localhost'

на новое значение

listen_addresses = '*'
sudo nano /etc/postgresql/9.3/main/pg_hba.conf

Изменяем строку

host    all             all             127.0.0.1/32            md5

на новое значение

host    all             all             0.0.0.0/0            md5

Внимание! Приведён пример простейшей настройки Postgres для доступа из сети.



Ссылки на используемые ресурсы