GIS-LAB

Географические информационные системы и дистанционное зондирование


Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли


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

Обсуждение материалов сайта: вопросы, замечания, предложения

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

Сообщение dab » 14 мар 2014, 18:54

Статья из серии "howto". Нужна ли вообще?
http://gis-lab.info/qa/postgis-vps-install.html
Приглашаю к обсуждению.

===================
P.S. от 27.03.2014: статья опубликована.
  • 8

Аватара пользователя
dab
Гуру
 
Зарегистрирован: 16 дек 2011
Откуда: Москва (на карте)
 
Сообщения: 665
Репутация: 166
Статьи: 2
Проекты: 1

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение Denis Rykov » 14 мар 2014, 19:07

Ставил Postgres много раз, но никогда прежде не требовалось инициализировать кластер вручную, все это делалось автоматом при установке. Тут этого не происходит?
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3264
Репутация: 478
Статьи: 33
Проекты: 9

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение dab » 14 мар 2014, 19:13

Denis Rykov писал(а):Ставил Postgres много раз, но никогда прежде не требовалось инициализировать кластер вручную, все это делалось автоматом при установке. Тут этого не происходит?

Происходит, но локаль английская по-умолчанию.
Насколько я понимаю, что-бы сделать полную поддержку русского языка нужно создать новый кластер.
  • 0

Аватара пользователя
dab
Гуру
 
Зарегистрирован: 16 дек 2011
Откуда: Москва (на карте)
 
Сообщения: 665
Репутация: 166
Статьи: 2
Проекты: 1

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение Denis Rykov » 14 мар 2014, 19:34

Так точно:
Код: Выделить всё
dbvega=# SHOW LC_COLLATE;
 lc_collate
------------
 en_US.utf8
(1 row)

Но пока еще ни разу не сталкивался с какими-то проблемами, связанными с локалью. Что касается статьи, то мне кажется стоит прояснить момент с переменной окружения PGDATA - для чего ее нужно указывать, ну и поподробнее про то для чего нужно создавать кластер с нужной локалью.
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3264
Репутация: 478
Статьи: 33
Проекты: 9

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение dab » 14 мар 2014, 19:37

Denis Rykov писал(а):Что касается статьи, то мне кажется стоит прояснить момент с переменной окружения PGDATA - для чего ее нужно указывать, ну и поподробнее про то для чего нужно создавать кластер с нужной локалью.

Принято. Спасибо.
  • 0

Аватара пользователя
dab
Гуру
 
Зарегистрирован: 16 дек 2011
Откуда: Москва (на карте)
 
Сообщения: 665
Репутация: 166
Статьи: 2
Проекты: 1

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение KolesovDmitry » 14 мар 2014, 20:33

dab писал(а):Статья из серии "howto". Нужна ли вообще?

Хорошая статья. На мой взгляд как раз и нужны в первую очередь такие, которые расчитаны на начального пользователя.
  • 0

KolesovDmitry
Гуру
 
Зарегистрирован: 22 авг 2007
Откуда: Казань (на карте)
 
Сообщения: 805
Репутация: 116
Статьи: 18
Проекты: 4

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение rhot » 15 мар 2014, 10:54

1) Не хватает информации о том, как из БД сделать геоБД. Зачем вообще ставили PostGIS?
2) Что именно даёт русская локаль?
  • 0

___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
Аватара пользователя
rhot
ВольныйИсследователь
 
Зарегистрирован: 25 янв 2011
Откуда: Архангельск (на карте)
 
Сообщения: 1521
Репутация: 112
Статьи: 1

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение dab » 15 мар 2014, 14:55

Denis Rykov писал(а):Но пока еще ни разу не сталкивался с какими-то проблемами, связанными с локалью. Что касается статьи, то мне кажется стоит прояснить момент с переменной окружения PGDATA - для чего ее нужно указывать, ну и поподробнее про то для чего нужно создавать кластер с нужной локалью.

rhot писал(а):2) Что именно даёт русская локаль?

Был неправ. Видимо некоторая инертность мышления у меня имеется... :oops:
Не смог найти что именно даёт русская локаль. И без настройки русской локали, при работе с кластером по умолчанию, я не обнаружил проблем ни с сортировкой ни с функциями upper, lower ... Соответственно установка PGDATA также становится неактуальной.
Буду править статью в сторону упрощения. Спасибо за вопросы.

rhot писал(а):1) Не хватает информации о том, как из БД сделать геоБД. Зачем вообще ставили PostGIS?

Не понял, что значит "сделать геоБД"? По данному "рецепту" получаем рабочий сервер PostGIS, дальнейшие действия выходят за рамки темы статьи. Я например, далее использую SQL Manager от EMS.
PostGIS ставил для своей пространственной БД. Мой первый опыт с СУБД на Linux сервере. Внятного русскоязычного описания последовательности действий для VPS, а не Desktop не нашел. А что находил - только "сбивало с пути" - русская локаль, тому пример. :)
  • 0

Аватара пользователя
dab
Гуру
 
Зарегистрирован: 16 дек 2011
Откуда: Москва (на карте)
 
Сообщения: 665
Репутация: 166
Статьи: 2
Проекты: 1

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение Denis Rykov » 15 мар 2014, 15:21

Еще небольшое замечание - pgadmin3 на сервере зачем? И вот еще: мне кажется нужно убрать весь этот компонент, относящийся к VPS - скриншоты, упоминания про него, как я понял ничего специфичного там нет, а статью переименовать в "Установка Postgres + PostGIS в Linux", а в статье указать, что рассмотрена установка на примере Ubuntu.
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3264
Репутация: 478
Статьи: 33
Проекты: 9

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение Denis Rykov » 15 мар 2014, 15:41

Согласен с rhot - не хватает информации о том, как добавить функционал PostGIS в свою БД. Вот небольшая вырезка по этому вопросу из одной моей доки, мне кажется что-то подобное нужно включить в статью и обратить внимание на то, что в последних версиях PostGIS можно добавить в БД через экстеншены (я не пользовался ими, но это гораздо проще, чем запускать *.sql файлы):

В Debian GNU/Linux 7.0 в репозиториях доступен PostGIS 1.5. Для установки
выполняем следующую команду:

sudo aptitude install postgresql-9.1-postgis


Добавление функций PostGIS в базу данных
----------------------------------------

Чтобы внутри базы данных были доступны функции PostGIS, их необходимо туда
загрузить. Делаем это от имени пользователя `postgres` (у пользователя
`pguser` на выполнение данных инструкций недостаточно прав):

sudo su - postgres -c "psql -d dbvega -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql"
sudo su - postgres -c "psql -d dbvega -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql"
sudo su - postgres -c "psql -d dbvega -c 'ALTER TABLE geometry_columns OWNER TO pguser'"
sudo su - postgres -c "psql -d dbvega -c 'ALTER TABLE spatial_ref_sys OWNER TO pguser'"
sudo su - postgres -c "psql -d dbvega -c 'ALTER TABLE geography_columns OWNER TO pguser'"

Чтобы проверить, что PostGIS установился, выполним команду c локального хоста:

psql -d dbvega -U pguser -c "SELECT PostGIS_Full_Version();"

или с удалённого:

psql -d dbvega -h 10.22.0.9 -U pguser -c "SELECT PostGIS_Full_Version();"

В результате чего должен быть получен ответ вида:

-------------------------------------------------------------------------------------------------------
POSTGIS="1.5.3" GEOS="3.3.3-CAPI-1.7.4" PROJ="Rel. 4.7.1, 23 September 2009" LIBXML="2.7.8" USE_STATS
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3264
Репутация: 478
Статьи: 33
Проекты: 9

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение Denis Rykov » 15 мар 2014, 15:59

Под суперпользователем postgres я бы тоже не рекомендовал работать. Если не против, то вот моя инструкция по установке Postgres в Debian, может стоит что-то взять отсюда:
В Debian GNU/Linux 7.0 репозитории доступен [PostgreSQL 9.1](http://www.postgresql.org/), который
может быть установлен с помощью менеджера управления пакетами.

Установка сервера:

sudo aptitude install postgresql

Запуск, остановка, перезапуск сервера:

sudo /etc/init.d/postgresql start|stop|restart

или

sudo service postgresql start|stop|restart

В результате установки также будет установлен консольный клиент [psql](http://www.postgresql.org/docs/9.1/static/app-psql.html).


Управление пользователями на уровне хоста
-----------------------------------------

При установке PostgreSQL в системе и в БД создаётся
пользователь с именем `postgres` (суперпользователь). Все настройки доступа
к базе данных на уровне хоста располагаются в файле `/etc/postgresql/9.1/main/pg_hba.conf`.
Настройки для пользователя `postgres` по умолчанию имеют вид:

local all postgres peer

Это означает, что пользователь `postgres` (роль в БД) с локального хоста (на
котором установлен PostgreSQL) имеет доступ ко всем базам данных, используемый
метод аутентификации - `peer`. Суть этого метода заключается в том, что при
доступе к БД в качестве имени роли используется текущее имя пользователя
операционной системы.

Создание баз данных и пользователей
-----------------------------------

Обычно, работа с базами данных не осуществляется от имени `postgres` (из
соображений безопасности). Поэтому
создадим для наших задач на уровне БД отдельного пользователя, назовём его
`pguser` (пароль `topsecret`):

sudo su postgres -c "createuser -P -e pguser"
Введите пароль для новой роли:
Повторите его:
Должна ли новая роль иметь полномочия суперпользователя? (y - да/n - нет) n
Новая роль должна иметь право создавать базы данных? (y - да/n - нет) n
Новая роль должна иметь право создавать другие роли? (y - да/n - нет) n
CREATE ROLE pguser PASSWORD 'md53efb3c70124a58a615eb89f66d1a1497' NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;

Мы создали пользователя, который не обладает правами суперпользователя,
не может создавать базы данных и другие роли
(см. [документацию](http://www.postgresql.org/docs/9.1/stat ... erole.html)).

От имени `postgres` создадим базу данных `dbvega` и сделаем пользователя `pguser`
её владельцем:

sudo su postgres -c "createdb -O pguser --encoding=UTF8 dbvega"


Доступ с локального хоста
-------------------------

Для доступа к PostgreSQL с локального хоста от имени любого пользователя, отличного
от `postgres` будем использовать парольный метод аутентификации `md5`. Для
этого в файле `pg_hba.conf` отредактируем соответствующую строку и приведём
её к виду:

local all all md5

Перезагружаем сервер:

sudo service postgresql restart

Теперь при подключении к СУБД необходимо явно указывать имя того пользователя
от которого осуществляется подключение:

psql -d dbvega -U pguser

После чего сервер будет автоматически запрашивать пароль пользователя.


Доступ с удалённых хостов
-------------------------

Для разрешения доступа к серверу с других хостов, необходимо выполнить 2
настройки:

1. В файле `/etc/postgresql/9.1/main/postgresql.conf` раскомментировать
строку `listen_addresses = 'localhost'` и заменить её на
`listen_addresses = '*'`.

2. В файл `/etc/postgresql/9.1/main/pg_hba.conf` добавить строку вида:

host all all 10.22.0.0/24 md5

После чего перезапускаем сервер:

sudo service postgresql restart

Теперь с хостов, расположенных в подсети, указанной в файле `pg_hba.conf`
(`10.22.0.0/24`) к серверу можно подключиться, используя следующую команду:

psql -h 10.22.0.9 -d dbvega -U pguser

После ввода данной команды будет запрошен пароль пользователя `pguser`.
В данном примере PostgreSQL функционирует в подсети `10.22.0.0/24` по адресу
`10.22.0.9`.
  • 1

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3264
Репутация: 478
Статьи: 33
Проекты: 9

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение rhot » 15 мар 2014, 17:34

Denis Rykov писал(а):Согласен с rhot - не хватает информации о том, как добавить функционал PostGIS в свою БД. Вот небольшая вырезка по этому вопросу из одной моей доки, мне кажется что-то подобное нужно включить в статью и обратить внимание на то, что в последних версиях PostGIS можно добавить в БД через экстеншены (я не пользовался ими, но это гораздо проще, чем запускать *.sql файлы)
Думаю, стоит всё же описать как это сделать на элементарном уровне, а потом уже упомянуть про всякие новые экстеншены.
  • 0

___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
Аватара пользователя
rhot
ВольныйИсследователь
 
Зарегистрирован: 25 янв 2011
Откуда: Архангельск (на карте)
 
Сообщения: 1521
Репутация: 112
Статьи: 1

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение bolotoved » 15 мар 2014, 17:38

Поскольку по сути мне сказать нечего, буду придираться к формальностям :twisted:
Меня одного смущают иллюстрации? Они занимают весь экран и, например, текст между 1-й и 2-й иллюстрацией теряется. Может обрезать у картинок периферию с кнопками?
  • 0

bolotoved
Гуру
 
Зарегистрирован: 30 дек 2008
Откуда: Ханты-Мансийск (на карте)
 
Сообщения: 920
Репутация: 234
Статьи: 4
Проекты: 1

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение rhot » 15 мар 2014, 17:43

Хватило б одной картинки для иллюстрации интерфейса и всё.
  • 0

___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
Аватара пользователя
rhot
ВольныйИсследователь
 
Зарегистрирован: 25 янв 2011
Откуда: Архангельск (на карте)
 
Сообщения: 1521
Репутация: 112
Статьи: 1

Re: Установка Postgres + PostGIS на VPS Linux

Сообщение Denis Rykov » 15 мар 2014, 17:56

Еще надо как-то обосновать для чего подключен сторонний репозитрий (нет нужной версии в официальном репозитории?) Еще судя по всему при описанном способе установки через экстеншены (как я понял вы подключаетесь к БД от имени postgres) владельцами таблиц geometry_columns и spatial_ref_sys становится именно пользователь postgres - в большинстве случаев владелец БД должен иметь доступ к этим таблицам, поэтому стоит сменить владельца на него.
  • 1

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3264
Репутация: 478
Статьи: 33
Проекты: 9

След.

Вернуться в Материалы сайта

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


(Геокруг)

© GIS-Lab и авторы, 2002-2013. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов (подробнее).