宝塔安装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();
相关推荐
Mr.朱鹏9 小时前
【Python 进阶 | 第四篇】Psycopg3 + Flask 实现 PostgreSQL CRUD 全流程:从连接池到RESTful接口
python·postgresql·flask·virtualenv·fastapi·pip·tornado
瀚高PG实验室2 天前
pgroonga全文检索插件的BUG
数据库·postgresql·bug·瀚高数据库
hudson20222 天前
Postgres 实现自增的三种方式
postgresql
dblens 数据库管理和开发工具2 天前
DBLens for PostgreSQL 正式发布|把 PostgreSQL 开发与管理带进 AI + Agent 时代
数据库·人工智能·postgresql
l1t3 天前
DeepSeek总结的面向 PostgreSQL 分析和 HTAP 工作负载的两种高性能表访问方法
数据库·postgresql
老年DBA3 天前
PostgreSQL 高负载 Load Average 暴涨 | BufferMapping LWLock 锁竞争 完整排查优化实战
数据库·postgresql
脑子进水养啥鱼?3 天前
PostgreSql CAST
数据库·postgresql
Mrssory3 天前
Postgresql数据库快速入门
数据库·postgresql
腾科IT教育3 天前
PostgreSQL 认证:PGCE 认证考什么?难度大吗?
数据库·postgresql·pgce·pgce认证·postgresql认证