宝塔安装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();
相关推荐
敏捷利齐3 小时前
openeuler系统pgsql不宕机迁移
postgresql
古城小栈6 小时前
PostgreSQL 【vs】 MySQL
数据库·mysql·postgresql
Misnice6 小时前
MySQL 和 PostgreSQL 的区别
数据库·mysql·postgresql
q***016518 小时前
PostgreSQL 17 发布了!非常稳定的版本
数据库·postgresql
IvorySQL1 天前
Postgres 18:Skip Scan - 摆脱最左索引限制
数据库·postgresql·开源
g***72701 天前
从MySQL迁移到PostgreSQL的完整指南
数据库·mysql·postgresql
o***11141 天前
PostgreSQL的备份方式
数据库·postgresql
低头不见1 天前
CTE聚合查询,性能优化不止10几倍
java·sql·postgresql
菜萝卜子1 天前
k8s 启动 postgresql 数据库
数据库·postgresql·kubernetes