Cómo instalar PostgreSQL y pgAdmin4 en Ubuntu 18.04 LTS
pgAdmin4 es una herramienta de gestión de PostgreSQL de código abierto diseñada para múltiples versiones de bases de datos PostgreSQL. pgAdmin4 ha sido creado con todas las características que se pueden encontrar en el servidor PostgreSQL. Está escrito en python y jquery y se puede instalar en Windows, Mac y Linux. Ofrece múltiples modelos de despliegue, puede instalarse como una aplicación de escritorio o como una aplicación de servidor que se ejecuta detrás del servidor web, como Apache2.
En este tutorial, vamos a mostrarte la instalación y configuración de pgAdmin4 ‘Modo Servidor’ en el servidor Ubuntu 18.04. El pgAdmin4 se ejecutará como un servicio uWSGI detrás del servidor web Apache, y vamos a cubrir ambas instalaciones de pgAdmin4 desde el repositorio y desde el código fuente.
Requisitos previos
- Servidor Ubuntu 18.04
- Privilegios de root
- Conocimientos básicos de instalación de PostgreSQL
Instalar PostgreSQL en el servidor Ubuntu 18.04
En primer lugar, vamos a mostrarte la instalación y configuración básica de la propia base de datos PostgreSQL. Se puede instalar desde el repositorio oficial de PostgreSQL y desde el repositorio por defecto de Ubuntu.
Si quieres instalar la base de datos PostgreSQL desde el repositorio oficial, añade la clave de Postgres y el repositorio ejecutando los siguientes comandos.
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'
Después, actualiza todos los repositorios e instala PostgreSQL.
sudo apt update
sudo apt -y install postgresql postgresql-contrib
Después de la instalación, inicia sesión con el usuario por defecto llamado ‘postgres’ y ejecuta la interfaz de línea de comandos ‘psql’ de PostgreSQL.
su - postgres
psql
Ahora añade una nueva contraseña para el usuario Postgres ejecutando la siguiente consulta en la interfaz psql.
\password postgres
TYPE YOUR PASSWORD
Instalar pgAdmin4 desde el repositorio
Por defecto, PostgreSQL proporciona su propio repositorio para instalar los paquetes de pgAdmin4.
1. Añade el repositorio de PostgreSQL
Descarga la clave de PostgreSQL y añade el repositorio ejecutando el siguiente comando.
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. Instala pgadmin4
Después, actualiza todos los repositorios disponibles e instala los paquetes de pgAdmin4 mediante el comando apt que aparece a continuación.
sudo apt update
sudo apt install pgadmin4 pgadmin4-apache2 -y
Durante la instalación, se te pedirá la configuración del nombre de usuario y de la contraseña.
Escribe tu propia dirección de correo electrónico que se utilizará como nombre de usuario.
A continuación, escribe la contraseña.
Una vez completada la instalación, abre tu navegador web y escribe la dirección IP del servidor como se indica a continuación.
Y se te mostrará la página de inicio de sesión de pgAdmin4. Accede con tu dirección de correo electrónico y tu contraseña.
Y obtendrás el panel de control de pgAdmin.
Instalar pgAdmin4 desde el origen
Para instalar pgAdmin4 desde el código fuente, necesitamos instalar algunas dependencias de los paquetes en el sistema y configurar manualmente el servidor web Apache para que sirva el servicio uWSGI de pgAdmin4.
– Crear usuario y directorios
En primer lugar, queremos instalar el pgAdmin4 en el usuario no root. Así que tenemos que crear un nuevo usuario y crear algunos directorios para pgAdmin4.
Crea un nuevo usuario llamado ‘ahmad’ ejecutando el siguiente comando.
useradd -m -s /bin/bash ahmad
passwd ahmad
Ahora crea el directorio de registro de pgAdmin4 y los directorios de datos para las ‘sesiones’ y el ‘almacenamiento’.
mkdir -p /var/log/pgadmin4/
mkdir -p /var/lib/pgadmin4/{sessions,storage}
Después, cambia el propietario de todos esos directorios al usuario ‘ahmad’.
chown -R ahmad:ahmad /var/log/pgadmin4/ /var/lib/pgadmin4/
– Instala las dependencias
Instala todas las dependencias de los paquetes necesarios como Python, Python pip y virtualenv para la instalación de pgAdmin4 ejecutando los siguientes comandos.
sudo apt install build-essential libssl-dev libffi-dev libgmp3-dev virtualenv python-pip libpq-dev python-dev -y
Después, instala el servidor web Apache2 y el mod_wsgi.
sudo apt install apache2 apache2-utils libapache2-mod-wsgi libexpat1 ssl-cert python -y
– Crear un entorno virtual Python
Para esta guía, vamos a instalar el pgAdmin4 dentro del entorno virtual python.
Entra con el usuario ‘ahmad’ y crea un nuevo entorno virtual python llamado ‘pgamdin4’.
su - ahmad
virtualenv pgadmin4
Ahora ve al directorio ‘pgadmin4’ y activa el entorno virtual.
cd pgadmin4/
source bin/activate
– Instala pgadmin4
Dentro del entorno virtual de python, descarga el archivo del paquete pgAdmin4 whl.
wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v3.6/pip/pgadmin4-3.6-py2.py3-none-any.whl
A continuación, instala el paquete con el comando pip.
pip install pgadmin4-3.6-py2.py3-none-any.whl
Espera a que se instale pgAdmin4.
Para ejecutar el pgAdmin4 en ‘Modo Servidor’, necesitamos añadir una configuración adicional al directorio de paquetes python.
Ve al directorio ‘lib/python-version/site-packages/pgadmin4’ y crea un nuevo archivo de configuración llamado ‘config_local.py’.
cd lib/python2.7/site-packages/pgadmin4/
vim config_local.py
Pega la configuración a continuación.
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
Guarda y cierra.
Después, ejecuta el script ‘setup.py’.
python setup.py
Y se te pedirá la configuración del correo electrónico y la contraseña del administrador. Escribe tus datos y la instalación de pgAdmin se habrá completado.
Nota:
Si recibes una notificación de que el paquete ‘psycopg2’ será renombrado en la próxima versión, simplemente instala la versión binaria del paquete.
pip install psycopg2-binary
Después, desactiva el entorno virtual python y cambia el propietario de los directorios log y data de pgAdmin4 al usuario ‘www-data’.
desactiva
chown -R www-data:www-data /var/lib/pgadmin4/
chown -R www-data:www-data /var/log/pgadmin4/
– Configurar Apache2
Para esta guía, se utilizará el servidor web Apache2 como proxy inverso para la aplicación uWSGI pgAdmin4.
Ve al directorio ‘/etc/apache2/sites-available’ y crea un nuevo archivo de host virtual llamado ‘pgadmin4.conf’.
cd /etc/apache2/sites-available/
vim pgadmin4.conf
Cambia el ‘ServerName’ por tu propio nombre de dominio y pégalo en él.
<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>
Guarda y cierra.
Ahora prueba la configuración y activa los hosts virtuales de pgAdmin4.
apachectl configtest
a2ensite pgadmin4
Asegúrate de que no hay ningún error y reinicia el servicio Apache2.
systemctl restart apache2
Finalmente, el pgAdmin4 ya está en marcha como servicio uWSGI detrás del navegador web Apache.
Ahora abre tu navegador web y escribe el nombre de dominio de pgadmin
http://pgadmin.hakase-labs.io/
Y obtendrás la página de inicio de sesión de pgAdmin4 como se indica a continuación.
Conectar con la base de datos PostgreSQL con pgAdmin4
Accede al panel de control de pgAdmin4 utilizando tu dirección de correo electrónico y tu contraseña.
Ahora haz clic en el botón ‘Añadir servidor’, escribe los detalles del servidor PostgreSQL al que quieres conectarte.
Y haz clic en «Guardar».
Después, obtendrás los detalles de tu base de datos PostgreSQL en el panel izquierdo.
Finalmente, el pgAdmin4 ya está instalado en Ubuntu 18.04