Установка PostgreSQL и phpPgAdmin на Ubuntu 15.04
О чём эта инструкция
PostgreSQL (или Postgres) — мощная объектно-реляционная СУБД с гибкой BSD-подобной лицензией. phpPgAdmin — веб-интерфейс на PHP для управления базами PostgreSQL. Это руководство показывает установку и базовую настройку PostgreSQL и phpPgAdmin на Ubuntu 15.04.
Кому полезно: системным администраторам, разработчикам и тестировщикам, которым нужен быстрый веб-интерфейс для управления БД.
Предварительные требования
- Сервер с Ubuntu Server 15.04.
- Доступ root или sudo.
Что мы сделаем:
- Установим PostgreSQL, phpPgAdmin и Apache2.
- Настроим пользователя PostgreSQL.
- Настроим Apache2 для phpPgAdmin.
- Настроим phpPgAdmin.
- Перезапустим службы и проверим доступ.
Шаг 1 — Установка PostgreSQL, phpPgAdmin и Apache2
Пакеты доступны в репозиториях Ubuntu. Выполните команду:
sudo apt-get install postgresql postgresql-contrib phppgadminЭта команда установит PostgreSQL и необходимые компоненты (Apache, PHP и т.д.).
Шаг 2 — Настройка пользователя PostgreSQL
PostgreSQL использует «роли» для аутентификации и авторизации, похожие на UNIX-права. По умолчанию создаётся роль postgres. Для управления СУБД переключитесь на системного пользователя postgres:
sudo su
su - postgresОткройте интерактивный клиент psql:
psqlПоменяйте пароль роли postgres:
\password postgres
<введите новый пароль>
Важно: для веб-доступа к phpPgAdmin лучше создавать отдельного администратора с ограниченными правами, а не использовать напрямую системного пользователя postgres.
Шаг 3 — Настройка Apache2
Отредактируйте конфигурацию phpPgAdmin:
cd /etc/apache2/conf-available/
nano phppgadmin.confВ старых конфигурациях может быть строка Require local. Для доступа извне закомментируйте её и добавьте разрешение доступа, например:
# Require local
Require all grantedИли используйте директивы на базе IP, если нужно ограничить доступ только с конкретных хостов.

Шаг 4 — Настройка phpPgAdmin
Отредактируйте файл конфигурации phpPgAdmin:
cd /etc/phppgadmin/
nano config.inc.phpНайдите строку:
$conf['extra_login_security'] = true;и измените её на:
$conf['extra_login_security'] = false;Это позволит входить в phpPgAdmin под ролью postgres. Однако это снижает безопасность — смотрите раздел про упрочнение ниже.

Шаг 5 — Перезапуск PostgreSQL и Apache2
systemctl restart postgresql
systemctl restart apache2Шаг 6 — Тестирование
Откройте в браузере:
http://<ваш_ip>/phppgadmin/

Попробуйте войти под пользователем postgres и введённым ранее паролем.

После входа вы увидите интерфейс управления базами:

Критерии приёмки
- Веб-страница phpPgAdmin доступна по адресу http://<ваш_ip>/phppgadmin/.
- Удалось войти под ролью postgres или созданным администратором.
- Видны списки баз данных и объекты (схемы, таблицы).
- Перезапуск сервисов не выдал ошибок.
Упрочнение и рекомендации по безопасности
Важно: phpPgAdmin по умолчанию предоставляет мощный интерфейс. Несколько простых правил:
- Не позволяйте доступ к phpPgAdmin напрямую в интернет. Ограничьте доступ по IP или настройте VPN.
- Не используйте системного пользователя postgres для повседневного администрирования из веб-интерфейса. Создайте отдельную роль с нужными привилегиями.
- Включите SSL/TLS в Apache и требуйте HTTPS.
- Отключите $conf[‘extra_login_security’] только если понимаете риски; лучше создать отдельную роль.
- Регулярно обновляйте систему и пакеты.
Альтернативные подходы
- pgAdmin — современный и активно развиваемый веб/настольный интерфейс для PostgreSQL.
- Adminer — лёгкий PHP-скрипт с поддержкой PostgreSQL и других СУБД.
- Использовать psql и автоматизацию (ansible/terraform) для управления на продакшн-серверах.
Каждый инструмент имеет свои сильные стороны: phpPgAdmin прост и лёгок, pgAdmin предоставляет больше возможностей для DBA, а Adminer удобен для оперативных задач.
Совместимость и миграция
Ubuntu 15.04 устарела и не получает обновлений безопасности. Для рабочего или продакшн-сервера рекомендуется использовать LTS-версии Ubuntu (например, 20.04 или 22.04). Пакеты PostgreSQL и phpPgAdmin в новых релизах устанавливаются аналогично, но имена пакетов и пути конфигурации могут отличаться. Перед миграцией:
- Проверьте версии PostgreSQL на исходном и целевом хостах.
- Сделайте дамп через pg_dumpall или физическую репликацию.
- Тестируйте восстановление на стенде.
Быстрая методология развёртывания (cheat sheet)
- apt-get update && apt-get install postgresql postgresql-contrib phppgadmin
- sudo su - postgres && psql && \password postgres
- Изменить /etc/apache2/conf-available/phppgadmin.conf и /etc/phppgadmin/config.inc.php
- systemctl restart postgresql && systemctl restart apache2
- Проверить доступ и логи: journalctl -u postgresql, journalctl -u apache2
Ролевой чек-лист (System Admin / DBA / Developer)
- System Admin:
- Установил пакеты.
- Настроил firewall и ограничения доступа.
- Включил HTTPS.
- DBA:
- Создал отдельные роли и бэкапы.
- Настроил политики резервного копирования.
- Проверил права в СУБД.
- Developer:
- Получил тестовый аккаунт с минимальными правами.
- Проверил подключение через приложение.
Тестовые случаи и приёмка
- Попытка входа с корректным/некорректным паролем. Ожидаемо: успешный логин / отказ.
- Просмотр списка баз данных. Ожидаемо: видимость только тех баз, на которые есть права.
- Создание таблицы и вставка строки через интерфейс. Ожидаемо: изменения видны в psql.
Краткий словарь
- Роль: учётная запись и набор привилегий в PostgreSQL.
- psql: командная строка PostgreSQL.
- phpPgAdmin: веб-интерфейс управления PostgreSQL.
Заключение
PostgreSQL — надёжная и гибкая СУБД. phpPgAdmin упрощает базовые операции через браузер, но требует осторожной настройки доступа и прав. Для продакшна рассматривайте современные альтернативы и используйте LTS‑версии ОС.
Ссылки
- Ubuntu
- PostgreSQL
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента