Установка PostgreSQL и phpPgAdmin на Ubuntu 16.04
Важно: пример рассчитан на Ubuntu Server 16.04 и требует прав root или sudo.
Коротко о технологиях
- PostgreSQL — мощная объектно-реляционная СУБД с расширенными возможностями. Кратко: база данных для серьёзных проектов.
- phpPgAdmin — веб‑приложение на PHP для управления PostgreSQL через браузер.
Определение: роль (role) в PostgreSQL — единица аутентификации и авторизации, аналог учётной записи/группы в Unix.
Предварительные условия
- Сервер с Ubuntu Server 16.04.
- Доступ root или пользователь с sudo.
Что мы сделаем
- Установим PostgreSQL, phpPgAdmin и Apache2.
- Настроим роль postgres и пароль.
- Настроим Apache2 для доступа к phpPgAdmin.
- Настроим phpPgAdmin для входа под postgres.
- Перезапустим службы и проверим работу через браузер.
Установка PostgreSQL, phpPgAdmin и Apache2
Пакеты доступны в репозитории Ubuntu. Выполните одну команду:
sudo apt-get -y install postgresql postgresql-contrib phppgadminПримечание: этот набор установит необходимые зависимости (Apache2, PHP и т.д.). Если вы используете отрезанный минимальный образ, убедитесь, что установлены php и модули для Apache.
Настройка пользователя PostgreSQL
PostgreSQL использует роли. По умолчанию создаётся роль postgres. Для управления нужно войти под системным пользователем postgres и вызвать psql:
sudo su
su - postgres
psqlУстановите пароль для роли postgres внутри psql:
\password postgres
ENTER YOUR PASSWORDЗатем выйдите из psql командой \q и из системного пользователя postgres командой:
exit
Совет: используйте надёжный пароль и сохраняйте его в хранилище паролей для администратора.
Настройка Apache2 для phpPgAdmin
Отредактируйте конфигурационный файл phpPgAdmin, чтобы обеспечить доступ извне (по умолчанию доступ может быть ограничен только локально).
cd /etc/apache2/conf-available/
nano phppgadmin.confНайдите директивы вида Require local или блоки, ограничивающие доступ по IP. Один из простых вариантов — закомментировать строку Require local и добавить правило, позволяющее доступ извне (в тестовой среде):
- Закомментируйте
Require local(добавьте#впереди). - Добавьте
Allow from allили используйте современные директивыRequire all grantedдля Apache 2.4.
После изменения проверьте синтаксис конфигурации и перезапустите Apache:
apachectl configtest
systemctl restart apache2Важно: не открывайте phpPgAdmin в публичный интернет без дополнительной защиты (см. раздел «Безопасность»).
Настройка phpPgAdmin
Отредактируйте файл конфигурации phpPgAdmin, чтобы разрешить вход под ролью postgres:
cd /etc/phppgadmin/
nano config.inc.phpНайдите строку:
$conf['extra_login_security'] = true;Измените значение на false:
$conf['extra_login_security'] = false;Это позволит входить под системной ролью postgres через веб‑интерфейс. После изменения сохраните файл и перезапустите службы (см. следующий раздел).
Перезапуск PostgreSQL и Apache2
systemctl restart postgresql
systemctl restart apache2Проверьте статус служб:
systemctl status postgresql
systemctl status apache2Тестирование доступа
Откройте в браузере:

В форме введите пользователя postgres и установленный пароль:

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

Критерии приёмки
- Установлены пакеты postgresql и phppgadmin без ошибок.
- Роль postgres имеет пароль и вход в psql возможен.
- Доступ к phpPgAdmin по адресу http://yourip/phppgadmin/ доступен из браузера (с разрешённых IP).
- Вход в phpPgAdmin под пользователем postgres успешен.
Проверка и отладка (частые проблемы)
- 403 Forbidden при доступе к /phppgadmin — проверьте настройки
phppgadmin.confи директивы доступа Apache. - Не удаётся залогиниться под postgres — убедитесь, что
$conf['extra_login_security'] = falseи пароль задан в psql. - Ошибки PHP — проверьте логи Apache
/var/log/apache2/error.logи установите необходимые модули PHP.
Рекомендации по безопасности
- Не оставляйте phpPgAdmin общедоступным в интернет. Ограничьте доступ по IP или настройте HTTP‑аутентификацию.
- По возможности не используйте роль postgres для повседневного администрирования; создавайте отдельные роли с ограниченными правами.
- Используйте SSL/TLS для защиты трафика между браузером и сервером (настроить HTTPS в Apache).
- Разрешайте доступ к панели только из доверенной сети или через VPN.
Минимальные шаги для защиты (рекомендация):
- Настройте
Require ip <ваш_адрес>в конфигурации Apache. - Включите HTTPS (Let’s Encrypt или коммерческий сертификат).
- Используйте сложные пароли и храните их в менеджере паролей.
Альтернативные подходы
- Вместо phpPgAdmin можно использовать pgAdmin (более современный инструмент) или управлять базой через psql и скрипты.
- Для автоматизированного развертывания используйте Ansible/RPM/DEB‑пакеты и шаблоны конфигурации.
Роль‑ориентованные задачи (краткий чеклист)
Администратор системы:
- Установить пакеты и проверить статусы служб.
- Настроить бэкапы PostgreSQL.
Разработчик БД:
- Создать отдельные роли и базы данных.
- Проверить права доступа к схемам и таблицам.
Оператор безопасности:
- Настроить HTTPS и ограничить доступ по IP.
- Провести аудит логов и доступов.
Резюме
PostgreSQL и phpPgAdmin можно быстро развернуть на Ubuntu 16.04 из стандартных репозиториев. Основные шаги — установка пакетов, установка пароля роли postgres, корректировка настроек Apache и phpPgAdmin, перезапуск служб и проверка доступа в браузере. Обязательно применяйте меры безопасности перед выставлением панели в продуктивную сеть.
Полезные ссылки
- Ubuntu — https://ubuntu.com
- PostgreSQL — https://www.postgresql.org
Похожие материалы
Как устроить идеальную вечеринку для просмотра ТВ
Как распаковать несколько RAR‑файлов сразу
Приватный просмотр в Linux: как и зачем
Windows 11 не видит iPod — способы исправить
PS5: как настроить игровые пресеты