宝塔安装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();
相关推荐
AI开源软件15 小时前
SpringBoot信创项目怎么验收?从数据库迁移到交付证据
postgresql·springboot·达梦·opengauss·信创·企业管理系统
l1t18 小时前
DeepSeek总结的ALTER FUNCTION SET work_mem:无需全局更改即可修复 PostgreSQL 磁盘溢出
sql·缓存·postgresql
l1t21 小时前
DeepSeek总结的PostgreSQL 中的 SQL 与 PL/pgSQL:计划缓存
sql·缓存·postgresql
boy快快长大21 小时前
MySQL 转 PostgreSQL 使用指南
数据库·mysql·postgresql
ss2731 天前
PostgreSQL咨询锁的使用
数据库·postgresql
ss2732 天前
PostgreSQL表级锁、行级锁、轻量级锁
数据库·postgresql·区块链
gerrywhu2 天前
PostGIS 中的窗口函数与聚合函数:原理、区别及实战应用
postgis·窗口函数·聚合函数
geovindu2 天前
Pivoting and Unpivoting Data in SQL using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构
DeveloperHonor2 天前
pg_walex让回滚如此丝滑:PostgreSQL WAL 日志解析与数据回滚实战
postgresql·数据恢复·wal日志