Перейти к основному содержимому

phpPgAdmin — требования, установка и подключение

Разработчику

Требования

Веб-сервер и PHP

  • Веб-сервер с поддержкой PHP (Apache, nginx + PHP-FPM).
  • Расширение PHP pgsql (обязательно) — без него приложение не запустится.
  • mbstring — обязателен с phpPgAdmin 7.12+ (по HISTORY).
  • Сессии PHP (session), JSON, XML — по версии сборки.

Для ветки 7.13.0 (2020): поддержка PHP 7.2+ (7.1 снята); планировался отказ от PHP 7.2 в следующих релизах. На новых системах разумно брать PHP 8.x и проверять совместимость в Issues репозитория.

PostgreSQL

Версия phpPgAdmin (ориентир)PostgreSQL
5.6 (2018)9.3 – 11, разработка под 12
7.12 – 7.13 (2019–2020)12 – 14

Версии PostgreSQL ниже 9.3 в современных ветках phpPgAdmin не тестировались (EOL).

Браузер

Современные браузеры с JavaScript; в ветке 5.6+ используется тема на Bootstrap 3.


Установка

Пакет Linux (Debian/Ubuntu)

sudo apt install phppgadmin php-pgsql

Конфигурация часто в /etc/phppgadmin/config.inc.php, Apache подключает сниппет из conf-available.

Из исходников (GitHub)

  1. Клонировать github.com/phppgadmin/phppgadmin.
  2. Разместить каталог в document root или за алиасом /phppgadmin.
  3. Скопировать conf/config.inc.php-dist в conf/config.inc.php (точный путь зависит от версии — сверяйте README репозитория).
  4. Ограничить доступ (Require local в Apache или аналог в nginx).

nginx

Типичная схема — root на каталог phpPgAdmin + fastcgi_pass к PHP-FPM; каталог должен попадать в open_basedir, если ограничение включено (см. Arch Wiki).


Файл config.inc.php

Основной массив — $conf['servers'][$i] (индекс с 0 в phpPgAdmin, в отличие от phpMyAdmin, где серверы с 1).

Пример одного локального сервера:

<?php
$conf['servers'][0]['desc'] = 'Локальный PostgreSQL';
$conf['servers'][0]['host'] = '127.0.0.1';
$conf['servers'][0]['port'] = 5432;
$conf['servers'][0]['defaultdb'] = 'postgres';
$conf['servers'][0]['username'] = ''; // пусто — ввод на форме входа
$conf['servers'][0]['password'] = '';

$conf['servers'][0]['pg_dump_path'] = 'C:/OpenServer/modules/PostgreSQL/bin/pg_dump.exe';
$conf['servers'][0]['pg_dumpall_path'] = 'C:/OpenServer/modules/PostgreSQL/bin/pg_dumpall.exe';
ПараметрНазначение
hostIP или имя; пустая строка — сокет ОС (зависит от ОС)
portПо умолчанию 5432
defaultdbБаза для первого подключения (postgres или template1)
pg_dump_path / pg_dumpall_pathПути к утилитам дампа
descПодпись в списке серверов

Несколько серверов — элементы [0], [1], …; в 5.1+ поддерживаются вложенные группы серверов.

Дополнительные флаги безопасности (типичны для хостинга):

  • скрытие отчётов и админ-функций для не-суперпользователей;
  • фильтр «только свои» базы;
  • минимальная длина пароля при смене пароля роли.

Подключение PostgreSQL к phpPgAdmin

Локально (веб и БД на одной машине)

  1. В postgresql.conf: listen_addresses = 'localhost' (или * при необходимости).
  2. В pg_hba.conf — строка для локального доступа:
# TYPE DATABASE USER ADDRESS METHOD
host all all 127.0.0.1/32 scram-sha-256
local all all peer
  1. Перезапуск PostgreSQL.
  2. Проверка: psql -h 127.0.0.1 -U postgres -d postgres.

Удалённый PostgreSQL

На сервере БД:

  • listen_addresses = '*' или конкретные IP;
  • в pg_hba.conf — разрешение для IP веб-сервера, где крутится PHP.

На веб-сервере в config укажите IP хоста PostgreSQL, не localhost, если PHP выполняется на другой машине.

Безопасность
Не открывайте host all all 0.0.0.0/0 на проде без firewall. phpPgAdmin усиливает риск: это полный SQL под учёткой пользователя.


Аутентификация

phpPgAdmin передаёт введённые роль/пароль в PostgreSQL. Метод проверки задаёт pg_hba (scram-sha-256, md5, trust на локали — только для разработки).

Отдельного «пользователя phpPgAdmin» нет. Суперпользователь postgres видит все базы; ограниченная роль — только разрешённые объекты.


Проверка установки

  1. php -m содержит pgsql.
  2. Страница входа phpPgAdmin открывается без фатальной ошибки.
  3. После входа выполните SELECT version(); на вкладке SQL.
  4. Экспорт таблицы не падает с «pg_dump not found» — пути в config верны.

Далее — SQL, DDL и DML.

Углублённая настройка GUC и autovacuum — 8.11/3. Базовый справочник — 3.08/2.


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").