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.
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