本文针对CentOS 6与redhat 6系统的PostGIS安装进行介绍,如果是其他系统版本,安装下面的软件repo时请根据实际情况修改
- 添加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
- 添加epel源(如果安装过其他版本EPEL可以跳过)
rpm -ivh http:
//dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
- 安装postgresql(根据版本不同,下面命令可能有些变化,比如有些仓库中可能包的名称为postgresql-server,后续命令可以对应变化)
yum install --enablerepo=pgdg94 postgresql94-server
- 如果不修改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“。
- 如果希望用专门的用户来部署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
- 安装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 搜索对应系统的版本)
- 创建空间数据库
先创建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
- 如果认证用户
详情可以参考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去连接看看。