在CentOS 7上安装PostGIS
我在CentOS 7环境中安装了PostgreSQL 9.5 + PostGIS 2.2.2。
PostGIS — 为 PostgreSQL 提供的空间和地理对象
http://postgis.net/
以下是CentOS的版本。
# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
# uname -a
Linux postgis 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
安装
从 yum 的默认仓库安装的 PostgreSQL 版本号为 9.2.15。
由于这个版本有点旧,所以建议从 PostgreSQL 官方的 yum 仓库安装。
PostgreSQL RPM软件库(通过Yum)
http://yum.postgresql.org/repopackages.php#pg95
从上述位置下载并安装适用于CentOS 7的PostgreSQL 9.5的RPM包。
# yum install -y https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
# yum install -y postgresql95 postgresql95-server postgresql95-libs postgresql95-contrib postgresql95-devel
请先添加EPEL软件仓库,然后通过EPEL安装PostGIS。
# rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
# yum install -y http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm
# yum install -y postgis2_95
版本确认。
# psql --version
psql (PostgreSQL) 9.5.3
数据库初始化。
# /usr/pgsql-9.5/bin/postgresql95-setup initdb
Initializing database ... OK
编辑 pg-hba.conf 文件以更改认证模式。
# vi /var/lib/pgsql/9.5/data/pg_hba.conf
由于是在家中开展开发环境,先暂时按照以下方式进行更改。
# IPv4 local connections:
host all all 0.0.0.0/0 trust
编辑postgresql.conf文件。
# vi /var/lib/pgsql/9.5/data/postgresql.conf
解除 listen_addresses 的注释,并将 localhost 更改为 “*”。
listen_addresses = '*'
启动服务器。
# systemctl start postgresql-9.5
查看日志。
# tail -F /var/log/messages
Jun 3 14:53:48 localhost systemd: Starting PostgreSQL 9.5 database server...
Jun 3 14:53:48 localhost pg_ctl: < 2016-06-03 14:53:48.306 JST >LOG: ログ出力をログ収集プロセスにリダイレクトしています
Jun 3 14:53:48 localhost pg_ctl: < 2016-06-03 14:53:48.306 JST >ヒント: ここからのログ出力はディレクトリ"pg_log"に現れます。
Jun 3 14:53:49 localhost systemd: Started PostgreSQL 9.5 database server.
# tail -F /var/lib/pgsql/9.5/data/pg_log/postgresql-Fri.log
< 2016-06-03 14:53:48.307 JST >LOG: データベースシステムは 2016-06-03 14:43:27 JST にシャットダウンしました
< 2016-06-03 14:53:48.309 JST >LOG: MultiXact member wraparound protections are now enabled
< 2016-06-03 14:53:48.311 JST >LOG: データベースシステムの接続受付準備が整いました。
< 2016-06-03 14:53:48.311 JST >LOG: 自動バキュームランチャプロセス
如果没有出现错误等情况,可以启用自动启动设置。
# systemctl enable postgresql-9.5
# systemctl is-enabled postgresql-9.5
enabled
尝试使用其他机器进行连接。
% psql -h 192.168.33.99 -U postgres
psql (9.3.13, server 9.5.3)
WARNING: psql major version 9.3, server major version 9.5.
Some psql features might not work.
Type "help" for help.
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)
postgres=# \q
连接成功。
建立数据库
在安装了PostgreSQL的机器上切换到postgres用户并创建数据库。
# sudo su - postgres
$ createdb example
连接数据库。
$ psql -d example
执行”create extension postgis;”来启用PostGIS。
example=# create extension postgis;
CREATE EXTENSION
确认PostGIS的版本。
example=# SELECT postgis_full_version() ;
postgis_full_version
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
POSTGIS="2.2.2 r14797" GEOS="3.5.0-CAPI-1.9.0 r4084" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.11.4, released 2016/01/25" LIBXML="2.9.1" LIBJSON="0.11" RASTER
(1 行)
目前看起来好像做得还行。
由于找不到能够进行适当确认的样本数据,所以我先到这里为止。
请参考以下网站
在CentOS上配置PostgreSQL/PostGIS环境 | JURI★GIS
http://www.jurigis.me/2015/01/09/postgis-install-2/
在CentOS上安装并测试PostgreSQL9.5 – Qiita
http://qiita.com/SOJO/items/a1d97887d24c3e44596f