PostGIS 2.4 服务器编译安装指南
PostGIS是PostgreSQL的地理信息系统(GIS)扩展,使PostgreSQL能够处理地理数据。本文将详细介绍如何在Linux服务器上编译和安装PostGIS 2.4。
1. 安装前的准备工作
在开始编译和安装PostGIS之前,需要确保系统中已安装以下依赖包:
- PostgreSQL 9.5+ 或更高版本
- GEOS 3.5+
- PROJ 4.9+
- GDAL 2.1+
- LibXML2
使用以下命令安装所需依赖包:
sudo apt-get update
sudo apt-get install -y build-essential libxml2-dev libgeos-dev libproj-dev gdal-bin libgdal-dev
2. 安装PostgreSQL
如果系统尚未安装PostgreSQL,可以使用以下命令安装:
sudo apt-get install -y postgresql postgresql-contrib postgresql-server-dev-all
启动并配置PostgreSQL服务:
sudo service postgresql start
sudo -u postgres createuser --superuser $USER
sudo -u postgres createdb $USER
3. 下载和解压PostGIS源码
从PostGIS官方网站或GitHub仓库下载PostGIS 2.4源码包:
wget https://download.osgeo.org/postgis/source/postgis-2.4.0.tar.gz
tar xvf postgis-2.4.0.tar.gz
cd postgis-2.4.0
4. 编译PostGIS
首先配置PostGIS:
./configure
然后编译PostGIS:
make
编译完成后,安装PostGIS:
sudo make install
5. 配置PostGIS
在PostgreSQL中创建一个新的数据库并启用PostGIS扩展:
sudo -u postgres createdb gisdb
sudo -u postgres psql -d gisdb -c "CREATE EXTENSION postgis;"
sudo -u postgres psql -d gisdb -c "CREATE EXTENSION postgis_topology;"
验证PostGIS安装:
sudo -u postgres psql -d gisdb -c "SELECT PostGIS_Version();"
6. 配置环境变量
为了确保系统可以找到PostGIS二进制文件和库,需要配置环境变量。在 ~/.bashrc
文件中添加以下内容:
export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
使环境变量生效:
source ~/.bashrc
7. 验证PostGIS功能
创建一个示例表并插入地理数据:
sudo -u postgres psql -d gisdb -c "
CREATE TABLE geotest (id serial PRIMARY KEY, geom geometry(Point,4326));
INSERT INTO geotest (geom) VALUES (ST_GeomFromText('POINT(-71.060316 48.432044)', 4326));
"
查询插入的数据:
sudo -u postgres psql -d gisdb -c "
SELECT id, ST_AsText(geom) FROM geotest;
"
思维导图
- PostGIS 2.4 服务器编译安装
- 安装前的准备工作
- 安装依赖包
- 安装PostgreSQL
- 安装命令
- 启动和配置
- 下载和解压PostGIS源码
- wget命令
- 解压命令
- 编译PostGIS
- ./configure
- make
- make install
- 配置PostGIS
- 创建数据库和启用扩展
- 验证安装
- 配置环境变量
- 编辑~/.bashrc
- 添加PATH和LD_LIBRARY_PATH
- 验证PostGIS功能
- 创建示例表和插入数据
- 查询数据
总结
通过上述步骤,你可以成功编译和安装PostGIS 2.4,并在PostgreSQL数据库中启用PostGIS扩展。确保在配置过程中仔细检查每一步,以避免出现配置错误。PostGIS的安装使得PostgreSQL能够处理复杂的地理空间数据,极大地扩展了数据库的功能。