宝塔安装postgis3.6插件的详细步骤

环境:centOS stream 9\ postgresql 18.0;

通过宝塔自带的postgreSQL管理器安装了postgresql version 18.0;

第一步:找到 pg_config

bash 复制代码
find /www/server/pgsql -name pg_config

预期结果类似:说明安装的路径是正确的;必须是以下路径:

bash 复制代码
/www/server/pgsql/bin/pg_config
bash 复制代码
/www/server/pgsql/bin/psql -U postgres -c "SELECT version();"

只要能连上,版本正常(18.x),就可以继续。

以下要安装postgis的依赖,在centOS Stream 9上;

bash 复制代码
sudo dnf install -y \
    gcc gcc-c++ make \
    libxml2 libxml2-devel \
    json-c json-c-devel \
    proj proj-devel \
    geos geos-devel \
    gdal gdal-devel \
    protobuf-c protobuf-c-devel \
    readline-devel \
    zlib-devel \
    pcre2-devel \
    flex bison \
    pkgconfig \
    perl \
    libxml2-tools \
    gettext

说明一下这些东西干嘛的:

  • gcc / g++ / make / flex / bison / pkgconfig:基本编译工具链

  • libxml2 / json-c:PostGIS 内部用 XML / JSON

  • proj / geos / gdal:GIS 三件套(坐标转换 / 几何引擎 / 栅格)

  • protobuf-c / protobuf-c-devel:支持 MVT / Geobuf(你之前没装它就报错了)

  • readline / zlib / pcre2:PostgreSQL / 扩展常见依赖

  • libxml2-tools / gettext:文档、多语言相关(非必须,但装上没坏处)

这样装完之后,基本不会再在 ./configure 上被依赖绊住。

切到适合放源码的目录:

bash 复制代码
cd /usr/local/src
wget https://download.osgeo.org/postgis/source/postgis-3.6.0.tar.gz
tar zxvf postgis-3.6.0.tar.gz
cd postgis-3.6.0

获取postgis,并且解压postgis压缩包,然后重新进入到postgis-3.6.0文件夹下;以上步骤,每一步都不可以少;

配置 PostGIS,明确告诉它用"宝塔的 pg_config"

bash 复制代码
./configure --with-pgconfig=/www/server/pgsql/bin/pg_config

配置结束后,屏幕底部会出现类似这样的 summary(你刚才已经见过):

  • PostgreSQL config: /www/server/pgsql/bin/pg_config

  • PostgreSQL version: PostgreSQL 18.0

  • GEOS version: 3.13.x

  • PROJ version: 9.x

  • GDAL version: 3.x

  • JSON-C support: yes

  • protobuf support: yes

只要没有 error: ...,有几个 WARNING(比如 docbook、codespell、CUnit)都可以无视------那都是文档/测试相关,不影响功能。

下面开始安装postgis:

bash 复制代码
make
sudo make install

安装成功后,扩展文件会被复制到:

bash 复制代码
/www/server/pgsql/share/extension/

到这里,安装结束;

通过进入postgres数据库,创建postgis扩展:

bash 复制代码
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_raster;
CREATE EXTENSION postgis_topology;

验证 PostGIS 是否正常:

bash 复制代码
SELECT postgis_full_version();

下面是完整的代码:

bash 复制代码
# 1. 安装依赖
sudo dnf install -y \
    gcc gcc-c++ make \
    libxml2 libxml2-devel \
    json-c json-c-devel \
    proj proj-devel \
    geos geos-devel \
    gdal gdal-devel \
    protobuf-c protobuf-c-devel \
    readline-devel \
    zlib-devel \
    pcre2-devel \
    flex bison \
    pkgconfig \
    perl \
    libxml2-tools \
    gettext

# 2. 下载源码
cd /usr/local/src
wget https://download.osgeo.org/postgis/source/postgis-3.6.0.tar.gz
tar zxvf postgis-3.6.0.tar.gz
cd postgis-3.6.0

# 3. configure (注意这里换成实际 pg_config 路径)
./configure --with-pgconfig=/www/server/pgsql/bin/pg_config

# 4. 编译 + 安装
make -j$(nproc)
sudo make install

然后在postgreSQL里:

bash 复制代码
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_raster;
CREATE EXTENSION postgis_topology;
SELECT postgis_full_version();
相关推荐
睡不醒男孩0308234 小时前
第二篇:深入探索开源数据库高可用:构建基于CLup的PostgreSQL生产级高可用与读写分离架构
数据库·postgresql·开源·clup
数据库小学妹13 小时前
PostgreSQL迁移到国产数据库怎么做?评估、改造、上线全流程实操指南
数据库·经验分享·postgresql·dba
程序媛_20 小时前
【Python】连接PostgreSQL获取手机验证码
开发语言·python·postgresql
IvorySQL1 天前
PostgreSQL 技术日报 (6月7日)|峰会线上通道开放
数据库·postgresql
李燚1 天前
erlang_migrate 架构拆解:behaviour 驱动的多数据库迁移引擎
数据库·postgresql·架构·erlang·migrate·behaviour·erlang_migrate
Jinkxs1 天前
PostgreSQL - 全文检索的开启与基础使用
数据库·postgresql·全文检索
l1t2 天前
DeepSeek总结的使用 Docker 对 PostgreSQL 进行 Beta 测试
docker·postgresql·容器
IvorySQL2 天前
PGv19预发布对现有生产系统的隐患思考,MySQL别看!
数据库·postgresql·开源
倒流时光三十年2 天前
PostgreSQL JOIN 大白话指南
postgresql·join
花酒锄作田3 天前
DeepAgents - 使用Postgres作为Checkpoint
postgresql·deepagents