Установка и использование phpPgAdmin на сервере Ubuntu 12.04

Что такое phpPgAdmin?

phpPgAdmin – это основанное на PHP веб-приложение, которое предоставляет графический интерфейс для системы PostgreSQL. Оно выполняет ту же функцию, что и PhpMyAdmin (в MySQL), то есть позволяет пользователям управлять информацией базы данных при помощи визуальной программы.

1: Установка phpPgAdmin

Для начала обновите репозиторий apt-get:

sudo apt-get update

Теперь нужно установить PostgreSQL, некоторые дополнительные зависимости и phpPgAdmin. Во время установки PhpPGAdmin также установить необходимые пакеты PHP и Apache.

sudo apt-get install postgresql postgresql-contrib phppgadmin

Запустите Apache:

sudo service apache2 start

2: Безопасная настройка

После завершения установки можно получить доступ к phpgadmin, перейдя по ip_адрес/phpPgAdmin.

Примечание: чтобы узнать IP-адрес сервера, введите команду:

ifconfig eth0 | grep inet | awk '{ print $2 }'

Однако при попытке открыть страницу PhpPGAdmin может возникнуть ошибка 403 (forbidden).

Чтобы получить доступ к странице в такой ситуации, нужно сделать ее общедоступной (это временно, далее ее можно будет снова закрыть).

sudo nano /etc/apache2/conf.d/phppgadmin

В этом файле найдите следующий раздел и раскомментируйте строку allow from all:

order deny,allow
deny from all
allow from 127.0.0.0/255.0.0.0 ::1/128
allow from all

Настройка авторизации .htaccess

Включив файлы htaccess, создайте пользователя, чьи учетные данные будут использоваться для получения доступа к странице входа phpPgAdmin.

Итак, создайте раздел авторизации .htaccess в конфигурационном файле сайта. В качестве примера можно использовать дефолтный файл:

sudo nano /etc/apache2/sites-enabled/000-default

Затем настройте авторизацию пользователя. Создайте новый раздел в файле виртуального хоста, внеся следующую информацию:

<Directory "/usr/share/phpPgAdmin">
AuthUserFile /etc/phpPgAdmin/.htpasswd
AuthName "Restricted Area"
AuthType Basic
require valid-user
</Directory>

Краткое описание всех строк данного кода:

  • AuthUserFile: данная строка указывает путь к файлу паролей (который будет создан в следующем разделе руководства).
  • AuthType: эта строка указывает тип авторизации, который будет использоваться для проверки пароля. Пароли проверяются через HTTP, ключевое слово Basic изменят нельзя.
  • AuthName: текст, который будет отображаться в приглашении ввести пароль. Здесь можно поместить любой текст или даже оставить поле незаполненным.
  • Require valid-user: эта строка говорит файлу .htaccess, что только пользователи, указанные в файле паролей, могут получить доступ к экрану входа PhpPGAdmin.

Создание файла .htpasswd

Теперь нужно создать файл паролей и внести в него информацию о пользователях, имеющих доступ к странице входа PhpPGAdmin.

Для создания файла .htpasswd используйте команду htpasswd; поместите файл в любую директорию, пока файл недоступен из браузера. Хотя назвать файл с паролями можно как угодно, согласно конвенции он должен называться .htpasswd.

sudo htpasswd -c /etc/phpPgAdmin/.htpasswd username

Появится приглашение ввести и подтвердить пароль.

После того, как имя пользователя и пароль сохранятся в файле, пароль будет зашифрован.

В завершение перезапустите Apache:

sudo service apache2 restart

Доступ к phpPgAdmin

Теперь уровень защиты phpPgAdmin гораздо выше, поскольку только авторизованные пользователи смогут получить доступ к странице входа. Чтобы открыть эту страницу, введите ip_адрес/phpPgAdmin (обратите внимание: теперь на странице появляется окно «To view this page, you must log in to this area…»).

Заполните поля появившегося окна соответствующей информацией. После входа можно получить доступ к PhpPGAdmin, введя имя пользователя и пароль Postgres.

Дополнительно: создание пользователя Postgres

Измените метод авторизации на Authentication Configuration File:

sudo nano /etc/postgresql/9.1/main/pg_hba.conf

Данное изменение нужно внести в эту строку:

# "local" is for Unix domain socket connections only
local   all             all                                    md5

Чтобы создать пользователя, для начала перейдите на аккаунт суперпользователя и создайте БД.

sudo su - postgres

Затем создайте еще одну базу данных, где будут храниться таблицы:

createdb newdb

Теперь БД готова, но доступ к ней имеет только пользователь postgres по умолчанию. Нужно дать другим пользователям доступ к этой БД и позволить управлять ею; для этого создайте новых пользователей.

Войдя в систему PostgreSQL как суперпользователь, добавьте новые роли.

Чтобы защитить пользователя паролем, добавьте опцию -P в команде createuser:

createuser -P
Enter name of role to add: newuser
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) y
Password:  enter the superuser’s password here

Теперь войти в postgres можно несколькими способами.

При одноранговой авторизации можно просто набрать следующую команду, указав базу данных, которую нужно открыть:

psql newdb

При авторизации через протокол md5 внесите в команду имя пользователя:

psql –U newuser  -W newdb

Tags: , , , , , , , , , ,

Добавить комментарий