Установка PostgreSQL и PostGIS на VPS Linux: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
{{Статья|Черновик|postgres-postgis-vps-linux}}
{{Статья|Черновик|postgres-postgis-vps-linux}}


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


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


== Пошаговая инструкция ==
== Пошаговая инструкция ==
Строка 24: Строка 24:
[[Файл:Droplet-console-access-2.png]]
[[Файл:Droplet-console-access-2.png]]


Из соображений безопасности, для дальнейшей работы не от имени пользователя «root», рекомендуется создать нового суперпользователя. В рассматриваемом примере - пользователь «dab».
Из соображений безопасности, не рекомендуется работы от имени пользователя «root», поэтому лучше создать нового суперпользователя. В рассматриваемом примере - пользователь «dab».
<pre>
<pre>
adduser dab
adduser dab
Строка 48: Строка 48:
<pre>sudo passwd postgres</pre>
<pre>sudo passwd postgres</pre>


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


Теперь необходимо подключиться к БД и установить пароль пользователя СУБД «postgres».
Теперь необходимо подключиться к БД и установить пароль пользователя СУБД «postgres».
<>pre
<pre>
psql
psql
ALTER USER postgres with encrypted password 'укажите-ваш-пароль';
ALTER USER postgres with encrypted password 'укажите-ваш-пароль';

Версия от 15:44, 14 марта 2014

Эта страница является черновиком статьи.


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

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

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

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

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

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

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

Create-droplet.png

Create-droplet-2.png

После нажатия кнопки «Create Droplet» инициализируется процесс создания сервера. Практически сразу, на указанный при регистрации аккаунта ящик электронной почты, приходит письмо, содержащее пароль пользователя root и IP адрес созданного VPS. После получения указанного пароля, необходимо подключиться к консоли созданного сервера. Кнопка «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 для доступа из сети.

Перезагружаем сервер через кнопки «Droplets» / «Power» / «Power Cycle»

Reboot-droplet.png

После перезагрузки, подключаемся к консоли и заходим с систему пользователем «postgres». Кластер БД создаётся командой

initdb --locale=ru_RU.utf8

Теперь необходимо подключиться к БД и установить пароль пользователя СУБД «postgres».

psql
ALTER USER postgres with encrypted password 'укажите-ваш-пароль';
\q

Переключаемся на суперпользователя и редактируем системный файл Postgres для переключения с кластера по умолчанию на созданный кластер с поддержкой русского языка.

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

Нужно изменить строку

data_directory = '/var/lib/postgresql/9.3/main'

на строку

data_directory = '/var/lib/postgresql/data'

Сохраняем изменения и перезагружаем сервер через «Power Cycle».

После перезагрузки сервер готов к работе. Подключиться к нему можно через IP VPS сервера и стандартный порт 5432. При наличие доменного имени и соответствующей настройке(делегированию) DNS, возможно подключаться к СУБД через указание домена.

Dns-droplet.png


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