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

PostgreSQL, часто называемый Postgres, — это мощная объектно-реляционная система управления базами данных с гибкой лицензией. Она подходит для больших проектов и имеет широкий набор продвинутых функций.
phpPgAdmin — это PHP‑приложение для веб-администрирования PostgreSQL. Оно ускоряет создание баз данных, ролей и таблиц через привычный веб‑интерфейс.
Этот материал показывает установку PostgreSQL и phpPgAdmin на Ubuntu 18.04 LTS (Bionic Beaver) на минимальном сервере. Приведены действия для администратора с root‑правами.
Что вам понадобится
- Ubuntu 18.04 LTS
- Доступ с root или привилегии sudo
- Базовые навыки работы с терминалом
Краткий обзор плана действий
- Установить PostgreSQL и phpPgAdmin
- Настроить роль postgres и пароль
- Сконфигурировать Apache2 для phpPgAdmin
- Настроить файл конфигурации phpPgAdmin
- Протестировать работу и проверить доступ
Шаг 1 — Установка PostgreSQL, phpPgAdmin и зависимостей
Обновите индекс пакетов:
sudo apt updateУстановите PostgreSQL и phpPgAdmin вместе с необходимыми зависимостями (Apache, PHP и т. п.):
sudo apt -y install postgresql postgresql-contrib phppgadminКоманда подтянет пакеты из репозитория Ubuntu и автоматически установит нужные зависимости.
Важно: в репозитории Ubuntu для 18.04 версии пакетов могут быть чуть старее, чем в upstream. Если нужна последняя версия PostgreSQL, рассмотрите официальный репозиторий PostgreSQL.
Шаг 2 — Настройка пользователя postgres
PostgreSQL использует модель ролей для аутентификации и авторизации. По умолчанию создаётся роль ‘postgres’. Выполните вход под этим системным пользователем:
su - postgresОткройте интерактивную консоль psql:
psqlВнутри psql смените пароль для роли ‘postgres’:
\password postgresВведите безопасный пароль и подтвердите его.
Завершите сессию psql:
\qВернитесь к root или своему обычному пользователю:
exit
Совет: храните пароль в защищённом хранилище, например, в менеджере паролей.
Шаг 3 — Конфигурация Apache для phpPgAdmin
phpPgAdmin поставляется с конфигурационным файлом для Apache. Отредактируйте его:
cd /etc/apache2/conf-available/
vim phppgadmin.confНайдите директивы доступа. По умолчанию доступ ограничен локальным хостом. Измените так, чтобы разрешить доступ с внешних адресов, если это требуется:
Require all grantedСохраните файл и включите конфигурацию, если она ещё не включена:
sudo a2enconf phppgadmin
sudo systemctl reload apache2Примечание: предоставление общего доступа по сети увеличивает зону риска. На продакшене ставьте защиту на уровне брандмауэра, VPN или ограничьте доступ по IP.
Шаг 4 — Конфигурация phpPgAdmin
Отредактируйте файл конфигурации phpPgAdmin:
cd /etc/phppgadmin/
vim config.inc.phpНайдите параметр extra_login_security и установите его в false, чтобы разрешить вход под пользователем ‘postgres’:
$conf['extra_login_security'] = false;Сохраните файл. Затем перезапустите сервисы:
systemctl restart postgresql
systemctl restart apache2Шаг 5 — Тестирование установки
По умолчанию PostgreSQL слушает порт 5432, Apache — порт 80. Проверьте сетевые порты:
netstat -plntu
Откройте в браузере:

Войдите под пользователем ‘postgres’ и ранее заданным паролем. После входа вы увидите панель управления phpPgAdmin:

Если авторизация не проходит, проверьте логи Apache и PostgreSQL.
Критерии приёмки
- Службы PostgreSQL и Apache активны и работают.
- Порт 5432 слушает процесс postgres.
- Доступ к phpPgAdmin по http://ваш_ip/phppgadmin/ возвращает страницу входа.
- Вход под ‘postgres’ успешен и открывается интерфейс управления.
Рекомендации по безопасности
- Отключите доступ к phpPgAdmin из публичного Интернета. Ограничьте доступ по IP или настройте VPN.
- Если нужен веб‑доступ, запустите phpPgAdmin за HTTPS и используйте ограничение по IP.
- Не используйте роль ‘postgres’ для приложений. Создавайте отдельные роли с минимальными привилегиями.
- Храните пароли в безопасном хранилище и регулярно меняйте ключи доступа.
Отладка и распространённые проблемы
- Проблема: «403 Forbidden» при доступе к /phppgadmin. Решение: проверьте phppgadmin.conf и директивы Require. Перегрузите Apache.
- Проблема: «Cannot connect» при попытке подключения в phpPgAdmin. Решение: убедитесь, что postgresql слушает нужный интерфейс (проверьте listen_addresses в postgresql.conf) и что pg_hba.conf разрешает соответствующую аутентификацию.
- Проблема: пароли не принимаются. Решение: попробуйте сменить пароль через psql под пользователем postgres.
Альтернативные подходы
- pgAdmin4 — современный браузерный/десктопный инструмент с более богатым UI. Рекомендуется для сложных админских задач.
- Adminer — лёгкая замена phpPgAdmin, единый PHP-файл.
- Управление через psql — предпочтительно для автоматизации и скриптов.
Чек‑лист ролей
Администратор:
- Установить пакеты и обновления
- Настроить брандмауэр и ограничения доступа
- Создать роли и политики резервного копирования
Разработчик:
- Создать тестовую базу и роли с ограничениями
- Настроить доступы для CI/CD
- Проверить подключения приложений
Оператор (DevOps):
- Настроить мониторинг процессов и диск I/O
- Настроить регулярные бэкапы и проверку их целостности
- Имплементировать обновления и миграции
Мини‑SOP для отката (rollback)
- Если после изменений сломался доступ, восстановите конфигурационные файлы из резервной копии.
- Перезапустите сервисы: systemctl restart postgresql && systemctl restart apache2
- При потере данных — остановите сервис и выполните восстановление из последней корректной резервной копии.
Модель принятия решений при выборе интерфейса
- Нужен простой быстрый веб‑интерфейс для базовых задач → phpPgAdmin или Adminer.
- Нужен профессиональный инструмент с расширенными фичами → pgAdmin4.
- Нужна автоматизация и встраивание в CI → psql + скрипты.
Краткое резюме
Установка PostgreSQL и phpPgAdmin на Ubuntu 18.04 достаточно прямолинейна: установить пакеты, задать пароль для роли postgres, открыть конфигурацию Apache для доступа к phpPgAdmin и отключить дополнительную проверку входа в конфиге phpPgAdmin. Обязательно примените меры безопасности перед открытием веб‑интерфейса в интернет.
Важное: для продакшена рассмотрите использование HTTPS, ограничение доступа по IP или VPN и выделенную роль с минимальными привилегиями для приложений.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента