Установка PostgreSQL и PostGIS на VPS Linux
Статья является пошаговой инструкцией для установки СУБД Postgres с пространственным расширением PostGIS на виртуальный выделенный сервер(VPS). Рассматривается вариант использования хостинг провайдера DigitalOcean. В качестве операционной системы использовалась Ubuntu 12.04 Статья рассчитана на пользователей Linux начального уровня.
Решаемая задача
Возникла необходимость публикации в сети интернет пространственной базы данных с использованием надёжного и недорогого хостинга. Создаваемая база данных должна быть легко масштабируема в дальнейшем, при необходимости.
Пошаговая инструкция
В рассматриваемом примере использовался хостинг DigitalOcean. Для начала работы, необходимо зарегистрироваться на сайте провайдера и пополнить свой баланс. После этого можно приступать к работе.
Создание VPS сервера
VPS сервер в терминологии DigitalOcean называется «droplet». Ассоциация здесь простая: океан - капля. Кнопка «Create» вызывает диалог для указания параметров создаваемого сервера. Необходимо указать имя, выбрать параметры, регион месторасположения и операционную систему создаваемого сервера.
После нажатия кнопки «Create Droplet» инициализируется процесс создания сервера. Практически сразу, на указанный при регистрации акаунта ящик электронной почты, приходит письмо, содержащее пароль пользователя root. После получения указанного пароля, необходимо подключиться к консоли созданного сервера. Кнопка «Droplets», нужно выбрать сервер и далее кнопки «Access» / «Console Access». В открывшемся окне консоли нужно указать имя пользователя root и пароль, полученный на адрес адрес электронной почты.
Из соображений безопасности, для дальнейшей работы не от имени пользователя «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 для доступа из сети.