How To Install pgAdmin 4 on CentOS 7 / RHEL 7 & Fedora 29 / Fedora 28

0

pgAdmin is a free and open source management tool for PostgreSQL and derivative relation databases such as EDB Advanced Server. It can be installed on multiple OS platforms such as Linux, Unix, Mac OS X, and Windows to manager PostgreSQL 9.2 and above.

Deployment Mode

pgAdmin can be run as a web or desktop application.

Server Deployment

In server deployment (web application), it is deployed as a web application behind a web server running as a reverse proxy or using the WSGI interface.

Desktop Deployment

In desktop deployment (desktop application), it is deployed to run in desktop mode by utilizing the desktop runtime to host the application. When the runtime is launched from system-tray, it runs the pgAdmin server and launches a web browser to render the user interface.

In this guide, we will install pgAdmin 4 on CentOS 7 / RHEL 7 & Fedora 29 / Fedora 28 as a web application (server deployment).

Prerequisites

Install PostgreSQL Server

This post assumes that you already have PostgreSQL 9.2 and above installed on your system. Otherwise, follow the post: How To Install PostgreSQL 11 / 10 on CentOS 7 / RHEL 7.

Set up EPEL Repository

We would need to enable the EPEL repository to download dependent packages for pgAdmin.

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Set up PostgreSQL Repository

pgAdmin 4 is available in PostgreSQL repository and your system should have the PostgreSQL repository by now if you have already completed the installation of PostgreSQL. If not, add the PostgreSQL repository using the below command.

### PostgreSQL 11 ###

# RHEL 7 #
yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat11-11-2.noarch.rpm

# CentoS 7 #
yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

# Fedora 29 #
dnf install https://download.postgresql.org/pub/repos/yum/11/fedora/fedora-29-x86_64/pgdg-fedora11-11-2.noarch.rpm

# Fedora 28 #
dnf install https://download.postgresql.org/pub/repos/yum/11/fedora/fedora-28-x86_64/pgdg-fedora11-11-2.noarch.rpm

### PostgreSQL 10 ##

# RHEL 7 #
yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat10-10-2.noarch.rpm

# CentoS 7 #
yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm

# Fedora 29 #
dnf install https://download.postgresql.org/pub/repos/yum/10/fedora/fedora-29-x86_64/pgdg-fedora10-10-4.noarch.rpm

# Fedora 28 #
dnf install https://download.postgresql.org/pub/repos/yum/10/fedora/fedora-28-x86_64/pgdg-fedora10-10-4.noarch.rpm

Install pgAdmin 4

Once you have PostgreSQL repository configured on your system, run the following command to install pgAdmin 4.

### RHEL / CentOS ###

yum -y install pgadmin4

### Fedora ###

dnf -y install pgadmin4

Start and enable httpd service.

systemctl start httpd
systemctl enable httpd

Configure pgAdmin 4

We would need to do a few configuration changes prior to accessing the pgAdmin 4.

Copy the pgAdmin 4 sample configuration.

cp /etc/httpd/conf.d/pgadmin4.conf.sample /etc/httpd/conf.d/pgadmin4.conf

Create a pgAdmin log and data directories.

mkdir /var/log/pgadmin4/
mkdir /var/lib/pgadmin4/

Create/Edit config_local.py file.

vi /usr/lib/python2.7/site-packages/pgadmin4-web/config_local.py

Add the following settings.

LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'

Change permissions of directories so that Apache can write data into it.

chown -R apache:apache /var/lib/pgadmin4/*
chown -R apache:apache /var/log/pgadmin4/*

Run the following command to create a user account for the pgAdmin 4 web interface.

python /usr/lib/python2.7/site-packages/pgadmin4-web/setup.py

Output:

NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

Email address: [email protected]
Password: xxxxxxxxx
Retype password: xxxxxxxxx
pgAdmin 4 - Application Initialisation
======================================

Restart the Apache web service.

systemctl restart httpd

Firewall

Set up the firewall so that we can access pgAdmin 4 from external machines.

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

SELinux

Consider disabling SELinux permanently for pgAdmin 4 to work properly.

Access pgAdmin 4

Open a web browser and go to the following URL to access the pgAdmin 4 interface.

http://ip.add.re.ss/pgadmin4

Log in to pgAdmin 4 web interface using the email address and password you have created earlier.

Install pgAdmin 4 on CentOS 7 - pgAdmin Login Screen
Install pgAdmin 4 on CentOS 7 – pgAdmin Login Screen

Upon successful login, you should see the pgAdmin 4 interface.

Install pgAdmin 4 on CentOS 7 - pgAdmin Home Page
Install pgAdmin 4 on CentOS 7 – pgAdmin Home Page

To manage a PostgreSQL server, you will need to add a new server. Click on Add New Server.

General Tab:

Name:- Name your PostgreSQL Server

Install pgAdmin 4 on CentOS 7 - Add New PostgreSQL Instance
Install pgAdmin 4 on CentOS 7 – Add New PostgreSQL Instance

Connection Tab:

Hostname/address:- Hostname or IP Address of PostgreSQL server
Port:- 5432 (Leave default) – Change it if required
Username:- Username by which you are connecting. In my case, it is postgres.
Password:- Password for the user

Install pgAdmin 4 on CentOS 7 - PostgreSQL Instance Details
Install pgAdmin 4 on CentOS 7 – PostgreSQL Instance Details

Click Save to save the changes.

If the connection to PostgreSQL server is successful, you should see the following page.

Install pgAdmin 4 on CentOS 7 - Database Statistics
Install pgAdmin 4 on CentOS 7 – Database Statistics

Troubleshooting

You may get a Fatal: Ident authentication failed for user error.

Install pgAdmin 4 on CentOS 7 - PostgreSQL Error
Install pgAdmin 4 on CentOS 7 – PostgreSQL Error

To fix the issue, edit pg_hba.conf file.

### PostgreSQL 11 ###

vi /var/lib/pgsql/11/data/pg_hba.conf

### PostgreSQL 10 ###

vi /var/lib/pgsql/11/data/pg_hba.conf

Update the below line shown like below.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

host     all            all              all                     md5

Restart the PostgreSQL service.

### PostgreSQL 11 ###

systemctl restart postgresql-11

### PostgreSQL 10 ###

systemctl restart postgresql-10

Conclusion

You have successfully installed pgAdmin 4 on CentOS 7 / RHEL 7 & Fedora 29 / Fedora 28 and added one of your PostgreSQL instances to it to manage the database. pgAdmin 4 is similar to phpPgAdmin in terms of managing PostgreSQL databases. You can visit pgAdmin 4 documentation for more information.

You might also like