PostGIS安装

本文针对CentOS 6与redhat 6系统的PostGIS安装进行介绍,如果是其他系统版本,安装下面的软件repo时请根据实际情况修改

  1. 添加pgdg的repo(使用root权限账号,以下类同)
    在CentOS6上
    yum localinstall http: //yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-1.noarch.rpm
    在redhat 6 系统
    yum localinstall http: //yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
  2. 添加epel源(如果安装过其他版本EPEL可以跳过)
    rpm -ivh http: //dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  3. 安装postgresql(根据版本不同,下面命令可能有些变化,比如有些仓库中可能包的名称为postgresql-server,后续命令可以对应变化)
    yum install --enablerepo=pgdg94 postgresql94-server
  4. 如果不修改pgsql的目录,可以直接运行下面命令:
    service postgresql- 9.4 initdb
    service postgresql- 9.4 start
    chkconfig postgresql- 9.4 on

    这样可以初始化pgsql,并让postgresql每次启动自动运行,缺省的数据目录在/var/lib/pgsql/9.4/data,这时切换到postgres用户(安装postgresql时会缺省建立一个postgres用户),即可以用psql命令登陆postgrsql。可以忽略下一步骤,跳到”安装postgis“。

  5. 如果希望用专门的用户来部署postgresql,可以进行下面这个步骤:
    添加用户
    useradd postgresql
    su postgresql
    mkdir data

    vim ~/.bash_profile文件,添加:

    export PGHOME=/usr/pgsql- 9.4
    export PGDATA=/home/postgresql/data

    vim /etc/init.d/postgresql-9.4文件(root权限),修改下面两行

    PGDATA=/home/postgresql/data
    PGLOG=/home/postgresql/pgstartup.log

    另外修改

    $SU -l postgres -c "$PGENGINE/postmaster -D '$PGDATA' ${PGOPTS} &" >> "$PGLOG" 2 >& 1 < /dev/ null

    为:

    $SU postgresql -l postgres -c "$PGENGINE/postmaster -D '$PGDATA' ${PGOPTS} &" >> "$PGLOG" 2 >& 1 < /dev/ null

    然后保存退出,执行:

    source ~/.bash_profile
    /usr/pgsql- 9.4 /bin/initdb
    /usr/pgsql- 9.4 /bin/pg_ctl start
    或者使用root账号
    service  postgresql- 9.4 start
  6. 安装postgis扩展
    yum install postgis2_94 postgis-utils postgis2_94-devel postgis2_94-utils

    (如果提示json-c找不到依赖,可以从 ftp://rpmfind.net/linux/centos/6.7/os/x86_64/Packages/json-c-0.11-12.el6.x86_64.rpm 下载,用rpm命令先安装,或者上http://rpmfind.net/linux/rpm2html/search.php?query=libjson-c.so.2 搜索对应系统的版本)

  7. 创建空间数据库
    先创建db:
    createdb postgis
    然后导入PostGIS扩展,老版PG的方法,创建扩展与空间参考:
    psql -h 127.0 . 0.1 -d postgis -f /usr/pgsql- 9.4 /share/contrib/postgis- 2.1 /postgis.sql
    psql -h 127.0 . 0.1 -d postgis -f /usr/pgsql- 9.4 /share/contrib/postgis- 2.1 /spatial_ref_sys.sql
    新版方法,连接数据库后,使用create extension postgis创建扩展:
    #\c postgis
    #create extension postgis
  8. 如果认证用户
    详情可以参考http://www.php100.com/manual/PostgreSQL8/
    如果想允许一个用户从其他机器使用用户名、密码登录,需要这么几步:
    1) 修正postgresql.conf, 设置listen_address=0.0.0.0(否则默认只监听127.0.0.1,即只允许本机登录)
    2) 在pg_hba.conf中配置host与认证方式,例如:host all admin 0.0.0.0/0 md5
    3) 如果采用MD5、password等认证方式,还需要CREATE/ALTER USER admin with password '*';命令来设置密码(可以在本机登录后执行命令)
    然后重启服务,可以试着用pgAdmin去连接看看。

你可能感兴趣的:(postgis)