En esta ocasión veremos cómo instalar phpPgAdmin en Ubuntu 18.04 LTS paso a paso, de modo que administrar el servicio de bases de datos PostgreSQL de tu servidor o VPS Ubuntu de forma remota será un juego de niños gracias a esta potente aplicación web.
Contenido
Antes de instalar phpPgAdmin en Ubuntu 18.04 LTS
Si quieres seguir esta guía de instalación y configuración de phpPgAdmin en Ubuntu 18.04 LTS debes cumplir al menos los siguientes requerimientos:
- Una instalación actualizada de Ubuntu 18.04 LTS.
- Servicio de bases de datos PostgreSQL.
- Servidor web con PHP.
- Acceso a línea de comandos con un usuario con permisos de sudo.
- Conexión a Internet.
Si aún no dispones del entorno necesario, puede resultarte de utilidad consultar previamente nuestras guías de instalación de Apache y PHP en Ubuntu 18.04 e instalación de PostgreSQL en Ubuntu 18.04.
Cómo instalar phpPgAdmin en Ubuntu 18.04 LTS
Vamos a instalar phpPgAdmin en Ubuntu 18.04 LTS desde los propios repositorios de Ubuntu. Como suele ser habitual en estos casos, actualizamos las listas de paquetes:
~$ sudo apt update
El paquete que buscamos en esta ocasión es phppgadmin, que instalaremos con apt:
~$ sudo apt install -y phppgadmin
En unos instantes se descarga e instala phpPgAdmin junto a sus dependencias, recargándose la configuración del servidor web, de modo que phpPgAdmin queda listo para usarse solamente en modo local.
Cómo acceder a phpPgAdmin
El instalador de phpPgAdmin crea un alias /phppgadmin de modo que para acceder a esta aplicación web debemos introducir como URL en el navegador la dirección IP o dominio de la máquina Ubuntu 18.04 seguido de la ruta /phppgadmin.
Por ejemplo, en este tutorial el servidor Ubuntu 18.04 es accesible en el dominio ubuntu64.local.lan, por lo que podríamos indicar la URL http://ubuntu64.local.lan/phppgadmin en el navegador:
Si no accedes localmente, recibirás un mensaje de error 403 «Forbidden«, ya que no está permitido el acceso remoto.
Cómo acceder a phpPgAdmin remotamente en Ubuntu 18.04
Para permitir el acceso remoto a phpPgAdmin en Ubuntu 18.04 es necesario modificar la configuración del alias, en el archivo /etc/apache2/conf-available/phppgadmin.conf:
~$ sudo nano /etc/apache2/conf-available/phppgadmin.conf
La directiva que impide el acceso remoto es Require:
... # Only allow connections from localhost: Require local ...
Simplemente desactivando la línea se podrá acceder remotamente, ya que la configuración por defecto del servidor web sí permite el acceso remoto:
... #Require local ...
Guardados los cambios en el archivo, hay que recargar la configuración del servidor web:
~$ sudo systemctl reload apache2
Ya podemos acceder desde la red a phpPgAdmin:
Iniciar sesión en phpPgAdmin en Ubuntu 18.04 LTS
Siguiendo los enlaces «Servidores» de la página incial de phpPgAdmin se muestra la lista de servidores PostgreSQL disponibles. Por defecto sólo aparece el servicio local, que nos pedirá usuario y contraseña:
Es importante destacar que si el usuario, aunque lo apropiado sería decir el rol, de PostgreSQL con el que queremos acceder no tiene contraseña, no se autorizará por motivos de seguridad el acceso.
Crear una contraseña para un rol de PostgreSQL es sencillo. Por ejemplo, si tenemos un rol asociado a nuestro usuario de Ubuntu 18.04 podemos asignar una contraseña inmediatamente con el cliente de consola psql:
~$ psql ... chacho=# \password Enter new password: Enter it again: chacho=#
Si nuestro rol es administrador, podremos asignar contraseña a otros roles con los que queramos acceder en phpPgAdmin:
... chacho=# \password pepe Enter new password: Enter it again: chacho=#
Para iniciar sesión en phpPgAdmin indicaremos el rol y la contraseña:
Por fin entraremos en la aplicación web, donde podremos hacer todas las tareas que permitan los privilegios de los que disponga el rol con el que hemos iniciado sesión:
Iniciar sesión con el rol postgres
Si no tienes un rol administrador y quieres acceder con el rol postgres, tendrás que crear una contraseña para postgres:
~$ sudo -u postgres psql ... postgres=# \password Enter new password: Enter it again: postgres=# \q ~$
Pero en el caso del rol postgres phpPgAdmin no permite el acceso por defecto. Será necesario modificar un valor en el archivo /etc/phppgadmin/config.inc.php.
Haz copia de seguridad antes de modificar config.inc.php, ya que el mínimo error hará que no funcione la aplicación phpPgAdmin
~$ sudo nano /etc/phppgadmin/config.inc.php
Buscaremos la siguiente línea:
... $conf['extra_login_security'] = true; ...
Hay que cambiar el valor true por false:
... $conf['extra_login_security'] = false; ...
Basta con guardar los cambios para que postgres pueda acceder con su contraseña.
Configurar el acceso a otros servidores
Seguramente has deducido que si se muestra una lista de servidores disponibles es porque se puede acceder a más de un servicio PostgreSQL desde phpPgAdmin.
Además del servicio local en la máquina Ubuntu 18.04, puedes configurar otros servicios en otras máquinas en el archivo config.inc.php:
~$ sudo nano /etc/phppgadmin/config.inc.php
Los servidores se almacenan en una matriz llamada $conf[‘servers’], estando configurado el servidor por defecto en el índice 0 de esta matriz, $conf[‘servers’][0]:
... $conf['servers'][0]['desc'] = 'PostgreSQL'; ... $conf['servers'][0]['host'] = 'localhost'; ... $conf['servers'][0]['port'] = 5432; ... $conf['servers'][0]['sslmode'] = 'allow'; ... $conf['servers'][0]['defaultdb'] = 'template1'; ... $conf['servers'][0]['pg_dump_path'] = '/usr/bin/pg_dump'; $conf['servers'][0]['pg_dumpall_path'] = '/usr/bin/pg_dumpall'; ...
A continuación de este fragmento existe un bloque de comentarios que muestra cómo configurar un servidor PostgreSQL adicional:
... // Example for a second server (PostgreSQL for Windows) //$conf['servers'][1]['desc'] = 'Test Server'; //$conf['servers'][1]['host'] = '127.0.0.1'; //$conf['servers'][1]['port'] = 5432; //$conf['servers'][1]['sslmode'] = 'allow'; //$conf['servers'][1]['defaultdb'] = 'template1'; //$conf['servers'][1]['pg_dump_path'] = 'C:\\Program Files\\PostgreSQL\\8.0\\bin\\pg_dump.exe'; //$conf['servers'][1]['pg_dumpall_path'] = 'C:\\Program Files\\PostgreSQL\\8.0\\bin\\pg_dumpall.exe'; ...
Podemos aprovechar estos comentarios para definir una conexión a otro servidor PostgreSQL:
... $conf['servers'][1]['desc'] = 'Debian 9'; $conf['servers'][1]['host'] = 'debian9.local.lan'; $conf['servers'][1]['port'] = 5432; $conf['servers'][1]['sslmode'] = 'allow'; $conf['servers'][1]['defaultdb'] = 'template1'; ...
Podrías añadir más servicios PostgreSQL añadiendo bloques similares e incrementando el índice de la matriz:
... $conf['servers'][2]['desc'] = 'VPS Ubuntu'; $conf['servers'][2]['host'] = 'vps.ubuntu.local.lan'; $conf['servers'][2]['port'] = 5432; $conf['servers'][2]['sslmode'] = 'allow'; $conf['servers'][2]['defaultdb'] = 'template1'; ...
Guardados los cambios, la nueva lista de servidores estará disponible de inmediato:
Los requisitos para acceder a estos servidores adicionales es que tengan habilitado el acceso remoto y los roles con los que vayamos a acceder estén protegidos por contraseña.
Conclusión
El proceso de instalar y configurar phpPgAdmin en Ubuntu 18.04 LTS es muy sencillo y vale la pena trabajar de forma cómda e intuitiva con su interfaz web.
Si tienes dudas o preguntas, sugerencias, etc. puedes dejar un comentario.
¡Apoya comoinstalar.me!
¿Ya estás administrando remotamente tus bases de datos PostgreSQL gracias a esta guía de instalación y configuración de phpPgAdmin en Ubuntu 18.04 LTS? Si es así y quieres agradecérnoslo puedes hacerlo dejando una propina a partir de 1 $ desde PayPal:
¡Gracias!