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

Установка PostgreSQL и phpPgAdmin на OpenSUSE Leap

5 min read Базы данных Обновлено 27 Nov 2025
PostgreSQL и phpPgAdmin на OpenSUSE Leap
PostgreSQL и phpPgAdmin на OpenSUSE Leap

Введение

PostgreSQL (обычно называют Postgres) — это продвинутая объектно-реляционная система управления базами данных. Postgres с открытым исходным кодом развивается десятилетиями и подходит для корпоративных приложений с серьёзными нагрузками. OpenSUSE Leap совместим с PostgreSQL и позволяет быстро развернуть сервер БД на многих операционных системах.

Кратко: в этой инструкции показано, как установить PostgreSQL 9.4 на OpenSUSE Leap, создать пользователей и базу, настроить доступ и подключить phpPgAdmin для управления через веб-интерфейс.

Основные понятия в одну строчку

  • Роль — концепция PostgreSQL, похожая на системного пользователя Linux, используется для аутентификации и прав доступа.
  • psql — командная оболочка PostgreSQL для выполнения запросов и управления сервером.

Требования

  • OpenSUSE Leap 42.1 (либо совместимая версия)
  • root-права или sudo

Шаг 1 — Установка PostgreSQL

OpenSUSE содержит пакеты нескольких версий PostgreSQL. В этом примере устанавливается PostgreSQL 9.4 через zypper.

Установите пакеты:

zypper in postgresql94 postgresql94-contrib postgresql94-server

Запустите сервис:

systemctl start postgresql

Важно: если пакетная база у вас другая (новее/старше), подставьте соответствующие версии пакетов.

Шаг 2 — Настройка пользователя postgres

PostgreSQL создаёт роль «postgres» по умолчанию для администрирования.

Войдите в систему под этой ролью:

sudo su
su - postgres

Запустите psql (интерактивная оболочка):

psql

Измените пароль роли «postgres»:

\password postgres
New Password:

Введите новый пароль.

Шаг 3 — Создание новой роли и базы данных

Создадим роль с суперпользовательскими правами и базу данных для неё.

Под ролью postgres выполните:

su - postgres
createuser -s nano
createdb nano_db

Примечание: опция -s даёт роли суперпользовательские привилегии. Здесь роль называется «nano», а база — «nano_db».

Затем установим пароль и дадим все привилегии на базу:

psql
alter user nano with encrypted password 'aqwe123@';
grant all privileges on database nano_db to nano;

Я использую пароль «aqwe123@» в примере — замените его на надёжный.

Создание нового пользователя PostgreSQL

Важно: для доступа через phpPgAdmin роль должна иметь пароль. Не допускайте логинов без пароля.

Шаг 4 — Конфигурация PostgreSQL для сетевого доступа

Если нужно подключаться удалённо (например, из PgAdmin3 или других инструментов), откройте сетевой доступ.

Перейдите в каталог данных PostgreSQL и отредактируйте postgresql.conf:

cd /var/lib/pgsql/
cd data/
vim postgresql.conf

Найдите и измените параметры (раскомментируйте и установите значения):

listen_addresses = '*'
port = 5432

Сохраните файл.

Затем настройте метод аутентификации в файле pg_hba.conf:

vim pg_hba.conf

Измените соответствующие строки на md5, чтобы требовался пароль:

#TYPE   Database    User    Address     Method
local   all         all                     md5
host    all         all     127.0.0.1/32    md5
host    all         all     ::1/128         md5

Если хотите разрешить доступ с конкретного IP (например, вашего рабочего ПК), добавьте запись вида:

host    all         all     <ваш_IP>/32     md5

Перезапустите сервис:

systemctl restart postgresql

Важно: открывая доступ извне, используйте брандмауэр и ограничение по IP.

Шаг 5 — Установка и настройка phpPgAdmin

phpPgAdmin — веб-интерфейс на PHP для управления PostgreSQL. Для него используем Apache.

Установите пакет:

zypper in phpPgAdmin

Перейдите в каталог конфигурации и отредактируйте config.inc.php:

cd /etc/phpPgAdmin/
vim config.inc.php

Установите хост на «localhost» (строка 18 в примере):

$conf['servers'][0]['host'] = 'localhost';

Параметр дополнительной безопасности (строка около 93) по умолчанию равен true. Не рекомендуется отключать его:

$conf['extra_login_security'] = true;

Активируйте модули в Apache, нужные для phpPgAdmin:

a2enmod php5
a2enmod version

Перезапустите сервисы:

systemctl restart postgresql
systemctl restart apache2

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

Откройте браузер и перейдите по URL (пример):

http://192.168.1.101/phpPgAdmin/

Вход в Postgres.

Войдите под ролью «nano» и введённым паролем «aqwe123@».

Интерфейс phpPgAdmin

Если попытаться войти под «postgres», вход будет запрещён из-за включённой дополнительной безопасности.

Режим безопасности включён; вход под postgres запрещён.

Безопасность и хорошие практики

  • Всегда используйте надёжные пароли и храните их в защищённом хранилище паролей.
  • Не открывайте доступ к серверу PostgreSQL публично без необходимости. Ограничьте IP-адреса в pg_hba.conf и настройках брандмауэра.
  • Отключайте учётные записи по умолчанию для внешнего доступа, если это возможно.
  • Регулярно обновляйте пакеты PostgreSQL и ОС.

Альтернативные подходы

  • Если вы не хотите phpPgAdmin, используйте PgAdmin4, DBeaver или psql для управления.
  • Для облачного развёртывания рассмотрите управляемые сервисы (AWS RDS, Heroku Postgres), они снимают часть задач по поддержке.
  • Для production-сред использует репликацию и бэкапы (pg_basebackup, pg_dump). Этот туториал покрывает только базовую установку.

Ментальные модели и полезные эвристики

  • Роль = учётная запись + привилегии; думайте о ролях как о сочетании системного пользователя и набора прав в БД.
  • Разделяйте права: создавайте отдельные роли для приложений, администраторов и сервисов.
  • Минимизируйте права: давайте только необходимые привилегии (принцип наименьших привилегий).

Критерии приёмки

  • PostgreSQL сервис активен: systemctl status postgresql показывает Active: active.
  • psql позволяет подключиться под ролью postgres и user nano.
  • phpPgAdmin доступен по указанному URL и позволяет войти с учётной записью nano.
  • Подключения с разрешённых IP работают, с запретных — отклоняются.

Чек-лист для запуска в проде

  • Изменён пароль роли postgres на уникальный
  • Созданы роли для приложений с минимальными правами
  • Настроен pg_hba.conf с md5 и ограничением по IP
  • Включён брандмауэр и правила для портов
  • Настроены регулярные бэкапы и проверка восстановления
  • Логи мониторятся и хранятся централизованно

Траблшутинг: распространённые проблемы и решения

  • Не запускается PostgreSQL после правок конфигурации: проверьте синтаксис файлов postgresql.conf и pg_hba.conf, просмотрите журнал journalctl -u postgresql.
  • phpPgAdmin не принимает логин «nano»: убедитесь, что пароль задан и аутентификация в pg_hba.conf установлена на md5.
  • Подключение извне завершается ошибкой: проверьте listen_addresses, настройки брандмауэра и запись в pg_hba.conf для IP клиента.

Факти-бокс: ключевые цифры и команды

  • Порт по умолчанию: 5432
  • Типичный путь данных на OpenSUSE: /var/lib/pgsql/data
  • Включение сервиса: systemctl start postgresql
  • Перезапуск Apache: systemctl restart apache2

Политика хранения данных и конфиденциальность

Если ваши данные содержат персональные данные (PII), учитывайте требования локального законодательства и GDPR. Шифруйте резервные копии и ограничьте доступ к файлам конфигурации и дампам.

Короткое руководство на случай отката (rollback)

  • Если новая конфигурация ломает старт сервиса, верните предыдущую версию postgresql.conf/pg_hba.conf из резервной копии и выполните systemctl restart postgresql.
  • Если базы повреждены, используйте последний успешный дамп для восстановления: pg_restore или psql для SQL-дампов.

Справочные ссылки

Короткое резюме

  • Установите пакеты PostgreSQL и запустите сервис.
  • Создайте роли и базы, установите пароли.
  • Настройте сетевой доступ и метод аутентификации (md5).
  • Установите phpPgAdmin, настройте и протестируйте подключение через веб.

Ключевые результаты: рабочий сервер PostgreSQL, управляемый через phpPgAdmin, с базовой безопасной настройкой и возможностью удалённого подключения по необходимости.

Поделиться: 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 быстро