Установка PostgreSQL и phpPgAdmin на Ubuntu 20.04 LTS
PostgreSQL — зрелая объектно-реляционная СУБД, а phpPgAdmin — удобная веб-оболочка для администрирования. В этой инструкции показано по шагам, как установить PostgreSQL, phpPgAdmin, настроить Apache и UFW, создать суперпользователя и проверить работу сервиса на Ubuntu 20.04.

PostgreSQL (или Postgres) — мощная объектно-реляционная система управления базами данных под лицензией BSD. Она подходит для крупных и критичных по нагрузке проектов и содержит множество продвинутых возможностей: транзакции, расширения, репликацию и т.д.
phpPgAdmin — PHP-веб-интерфейс для управления PostgreSQL. С его помощью удобно создавать базы, роли и таблицы через браузер.
Эта инструкция адаптирована для Ubuntu 20.04 LTS (Bionic Beaver) на минимальном сервере.
Предварительные требования
- Сервер с Ubuntu 20.04
- Привилегии root или доступ через sudo
План действий
- Установить PostgreSQL, phpPgAdmin и зависимости
- Создать нового пользователя PostgreSQL
- Настроить Apache для phpPgAdmin
- Настроить UFW-файервол
- Протестировать установку
Важно
- Выполняйте команды под sudo или как root.
- В боевой среде использовать безопасные пароли и дополнительные ограничения доступа.
Шаг 1 — установка PostgreSQL, phpPgAdmin и зависимостей
Сначала обновите список пакетов и установите обновления:
sudo apt update
sudo apt upgradeЗатем установите PostgreSQL, phpPgAdmin и Apache2 (phpPgAdmin присутствует в репозитории Ubuntu):
sudo apt -y install postgresql postgresql-contrib phppgadminПосле установки запустите службу PostgreSQL и добавьте её в автозагрузку:
systemctl start postgresql
systemctl enable postgresqlПроверьте состояние сервиса:
systemctl status postgresql
Если всё в порядке, PostgreSQL работает и слушает порт 5432.
Шаг 2 — создание нового пользователя PostgreSQL
В PostgreSQL используется понятие ролей для аутентификации и авторизации — похоже на Unix-права. По умолчанию создаётся роль postgres.
Войдите в psql от имени системного пользователя postgres:
sudo -i -u postgres psqlСоздайте новую роль с правами суперпользователя (в примере имя hakase и пароль hakasepasspgsql):
CREATE ROLE hakase WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'hakasepasspgsql';Просмотреть список ролей:
\duЗавершите сеанс psql:
\q
Важно
- В продакшне используйте более сложные пароли и минимально нужные права, не давайте суперправа, если их можно избежать.
Шаг 3 — настройка веб-сервера Apache для phpPgAdmin
При установке пакет phpPgAdmin добавляет конфигурацию Apache в /etc/apache2/conf-available. Откройте файл конфигурации:
cd /etc/apache2/conf-available/
vim phppgadmin.confПо умолчанию phpPgAdmin доступен по пути /phppgadmin. Для безопасности рекомендуется изменить этот путь на уникальный. Например:
Alias /pgsqladminlogin /usr/share/phppgadminВместо ограничений “Require local” разрешите доступ из ваших доверенных сетей или из всех, если это тестовый сервер. Для простоты разрешим доступ всем:
Require all grantedСохраните изменения и проверьте конфигурацию Apache:
apachectl configtest
systemctl restart apache2Если тест прошёл успешно и Apache перезапущен, phpPgAdmin должен быть доступен по новому пути.
Совет
- В продакшне вместо “Require all granted” указывайте конкретные IP или используйте аутентификацию на уровне веб-сервера.
Шаг 4 — настройка UFW
Добавим правила для ssh, http и https:
for svc in ssh http https
do
ufw allow $svc
doneВключите UFW:
ufw enableПодтвердите включение, введя y и нажав Enter.

Проверьте статус правил:
ufw status numbered
Важно
- Оставляйте доступ по SSH (порт 22) только для администраторов.
- Откройте внешний доступ к phpPgAdmin только если это действительно нужно и защищено.
Шаг 5 — тестирование
Проверьте слушающие порты:
ss -plntВы должны увидеть postgres на порту 5432 и Apache на 80.
В браузере откройте адрес сервера и путь phpPgAdmin, например:
http://10.5.5.32/pgsqladminlogin/
Вы увидите главную страницу phpPgAdmin, затем перейдите в вкладку Server и откройте страницу входа.

Войдите под созданной ролью (например hakase / hakasepasspgsql):

После успешного входа вы получите дашборд phpPgAdmin:

Если всё отображается корректно, установка завершена.
Критерии приёмки
- PostgreSQL запущен и слушает порт 5432
- Apache успешно перезапущен без ошибок
- UFW включает правила для ssh, http и https
- Доступ к phpPgAdmin по указанному пути возможен и вход под созданной ролью проходит
Быстрая методология действий (чеклист для админа)
- Обновить систему: apt update && apt upgrade
- Установить пакеты: apt install postgresql postgresql-contrib phppgadmin
- Запустить и включить PostgreSQL: systemctl start/enable postgresql
- Создать роль в psql: CREATE ROLE …
- Настроить phppgadmin.conf и перезапустить Apache
- Открыть необходимые порты в UFW и включить UFW
- Протестировать доступ через браузер и ss -plnt
Чеклисты по ролям
Администратор сервера
- Убедиться, что есть резервный доступ (консоль).
- Обновить систему и пакеты.
- Настроить бэкап PostgreSQL.
Разработчик приложения
- Проверить подключение из приложения к БД (строка подключения).
- Создать отдельную роль с минимальными правами для приложения.
Операционный инженер по безопасности
- Ограничить доступ по IP к phpPgAdmin.
- Включить HTTPS и настроить сильный TLS.
- Настроить аудит входа и журналирование SQL-команд.
Безопасность и hardening
- Не используйте phpPgAdmin в публичном доступе без HTTPS и ограничения по IP.
- Создавайте отдельные роли с минимальными привилегиями для приложений.
- Отключите роль postgres от прямого удалённого входа, используйте прокси или ssh-туннель для удалённого администрирования.
- Настройте регулярные бэкапы с проверкой восстановления.
- Используйте fail2ban или аналог для защиты SSH и веб-интерфейса.
Отладка и план восстановления
Проблема: Apache не перезапускается после изменений конфигурации
- Выполнить: apachectl configtest — посмотреть синтаксис.
- Проверить логи: journalctl -u apache2 или /var/log/apache2/error.log.
- Откатить последние изменения или восстановить резервную копию конфигурации.
Проблема: Невозможно войти в phpPgAdmin
- Проверить, подключается ли сервер PostgreSQL локально: sudo -i -u postgres psql
- Убедиться, что роль существует и имеет LOGIN: \du
- Проверить настройки pg_hba.conf на предмет методов аутентификации.
План отката
- Откатить конфигурацию Apache к рабочей версии.
- Отключить внешний доступ к phpPgAdmin через UFW.
- Восстановить конфигурации PostgreSQL из резервной копии, если требуется.
Тестовые сценарии и критерии приёмки
Тест 1: Установка пакетов
- Действие: apt install postgresql phppgadmin
- Ожидание: пакеты установлены без ошибок
Тест 2: Доступ к phpPgAdmin
- Действие: открыть URL /pgsqladminlogin/ в браузере
- Ожидание: отображается страница входа
Тест 3: Вход под новой ролью
- Действие: ввести имя и пароль роли
- Ожидание: успешный вход и доступ к списку баз
Когда этот подход не подходит
- Если инфраструктура требует централизованного управления пользователями (например LDAP/SSO), лучше интегрировать PostgreSQL и веб-админку с SSO.
- Для высоконагруженных боевых систем веб-интерфейс может быть запрещён по политике безопасности — используйте psql и инструменты автоматизации.
Короткий справочник (важные значения)
- Порт PostgreSQL: 5432
- Путь phpPgAdmin в примере: /pgsqladminlogin
- Службы: postgresql, apache2
Глоссарий
PostgreSQL — объектно-реляционная СУБД с расширяемой архитектурой. phpPgAdmin — веб-интерфейс на PHP для управления PostgreSQL. psql — клиент командной строки для PostgreSQL. UFW — простой интерфейс настройки iptables в Ubuntu.
Заключение
PostgreSQL в сочетании с phpPgAdmin позволяет быстро развернуть и управлять базами данных через браузер. Для тестовых и небольших проектов такой подход удобен, но в продакшне важно усиливать безопасность: ограничивать доступ, включать HTTPS, задавать минимальные права ролям и настраивать бэкапы. Следуя шагам этой инструкции, вы сможете быстро установить и протестировать рабочую связку PostgreSQL + phpPgAdmin на Ubuntu 20.04.
Кратко
- Установите пакеты, создайте роль, настройте Apache и UFW, протестируйте в браузере.
- Усильте безопасность перед открытием сервиса в публичной сети.
Примечание
Если вы планируете использовать phpPgAdmin в постоянной эксплуатации, рассмотрите альтернативы — более современные админ-панели с поддержкой SSO и аудита, или настройку защищённого доступа через VPN.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента