Установка и настройка PostgreSQL и pgAdmin 4 на Alma Linux 8
посмотреть список доступных версий в репозитории:
dnf module list postgresql
в результате будет показан список:
AlmaLinux 8 - AppStream
Name Stream Profiles Summary
postgresql 9.6 client, server [d] PostgreSQL server and client module
postgresql 10 [d] client, server [d] PostgreSQL server and client module
postgresql 12 client, server [d] PostgreSQL server and client module
postgresql 13 client, server [d] PostgreSQL server and client module
postgresql 15 client, server [d] PostgreSQL server and client module
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
на против версии которая указана для установки по умолчанию стоит [d]
чтобы выбрать другую версию для установки (к примеру 15):
dnf module enable postgresql:15
установка:
dnf install postgresql-server
инициализировать базу данных:
postgresql-setup --initdb
в результате отобразится:
* Initializing database in '/var/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
/var/lib/pgsql/data — по данному пути была создана файловая структура базы данных.
запустить и добавить в автозагрузку:
systemctl start postgresql && systemctl enable postgresql
создать пользователя:
su postgres
в консоли bash-4.4 выполнить команду:
createuser --interactive -P
указать имя пользователя, пароль и повтор пароля:
Enter name of role to add: "ИМЯ ПОЛЬЗОВАТЕЛЯ БАЗЫ"
Enter password for new role: "ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ БАЗЫ"
Enter it again: "ПОВТОР ПАРОЛЯ"
Shall the new role be a superuser? (y/n) y
выйти из консоли bash-4.4:
exit
для того, чтобы авторизоватся под созданными пользователями на текущем сервере нужно открыть файл /var/lib/pgsql/data/pg_hba.conf в инициализированной базе и добавить в начало:
local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
# ...
перезагрузить postgresql:
systemctl restart postgresql
pgAdmin 4
добавить репозиторий pgadmin4:
rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-2-1.noarch.rpm
установка PgAdmin4:
dnf install pgadmin4
запустить конфигурационный скрипт:
/usr/pgadmin4/bin/setup-web.sh
будет доступен по адресу: http://server_ip/pgadmin4/
Если нужно поментить в определенный VirtualHost
удаляем /etc/httpd/conf.d/pgadmin4.conf
добавить в тот VirtualHost при запросе которого будет открыватся pgadmin4:
...
LoadModule wsgi_module modules/mod_wsgi.so
WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/usr/pgadmin4/venv
WSGIScriptAlias /pgadmin4 /usr/pgadmin4/web/pgAdmin4.wsgi
<Directory /usr/pgadmin4/web/>
WSGIProcessGroup pgadmin
WSGIApplicationGroup %{GLOBAL}
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
...
к примеру:
Listen 127.0.0.1:9888
<VirtualHost 127.0.0.1:9888>
LoadModule wsgi_module modules/mod_wsgi.so
WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/usr/pgadmin4/venv
WSGIScriptAlias /pgadmin4 /usr/pgadmin4/web/pgAdmin4.wsgi
<Directory /usr/pgadmin4/web/>
WSGIProcessGroup pgadmin
WSGIApplicationGroup %{GLOBAL}
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
DocumentRoot /var/www/html
<FilesMatch \.php$>
SetHandler proxy:fcgi://127.0.0.1:9000
</FilesMatch>
ErrorLog /var/www/logs/error.log
CustomLog /var/www/logs/access.log combined
</VirtualHost>