PostgreSQL en pgAdmin4 te installeren op Ubuntu 18.04 LTS

pgAdmin4 is een open bron PostgreSQL beheerprogramma, ontworpen voor meerdere PostgreSQL database versies. pgAdmin4 is gemaakt met alle functies die op de PostgreSQL server te vinden zijn. Het is geschreven in python en jquery en kan geïnstalleerd worden op Windows, Mac, en Linux. Het biedt meerdere inzetmodellen, kan geïnstalleerd worden als desktop applicatie of als server applicatie die achter de webserver zoals Apache2 draait.

In deze zelfstudie laten we je de installatie en configuratie zien van pgAdmin4 ‘Server Mode’ op Ubuntu 18.04 server. De pgAdmin4 zal draaien als een uWSGI dienst achter de Apache webserver, en we behandelen zowel pgAdmin4 installaties uit het repository als uit de broncode.

Vereisten

  • Ubuntu 18.04 server
  • Root voorrechten
  • Basiskennis PostgreSQL installatie

Installeer PostgreSQL op Ubuntu 18.04 Server

Eerst laten we je de basisinstallatie en configuratie van de PostgreSQL databank zelf zien. Hij kan geïnstalleerd worden uit de Officiële PostgreSQL repository en uit de standaard Ubuntu repository.

Als je de PostgreSQL databank uit de officiële repository wilt installeren, voeg dan de Postgres sleutel en repository toe door de volgende commando’s uit te voeren.

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

Werk daarna alle repositories bij en installeer PostgreSQL.

sudo apt update
sudo apt -y install postgresql postgresql-contrib

Log na de installatie in op de standaard gebruiker genaamd ‘postgres’ en voer de ‘psql’ PostgreSQL command-line interface uit.

su - postgres
psql

Voeg nu een nieuw wachtwoord toe voor de Postgres gebruiker door de volgende query uit te voeren op de psql interface.

\password postgres
TYPE YOUR PASSWORD

Installeer pgAdmin4 uit de Repository

Standaard stelt PostgreSQL zijn eigen repository ter beschikking om de pgAdmin4 pakketten te installeren.

1. PostgreSQL Repository toevoegen

Download de PostgreSQL sleutel en voeg de repository toe door het volgende commando uit te voeren.

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

2. Installeer pgadmin4

Werk daarna alle beschikbare repositories bij en installeer de pgAdmin4 pakketten met het onderstaande apt commando.

sudo apt update
sudo apt install pgadmin4 pgadmin4-apache2 -y

Tijdens de installatie wordt je gevraagd om de configuratie van de e-mail gebruikersnaam en het wachtwoord.

Typ je eigen e-mail adres dat als gebruikersnaam gebruikt zal worden.

Typ dan het wachtwoord.

Zodra de installatie voltooid is, open je je webbrowser en typ je het IP adres van de server in zoals hieronder.

http://10.9.9.15/pgadmin4/

En je krijgt de pgAdmin4 login pagina te zien. Log in met je e-mail adres en wachtwoord.

En je krijgt het pgAdmin dashboard.

Installeer pgAdmin4 vanaf bron

Om pgAdmin4 vanaf broncode te installeren, moeten we enkele afhankelijkheden van pakketten op het systeem installeren en de Apache webserver handmatig configureren om de pgAdmin4 uWSGI dienst te serveren.

– Gebruiker en mappen aanmaken

Eerst en vooral willen we pgAdmin4 installeren op de niet-root gebruiker. We moeten dus een nieuwe gebruiker aanmaken en een aantal mappen voor pgAdmin4 aanmaken.

Maak een nieuwe gebruiker genaamd ‘ahmad’ door het volgende commando uit te voeren.

useradd -m -s /bin/bash ahmad
passwd ahmad

Maak nu de pgAdmin4 log directory en gegevensmappen voor de ‘sessies’ en ‘opslag’.

mkdir -p /var/log/pgadmin4/
mkdir -p /var/lib/pgadmin4/{sessions,storage}

Verander daarna de eigenaar van al die directories in de gebruiker ‘ahmad’.

chown -R ahmad:ahmad /var/log/pgadmin4/ /var/lib/pgadmin4/

– Installeer afhankelijkheden

Installeer alle pakketten afhankelijkheden die nodig zijn, zoals Python, Python pip, en virtualenv voor de installatie van pgAdmin4 door de volgende commando’s uit te voeren.

sudo apt install build-essential libssl-dev libffi-dev libgmp3-dev virtualenv python-pip libpq-dev python-dev -y

Installeer daarna de Apache2 webserver en de mod_wsgi.

sudo apt install apache2 apache2-utils libapache2-mod-wsgi libexpat1 ssl-cert python -y

– Creëer virtuele omgeving Python

Voor deze gids gaan we pgAdmin4 installeren binnen de virtuele python omgeving.

Log in op de gebruiker ‘ahmad’ en maak een nieuwe python virtuele omgeving aan met de naam ‘pgamdin4’.

su - ahmad
virtualenv pgadmin4

Ga nu naar de ‘pgadmin4’ directory en activeer de virtuele omgeving.

cd pgadmin4/
source bin/activate

– Installeer pgadmin4

Download binnen de python virtuele omgeving het pgAdmin4 whl pakketbestand.

wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v3.6/pip/pgadmin4-3.6-py2.py3-none-any.whl

Installeer het pakket dan met het pip commando.

pip install pgadmin4-3.6-py2.py3-none-any.whl

Wacht op de installatie van pgAdmin4.

Om pgAdmin4 op ‘Server Mode’ te kunnen draaien, moeten we een extra configuratie toevoegen aan de python site-packages directory.

Ga naar de ‘lib/python-version/site-packages/pgadmin4’ directory en maak een nieuw configuratiebestand met de naam ‘config_local.py’.

cd lib/python2.7/site-packages/pgadmin4/
vim config_local.py

Plak de configuratie hieronder.

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'
SERVER_MODE = True

Bewaar en sluit.

Voer daarna het ‘setup.py’ script uit.

python setup.py

En je wordt gevraagd om de admin e-mail en wachtwoord configuratie. Typ je gegevens in en de installatie van pgAdmin is voltooid.

Opmerking:

Als je een melding krijgt dat het ‘psycopg2’ pakket bij de volgende release een andere naam zal krijgen, installeer dan gewoon de binaire versie van het pakket.

pip install psycopg2-binary

Deactiveer daarna de python virtuele omgeving en verander de eigenaar van de pgAdmin4 log en data directories in de ‘www-data’ gebruiker.

deactiveer

chown -R www-data:www-data /var/lib/pgadmin4/
chown -R www-data:www-data /var/log/pgadmin4/

– Configureer Apache2

Voor deze gids zal de Apache2 webserver gebruikt worden als reverse proxy voor de uWSGI toepassing pgAdmin4.

Ga naar de ‘/etc/apache2/sites-available’ directory en maak een nieuw virtual host bestand aan met de naam ‘pgadmin4.conf’.

cd /etc/apache2/sites-available/
vim pgadmin4.conf

Verander de ‘ServerName’ met je eigen domeinnaam en plak die erin.

<VirtualHost *:80>
    ServerName pgadmin.ahmad-labs.io
    LogLevel debug
    ErrorLog ${APACHE_LOG_DIR}/pgadmin-error.log
    CustomLog ${APACHE_LOG_DIR}/pgadmin-access.log combined

    LoadModule wsgi_module modules/mod_wsgi.so
    WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/home/ahmad/pgadmin4
    WSGIScriptAlias / /home/ahmad/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.wsgi
 
    <Directory "/home/ahmad/pgadmin4/lib/python2.7/site-packages/pgadmin4/">
        WSGIProcessGroup pgadmin
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
    </Directory>
</VirtualHost>

Bewaar en sluit.

Test nu de configuratie en activeer de pgAdmin4 virtuele hosts.

apachectl configtest
a2ensite pgadmin4

Controleer of er geen fout optreedt en herstart dan de Apache2 dienst.

systemctl restart apache2

Tenslotte is pgAdmin4 nu in bedrijf als een uWSGI dienst achter de Apache webbrowser.

Open nu je web browser en typ de pgadmin domeinnaam in.

http://pgadmin.hakase-labs.io/

En je krijgt de pgAdmin4 login pagina zoals hieronder.

Verbind je met de PostgreSQL Database met pgAdmin4

Log in op het pgAdmin4 Dashboard met je emailadres en wachtwoord.

Klik nu op de knop ‘Add Server’, typ de gegevens van de PostgreSQL Server waarmee je verbinding wilt maken.

En klik op ‘Save’.

Daarna krijg je gegevens over je PostgreSQL database aan de linkerkant van het paneel.

Tenslotte is nu pgAdmin4 geïnstalleerd op Ubuntu 18.04

Links