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)
- Клонировать github.com/phppgadmin/phppgadmin.
- Разместить каталог в document root или за алиасом
/phppgadmin. - Скопировать
conf/config.inc.php-distвconf/config.inc.php(точный путь зависит от версии — сверяйте README репозитория). - Ограничить доступ (
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';
| Параметр | Назначение |
|---|---|
host | IP или имя; пустая строка — сокет ОС (зависит от ОС) |
port | По умолчанию 5432 |
defaultdb | База для первого подключения (postgres или template1) |
pg_dump_path / pg_dumpall_path | Пути к утилитам дампа |
desc | Подпись в списке серверов |
Несколько серверов — элементы [0], [1], …; в 5.1+ поддерживаются вложенные группы серверов.
Дополнительные флаги безопасности (типичны для хостинга):
- скрытие отчётов и админ-функций для не-суперпользователей;
- фильтр «только свои» базы;
- минимальная длина пароля при смене пароля роли.
Подключение PostgreSQL к phpPgAdmin
Локально (веб и БД на одной машине)
- В
postgresql.conf:listen_addresses = 'localhost'(или*при необходимости). - В
pg_hba.conf— строка для локального доступа:
# TYPE DATABASE USER ADDRESS METHOD
host all all 127.0.0.1/32 scram-sha-256
local all all peer
- Перезапуск PostgreSQL.
- Проверка:
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 видит все базы; ограниченная роль — только разрешённые объекты.
Проверка установки
php -mсодержит pgsql.- Страница входа phpPgAdmin открывается без фатальной ошибки.
- После входа выполните
SELECT version();на вкладке SQL. - Экспорт таблицы не падает с «pg_dump not found» — пути в config верны.
Далее — SQL, DDL и DML.
Углублённая настройка GUC и autovacuum — 8.11/3. Базовый справочник — 3.08/2.
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Веб-админка PostgreSQL на PHP: архитектура, pgsql, отличия от phpMyAdmin, Debian, Docker и локальные стеки. Схемы PostgreSQL, таблицы, sequences, роли, вкладка SQL и отличия DDL/DML от MySQL в phpPgAdmin. pg_dump и pg_dumpall, лимиты PHP, extra_float_digits, сравнение с pgAdmin и типичные ошибки pgsql.phpPgAdmin — что это и где встретить
phpPgAdmin — SQL, DDL и DML
phpPgAdmin — дампы, безопасность и FAQ