1.引言
PostGIS
是 PostgreSQL
关系数据库的空间操作扩展。它为 PostgreSQL
提供了存储、查询和修改空间关系的能力。本博客中 PostgreSQL
指代基本的关系数据库功能,而 PostGIS
指代扩展的空间操作特性。在本篇博客中主要介绍如何使用普通用户源码安装PostGIS
,安装PostGIS
需要首先安装PostgreSQL
、python
、proj
、geos
、libxml2
。本篇博客的环境主要为:
- 操作系统的版本为:
Centos6.7
PostgreSQL
的版本为:9.4.1
PostgreSQL
的安装目录为:/home/wpx/usr/local/pgsql
proj
的版本为:4.9.2
proj
的安装目录为:/home/wpx/usr/local/proj
geos
的版本为:3.6.2
geos
的安装目录为:/home/wpx/usr/local/geos
libxml2
的版本为:2.9.4
libxml2
的安装目录为:/home/wpx/usr/local/libxml2
postgis
的版本为:2.2.7
postgis
的安装目录为:/home/wpx/usr/local/postgis
- 操作用户为:
wpx
2. 源码安装PostgreSQL
如何安装PostgreSQL
,请参考博客:Centos6.X源码安装PostgreSQL
3. 安装Python环境
为保证Python的多版本共存,在本博客中使用pyenv,并安装Python2.7.10版本,如何安装pyenv,请参考博客:Centos安装pyenv
4. 源码安装proj
- 源码安装命令
//创建proj安装目录
mkdir -p ~/usr/local/proj
//解压缩
tar -zxvf proj-4.9.2.tar.gz
cd proj-4.9.2
//配置proj的安装目录
./configure --prefix=/home/wpx/usr/local/proj
//编译,并且安装
make & make install
- 安装成功后,
/home/wpx/usr/local/proj
下面应该有四个文件夹
5. 源码安装proj
- 源码安装命令
//创建geos安装目录(编译需要gcc-c++)
mkdir -p ~/usr/local/geos
//解压缩
tar -jxvf geos-3.6.2.tar.bz2
cd geos-3.6.2
//配置geos的安装目录
./configure --prefix=/home/wpx/usr/local/geos
//编译
make
//安装(先编译,后安装。不知道为啥,同时执行编译安装不成功)
make install
- 安装成功后,
/home/wpx/usr/local/geos
下面应该有三个文件夹
6. 源码安装libxml2
- 源码安装命令
//创建libxml2安装目录(编译需要python-devel,且需要本地python环境,即python的目录需要有权限)
mkdir -p ~/usr/local/libxml2
//解压缩
tar -zxvf libxml2-2.9.4.tar.gz
cd libxml2-2.9.4
//配置libxml2安装目录
./configure --prefix=/home/wpx/usr/local/libxml2
//编译
make
//安装
make install
- 安装成功后,
/home/wpx/usr/local/libxml2
下面应该有三个文件夹
7. 源码安装postgis
- 源码安装命令
//创建postgis安装目录
mkdir -p ~/usr/local/postgis
//解压缩
tar -zxvf postgis-2.2.7.tar.gz
cd postgis-2.2.7
//配置postgis的环境,需要指定前面安装软件
./configure --prefix=/home/wpx/usr/local/postgis \
--with-pgconfig=/home/wpx/usr/local/pgsql/bin/pg_config \
--with-geosconfig=/home/wpx/usr/local/geos/bin/geos-config \
--with-projdir=/home/wpx/usr/local/proj/ \
--with-xml2config=/home/wpx/usr/local/libxml2/bin/xml2-config \
--without-raster
//编译
make
//安装
make install
- 进入PostgreSQL的lib目录下面,复制两个文件
cd ~/usr/local/pgsql/lib
cp ../../proj/lib/libproj.so.9.1.0 ./libproj.so.9
cp ../../geos/lib/libgeos_c.so.1.10.2 ./libgeos_c.so.1
- 安装成功后,PostgreSQL的bin目录下面,将会有相应的命令
8. 测试PostGIS
是否安装成功
- 测试指令
//启动数据库服务
/home/wpx/usr/local/pgsql/bin/pg_ctl -D /home/wpx/usr/local/pgsql/data -l logfile start
//登录数据库,创建一个新的数据库
psql -h localhost -p 5432 -U wpx -d postgres
CREATE DATABASE dx;
//将dx升级为空间数据库(第一个是添加空间函数,第二个是创建spatial_ref_sys表)
psql -h localhost -d dx -U wpx -f ../share/contrib/postgis-2.2/postgis.sql
psql -h localhost -d dx -U wpx -f ../share/contrib/postgis-2.2/spatial_ref_sys.sql
- 没有报错,显示成功即可