宝塔安装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();
相关推荐
七牛云行业应用2 小时前
Moltbook一夜崩盘:150万密钥泄露背后的架构“死穴”与重构实战
网络安全·postgresql·架构·高并发·七牛云
AskHarries3 小时前
Debian 12 环境下 PostgreSQL 15 部署与安全配置
postgresql
资深web全栈开发17 小时前
PostgreSQL枚举还是字符串:ENUM vs VARCHAR + CHECK 的权衡
数据库·postgresql
Aaron_Wjf20 小时前
PG Vector测试
数据库·postgresql
Aaron_Wjf20 小时前
PG逻辑复制槽应用
数据库·postgresql
智商偏低21 小时前
Postgresql导入几何数据(shp,geojson)的几种方式
数据库·postgresql
我是Superman丶1 天前
在 PostgreSQL 中使用 JSONB 类型并结合 MyBatis-Plus 实现自动注入,主要有以下几种方案
数据库·postgresql·mybatis
松涛和鸣1 天前
70、IMX6ULL LED驱动实战
linux·数据库·驱动开发·postgresql·sqlserver
数据知道1 天前
PostgreSQL 核心原理:什么场景下开启 JIT 能提升性能?(JIT 编译)
数据库·postgresql
盒马coding1 天前
postgreSQL中调整Checkpoint的重要性
数据库·mysql·postgresql