PostGIS 2.0 Install

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介:
应同事需求, 写一篇PostGIS的安装文档.
安装环境 :

CentOS 5.x 64位
PostgreSQL 9.1.3
PostGIS 2.0


一、安装PostgreSQL
新建用户(用户名随意)
useradd postgis

配置环境变量
vi /home/postgis/.bash_profile
# add by digoal
export PS1="$USER@`/bin/hostname -s`-> "
export PGPORT=1997
export PGDATA=/home/postgis/pg_root
export LANG=en_US.utf8
export PGHOME=/home/postgis/pgsql
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib
export DATE=`date +"%Y%m%d%H%M"`
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
alias rm='rm -i'
alias ll='ls -lh'

下载PostgreSQL源码包
wget http://ftp.postgresql.org/pub/source/v9.1.3/postgresql-9.1.3.tar.bz2

解压
tar -jxvf postgresql-9.1.3.tar.bz2

编译
postgis@db-172-16-3-33-> cd postgresql-9.1.3
postgis@db-172-16-3-33-> ./configure --prefix=/home/postgis/pgsql --with-pgport=1997 --with-perl --with-python --with-openssl --with-pam --without-ldap --with-libxml --with-libxslt --enable-thread-safety --with-wal-blocksize=16 && gmake world


安装
sudo gmake install-world


初始化数据库
postgis@db-172-16-3-33-> mkdir $PGDATA
postgis@db-172-16-3-33-> initdb -D $PGDATA -E UTF8 --locale=C -W


修改配置文件
postgis@db-172-16-3-33-> vi $PGDATA/pg_hba.conf
# add by digoal
host all all 0.0.0.0/0 md5


postgis@db-172-16-3-33-> vi $PGDATA/postgresql.conf
listen_addresses = '0.0.0.0'
max_connections = 2000
unix_socket_directory = '.'
unix_socket_permissions = 0700
tcp_keepalives_idle = 60
tcp_keepalives_interval = 10
tcp_keepalives_count = 10
shared_buffers = 2048MB
maintenance_work_mem = 512MB
max_stack_depth = 8MB
shared_preload_libraries = 'pg_stat_statements'
vacuum_cost_delay = 10ms
bgwriter_delay = 10ms
wal_level = hot_standby
synchronous_commit = off
wal_sync_method = fdatasync
wal_buffers = 16384kB
wal_writer_delay = 10ms
checkpoint_segments = 128
archive_mode = on
archive_command = '/bin/date'
max_wal_senders = 32
wal_sender_delay = 10ms
wal_keep_segments = 256
hot_standby = on
max_standby_archive_delay = 900s
max_standby_streaming_delay = 900s
wal_receiver_status_interval = 10s
hot_standby_feedback = on
random_page_cost = 1.5
effective_cache_size = 16384MB # 与内存大小一致
log_destination = 'csvlog'
logging_collector = on
log_directory = '/var/applog/pg_log/postgis/1997'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_file_mode = 0600
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 10MB
log_min_duration_statement = 1000ms
log_checkpoints = on
log_lock_waits = on
log_statement = 'ddl'
track_activity_query_size = 2048
autovacuum = on
log_autovacuum_min_duration = 0
deadlock_timeout = 1s
custom_variable_classes = 'pg_stat_statements'
pg_stat_statements.max = 1000
pg_stat_statements.track = all


新建日志目录
[root@db-172-16-3-33 postgresql-9.1.3]# mkdir -p /var/applog/pg_log/postgis/1997
[root@db-172-16-3-33 postgresql-9.1.3]# chown -R postgis:postgis /var/applog/pg_log/postgis


启动数据库
postgis@db-172-16-3-33-> pg_ctl start
server starting
postgis@db-172-16-3-33-> LOG:  loaded library "pg_stat_statements"


二、安装PostGIS2.0依赖包
下载安装包
[root@db-172-16-3-33 soft_bak]# wget ftp://ftp.remotesensing.org/gdal/gdal-1.9.1.tar.gz
[root@db-172-16-3-33 soft_bak]# wget http://download.osgeo.org/geos/geos-3.3.4.tar.bz2
[root@db-172-16-3-33 soft_bak]# wget http://download.osgeo.org/proj/proj-4.8.0.tar.gz
[root@db-172-16-3-33 soft_bak]# wget http://oss.metaparadigm.com/json-c/json-c-0.9.tar.gz


安装
[root@db-172-16-3-33 soft_bak]# tar -zxvf gdal-1.9.1.tar.gz
[root@db-172-16-3-33 soft_bak]# cd gdal-1.9.1
[root@db-172-16-3-33 gdal-1.9.1]# ./configure --prefix=/opt/gdal-1.9.1
[root@db-172-16-3-33 gdal-1.9.1]# make
[root@db-172-16-3-33 gdal-1.9.1]# make install

[root@db-172-16-3-33 geos-3.3.4]# tar -jxvf geos-3.3.4.tar.bz2
[root@db-172-16-3-33 geos-3.3.4]# cd geos-3.3.4
[root@db-172-16-3-33 geos-3.3.4]# ./configure --prefix=/opt/geos-3.3.4
[root@db-172-16-3-33 geos-3.3.4]# make
[root@db-172-16-3-33 geos-3.3.4]# make install

[root@db-172-16-3-33 soft_bak]# tar -zxvf proj-4.8.0.tar.gz
[root@db-172-16-3-33 soft_bak]# cd proj-4.8.0
[root@db-172-16-3-33 proj-4.8.0]# ./configure --prefix=/opt/proj-4.8.0
[root@db-172-16-3-33 proj-4.8.0]# make
[root@db-172-16-3-33 proj-4.8.0]# make install

[root@db-172-16-3-33 soft_bak]# tar -zxvf json-c-0.9.tar.gz
[root@db-172-16-3-33 soft_bak]# cd json-c-0.9
[root@db-172-16-3-33 json-c-0.9]# ./configure --prefix=/opt/json-c-0.9
[root@db-172-16-3-33 json-c-0.9]# make
[root@db-172-16-3-33 json-c-0.9]# make install


-- 使用rpm安装以下包
libxml2-devel
libxml2
glibc-common (iconv)
GTK+2.0

修改启动postgresql的系统用户环境变量, 把这些LIB加入到LD_LIBRARY_PATH中.
vi /home/postgis/.bash_profile
export LD_LIBRARY_PATH=/opt/gdal-1.9.1/lib:/opt/geos-3.3.4/lib:/opt/json-c-0.9/lib:/opt/proj-4.8.0/lib:$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib

这些修改好后, 需要应用环境变量并重启数据库.
su - postgis
. ~/.bash_profile
pg_ctl stop -m fast
pg_ctl start


三、安装PostGIS 2.0
下载安装包
wget http://www.postgis.org/download/postgis-2.0.0.tar.gz

安装
[root@db-172-16-3-33 soft_bak]# tar -zxvf postgis-2.0.0.tar.gz
[root@db-172-16-3-33 soft_bak]# cd postgis-2.0.0
[root@db-172-16-3-33 postgis-2.0.0]# ./configure --prefix=/opt/postgis-2.0.0 --with-pgconfig=/home/postgis/pgsql/bin/pg_config --with-gdalconfig=/opt/gdal-1.9.1/bin/gdal-config --with-geosconfig=/opt/geos-3.3.4/bin/geos-config --with-xml2config=/usr/bin/xml2-config --with-projdir=/opt/proj-4.8.0 --with-libiconv=/usr/bin --with-jsondir=/opt/json-c-0.9 --with-gui --with-raster --with-topology --with-gettext=no
[root@db-172-16-3-33 postgis-2.0.0]# gmake
[root@db-172-16-3-33 postgis-2.0.0]# gmake install

查看安装是否正确 : 
postgis@db-172-16-3-33-> cd $PGHOME/share/extension/
postgis@db-172-16-3-33-> ll|grep postgis
-rw-r--r-- 1 root root 478K Jun  1 17:44 postgis--2.0.0alpha1--2.0.0.sql
-rw-r--r-- 1 root root 478K Jun  1 17:44 postgis--2.0.0alpha2--2.0.0.sql
-rw-r--r-- 1 root root 478K Jun  1 17:44 postgis--2.0.0alpha3--2.0.0.sql
-rw-r--r-- 1 root root 478K Jun  1 17:44 postgis--2.0.0alpha4--2.0.0.sql
-rw-r--r-- 1 root root 478K Jun  1 17:44 postgis--2.0.0alpha5--2.0.0.sql
-rw-r--r-- 1 root root 478K Jun  1 17:44 postgis--2.0.0alpha6--2.0.0.sql
-rw-r--r-- 1 root root 478K Jun  1 17:44 postgis--2.0.0beta1--2.0.0.sql
-rw-r--r-- 1 root root 478K Jun  1 17:44 postgis--2.0.0beta2--2.0.0.sql
-rw-r--r-- 1 root root 478K Jun  1 17:44 postgis--2.0.0beta3--2.0.0.sql
-rw-r--r-- 1 root root 478K Jun  1 17:44 postgis--2.0.0beta4--2.0.0.sql
-rw-r--r-- 1 root root 478K Jun  1 17:44 postgis--2.0.0rc1--2.0.0.sql
-rw-r--r-- 1 root root 478K Jun  1 17:44 postgis--2.0.0rc2--2.0.0.sql
-rw-r--r-- 1 root root 4.0M Jun  1 17:44 postgis--2.0.0.sql
-rw-r--r-- 1 root root  185 Jun  1 17:44 postgis.control
-rw-r--r-- 1 root root 280K Jun  1 17:44 postgis_topology--2.0.0alpha1--2.0.0.sql
-rw-r--r-- 1 root root 280K Jun  1 17:44 postgis_topology--2.0.0alpha2--2.0.0.sql
-rw-r--r-- 1 root root 280K Jun  1 17:44 postgis_topology--2.0.0alpha3--2.0.0.sql
-rw-r--r-- 1 root root 280K Jun  1 17:44 postgis_topology--2.0.0alpha4--2.0.0.sql
-rw-r--r-- 1 root root 280K Jun  1 17:44 postgis_topology--2.0.0alpha5--2.0.0.sql
-rw-r--r-- 1 root root 280K Jun  1 17:44 postgis_topology--2.0.0alpha6--2.0.0.sql
-rw-r--r-- 1 root root 280K Jun  1 17:44 postgis_topology--2.0.0beta1--2.0.0.sql
-rw-r--r-- 1 root root 280K Jun  1 17:44 postgis_topology--2.0.0beta2--2.0.0.sql
-rw-r--r-- 1 root root 280K Jun  1 17:44 postgis_topology--2.0.0beta3--2.0.0.sql
-rw-r--r-- 1 root root 280K Jun  1 17:44 postgis_topology--2.0.0beta4--2.0.0.sql
-rw-r--r-- 1 root root 280K Jun  1 17:44 postgis_topology--2.0.0rc1--2.0.0.sql
-rw-r--r-- 1 root root 280K Jun  1 17:44 postgis_topology--2.0.0rc2--2.0.0.sql
-rw-r--r-- 1 root root 277K Jun  1 17:44 postgis_topology--2.0.0.sql
-rw-r--r-- 1 root root  169 Jun  1 17:44 postgis_topology.control
-rw-r--r-- 1 root root 8.0K Jun  1 17:44 postgis_topology--unpackaged--2.0.0.sql
-rw-r--r-- 1 root root  77K Jun  1 17:44 postgis--unpackaged--2.0.0.sql


四、使用PostGIS 2.0
创建一个空间测试库
postgis@db-172-16-3-33-> psql postgres postgis -h 127.0.0.1
psql (9.1.3)
Type "help" for help.
postgres=# create database digoal template template0 encoding 'UTF8' ;
CREATE DATABASE


在空间测试库中加载postgis 和 postgis_topology 模块
使用超级用户创建这两个模块
postgres=# \c digoal postgres
digoal=# create extension postgis;
CREATE EXTENSION
digoal=# create extension postgis_topology;
CREATE EXTENSION


现在就可以使用postgis 了.

【参考】

【依赖包】
libxml2-devel
libxml2
glibc-common (iconv)
GTK+2.0

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
5月前
|
关系型数据库
postgis相关插件介绍
postgis相关插件介绍
|
5月前
|
关系型数据库
测试PostGIS是否安装成功
测试PostGIS是否安装成功
|
关系型数据库 Linux PostgreSQL
|
关系型数据库 开发工具 PostgreSQL
安装PostGIS-2.1.8
版本: proj-4.8.0.tar.gz geos-3.4.2.tar.bz2 gdal-2.0.1.tar.gz PostGIS-2.1.82.1.8 前提条件: 安装PostGIS之前必须先安装proj,geos,gdal.
1225 0
|
监控 关系型数据库 数据库
PostgreSQL 9.6 RPM离线安装
项目使用pg,整理个初级的安装教程,简化实施。 部分内容参考来源:https://www.jianshu.com/p/ba02513d4a24 Postgresql RPM离线安装 1.
2629 0
|
关系型数据库 定位技术 数据库
PostGIS的安装与初步使用
PostGIS的安装与初步使用 一、安装PostGIS     在安装PostGIS前首先必须安装PostgreSQL,然后再安装好的Stack Builder中选择安装PostGIS组件。     1.下载安装程序     PostgreSQL安装文件下载地址是https://www.enterprisedb.com/downloads/postgres-postgresql-downloads     这里使用的PostgreSQL版本是9.6。
2337 0
|
监控 关系型数据库 MySQL
MySQL percona-toolkit工具包的安装和使用(超详细版)
转载:https://www.cnblogs.com/zishengY/p/6852280.html 一.检查和安装与Perl相关的模块     PT工具是使用Perl语言编写和执行的,所以需要系统中有Perl环境。
1968 0
|
关系型数据库 Linux PostgreSQL
|
关系型数据库 Linux 数据库
图解PostGIS1--PostGIS安装
前言   PostGIS是PostgreSQL数据库中处理GIS数据的空间数据库扩展,提供大量的空间图形处理和分析函数。很多初学者肯定是安装Linux单机版做做研究学习,而企业级服务器一般会选择Linux环境,所以本文以简短的图文结合,阐述在两种典型环境中快速搭建PostGIS服务。
3163 0
|
关系型数据库 MySQL