Гид по технологиям

Установка PostgreSQL и phpPgAdmin на Ubuntu 20.04 LTS

• 6 min read • Базы данных • Обновлено 28 Nov 2025
PostgreSQL и phpPgAdmin на Ubuntu 20.04
PostgreSQL и phpPgAdmin на Ubuntu 20.04

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

Иллюстрация: установка PostgreSQL и phpPgAdmin на сервере

PostgreSQL (или Postgres) — мощная объектно-реляционная система управления базами данных под лицензией BSD. Она подходит для крупных и критичных по нагрузке проектов и содержит множество продвинутых возможностей: транзакции, расширения, репликацию и т.д.

phpPgAdmin — PHP-веб-интерфейс для управления PostgreSQL. С его помощью удобно создавать базы, роли и таблицы через браузер.

Эта инструкция адаптирована для Ubuntu 20.04 LTS (Bionic Beaver) на минимальном сервере.

Предварительные требования

  • Сервер с Ubuntu 20.04
  • Привилегии root или доступ через sudo

План действий

  1. Установить PostgreSQL, phpPgAdmin и зависимости
  2. Создать нового пользователя PostgreSQL
  3. Настроить Apache для phpPgAdmin
  4. Настроить UFW-файервол
  5. Протестировать установку

Важно

  • Выполняйте команды под 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 запущена и активна

Если всё в порядке, 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

Скриншот: список ролей в PostgreSQL, роль hakase создана

Важно

  • В продакшне используйте более сложные пароли и минимально нужные права, не давайте суперправа, если их можно избежать.

Шаг 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

Проверьте статус правил:

ufw status numbered

Скриншот: список правил UFW с пронумерованными записями

Важно

  • Оставляйте доступ по SSH (порт 22) только для администраторов.
  • Откройте внешний доступ к phpPgAdmin только если это действительно нужно и защищено.

Шаг 5 — тестирование

Проверьте слушающие порты:

ss -plnt

Вы должны увидеть postgres на порту 5432 и Apache на 80.

В браузере откройте адрес сервера и путь phpPgAdmin, например:

http://10.5.5.32/pgsqladminlogin/

Вы увидите главную страницу phpPgAdmin, затем перейдите в вкладку Server и откройте страницу входа.

Скриншот: главная страница phpPgAdmin

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

Скриншот: страница входа phpPgAdmin

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

Скриншот: дашборд 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 на предмет методов аутентификации.

План отката

  1. Откатить конфигурацию Apache к рабочей версии.
  2. Отключить внешний доступ к phpPgAdmin через UFW.
  3. Восстановить конфигурации 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.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро