Что такое 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