Ниже готовая инструкция для aaPanel (PostgreSQL в /www/server/pgsql), как поставить pg_trgm, uuid‑ossp и PostGIS. Все команды выполняются на сервере под root.
0) Убедиться, что это именно aaPanel‑PostgreSQL
/www/server/pgsql/bin/pg_config --version
/www/server/pgsql/bin/pg_config --sharedir
/www/server/pgsql/bin/pg_config --pkglibdir
Если пути /www/server/pgsql/... — значит всё правильно.
A) Установка pg_trgm и uuid‑ossp (через исходники PostgreSQL)
1) Зависимости для сборки
sudo apt update
sudo apt install -y build-essential flex bison libreadline-dev zlib1g-dev \
libssl-dev libxml2-dev libxslt1-dev libicu-dev uuid-dev wget
2) Скачать исходники PostgreSQL (версия = из pg_config)
sudo mkdir -p /usr/local/src/pgsrc
cd /usr/local/src/pgsrc
sudo wget https://ftp.postgresql.org/pub/source/v18.0/postgresql-18.0.tar.bz2
sudo tar -xjf postgresql-18.0.tar.bz2
3) Установить pg_trgm
export PATH=/www/server/pgsql/bin:$PATH
cd /usr/local/src/pgsrc/postgresql-18.0/contrib/pg_trgm
make USE_PGXS=1 PG_CONFIG=/www/server/pgsql/bin/pg_config
sudo make USE_PGXS=1 PG_CONFIG=/www/server/pgsql/bin/pg_config install
4) Установить uuid‑ossp
cd /usr/local/src/pgsrc/postgresql-18.0/contrib/uuid-ossp
make USE_PGXS=1 PG_CONFIG=/www/server/pgsql/bin/pg_config
sudo make USE_PGXS=1 PG_CONFIG=/www/server/pgsql/bin/pg_config install
B) Установка PostGIS (если его нет)
1) Зависимости
sudo apt update
sudo apt install -y build-essential libjson-c-dev libgeos-dev libproj-dev \
libgdal-dev libxml2-dev libprotobuf-c-dev protobuf-c-compiler \
pkg-config wget
2) Скачать PostGIS (совместимый с PG18 — 3.6.x)
cd /usr/local/src
sudo wget https://download.osgeo.org/postgis/source/postgis-3.6.2.tar.gz
sudo tar -xzf postgis-3.6.2.tar.gz
cd postgis-3.6.2
3) Сборка и установка в aaPanel‑Postgres
./configure --with-pgconfig=/www/server/pgsql/bin/pg_config
make
sudo make install
C) Включить расширения в БД (через Adminer)
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS postgis;
D) Проверка в Adminer
SELECT extname, extversion
FROM pg_extension
WHERE extname IN ('pg_trgm','uuid-ossp','postgis');
SELECT PostGIS_Version();
Если вдруг будет ошибка “could not load library”
Перезапусти PostgreSQL в aaPanel (кнопка Restart) и повтори CREATE EXTENSION.