Cómo instalar phpPgAdmin en Debian 10 Buster

En este artículo vamos a ver cómo instalar phpPgAdmin en Debian 10 Buster paso a paso, de modo que podrás administrar el servicio de bases de datos PostgreSQL de tu servidor o VPS Debian desde cualquier lugar de la red usando un simple navegador.

Antes de instalar phpPgAdmin en Debian 10 Buster

Si quieres seguir esta guía de instalación y configuración de phpPgAdmin en Debian 10 Buster, debes satisfacer los siguientes requisitos básicos:

  • Una máquina Debian 10 Buster actualizada.
  • Servidor web con PHP.
  • Servicio de bases de datos PostgreSQL.
  • Un usuario con permisos de sudo o el mismo root.
  • Conexión a Internet.

Cómo instalar phpPgAdmin en Debian 10 Buster

Para instalar phpPgAdmin en Debian 10 Buster usaremos los paquetes disponibles en los repositorios del propio sistema, así que el primer paso es actualizar las listas de paquetes:

~$ sudo apt update

El paquete que vamos a instalar es phpphgadmin y lo haremos con la herramienta apt:

~$ sudo apt install -y phppgadmin

En unos instantes se descargan e instalan phpPgAdmin y sus dependencias, y se recarga la configuración del servidor web para activar la nueva configuración que se ha instalado.

Cómo acceder a phpPgAdmin en Debian 10 Buster

La forma en la que se accede a phpPgAdmin en Debian 10 es a través de un alias del servidor web que viene definido en /etc/apache2/conf-available/phppgadmin.conf.

El alias configurado por defecto es /phppgadmin, de modo que para acceder a phpPgAdmin tendremos que introducir como URL en el navegador la dirección IP o dominio del servidor Debian 10 Buster que estamos configurando, seguido de la ruta /phppgadmin.

Por ejemplo, el servidor Debian 10 Buster sobre el que trabajamos en este tutorial es accesible en el dominio debian10.local.lan, así que la URL http://debian10.local.lan/phppgadmin sería la que utilizamos:

como instalar phppgadmin en debian 10 buster

Si encuentras el mensaje de error «Forbidden» se debe casi con toda seguridad a que has intentado acceder remotamente en lugar de desde la máquina local. Vamos ver cómo configurar el acceso desde la red y alguna cosa más a continuación.

Cómo acceder remotamente a phpPgAdmin en Debian 10 Buster

Para poder acceder de forma remota a phpPgAdmien en Debian 10 Buster hay que realizar ajustes en la configuración del alias para el servidor web:

~$ sudo nano /etc/apache2/conf-available/phppgadmin.conf

El problema está en la siguiente directiva Require:

...
# Only allow connections from localhost:
Require local
...

El valor local indica claramente que no se permitirá acceso desde fuera del sistema. Podemos cambiar su valor o simplemente desactivarla, ya que la configuración general por defecto es permisiva:

...
#Require local
...

Guardados los cambios, aplicaremos la nueva configuracón del servidor web:

~$ sudo systemctl reload apache2

Al volver a intentar acceder comprobaremos que ya es posible:

instalar phppgadmin en debian 10 buster

Cómo iniciar sesión en phpPgAdmin en Debian 10 Buster

Una vez que conseguimos acceder a phpPgAdmin, seguiremos cualquiera de los enlaces «Servidores» de la página principal, que nos mostrarán las servicios PostgreSQL disponibles, siendo por defecto el servicio local el único que aparece y en el que intentaremos entrar:

instalacion de phppgadmin en debian 10 buster

Para acceder con tu rol de PostgreSQL debes haber creado una contraseña, ya que en caso contrario no es posible iniciar sesión en phpPgAdmin.

Si tu rol no tiene contraseña es fácil crearla. Abre un terminal en tu sistema Debian 10 Buster e inicia el cliente psql para tu usuario:

~$ psql
...
chacho=# \password
Ingrese la nueva contraseña:
Ingrésela nuevamente:
chacho=#

Si tu rol de PostgreSQL es administrador, podrás crear contraseñas para otros roles:

chacho=# \password paco
Ingrese la nueva contraseña:
Ingrésela nuevamente:
chacho=#

Cualquier rol con contraseña ya puede iniciar sesión en phpPgAdmin:

phppgadmin en debian 10 buster

Las acciones que se pueden realizar dependerán lógicamente del nivel de privilegios del rol con el que iniciamos sesión.

Cómo acceder con el rol postgres

Lo deseable sería que tuvieras otro rol administrador, asociado a tu usuario de trabajo en Debian 10 Buster, ya que es sencillo de hacer. Pero si quieres administrar tu servicio de bases de datos PostgreSQL con el rol administrativo por defecto, postgres, debes empezar por crearle una contraseña:

~$ sudo -u postgres psql
...
postgres=# \password
Ingrese la nueva contraseña:
Ingrésela nuevamente:
postgres=# exit
~$

Pero no basta con eso, ya que la configuración de phpPgAdmin impide el inicio de sesión del rol postgres. Tendremos que configurar el archivo /etc/phppgadmin/config.inc.php:

~$ sudo nano /etc/phppgadmin/config.inc.php

Buscamos esta línea:

...
        $conf['extra_login_security'] = true;
...

Y cambiamos el valor true a false:

...
        $conf['extra_login_security'] = false;
...

No hay que hacer nada más, simplemente acceder como postgres en phpPgAdmin.

Cómo acceder desde phpPgAdmin a otros servidores PostgreSQL

En este ejemplo tenemos sobre la misma máquina Debian 10 Buster el servicio de bases de datos PostgreSQL, el servidor web Apache, el lenguaje PHP y la aplicación phpPgAdmin.

Si tuvieses un segundo servicio PostgreSQL en una máquina distinta podríamos pensar en instalar también phpPgAdmin. Pero, ¿y si se tratase de una máquina dedicada o sólo tuviésemos acceso al servicio de bases de datos pero no a la instalación de otros servicios y aplicaciones? ¿Qué hacer?

Afortunadamente phpPgAdmin permite trabajar con servicios adicionales en otras máquinas, actuando como un cliente remoto sobre esos servicios. Los requisitos para añadir servicios PostgreSQL remotos son:

  • Que los servicios permitan las conexiones remotas.
  • Que los roles con los que se quiera acceder tengan contraseña.

Para añadir conexiones a otros servicios debemos editar el archivo /etc/phppgadmin/config.inc.php. Es importante realizar una copia de seguridad de este archivo antes de editarlo, ya que en realidad se trata de parte de la aplicación phpPgAdmin, y un error de sintaxis provocará que la aplicación deje de funcionar.

~$ sudo nano /etc/phppgadmin/config.inc.php

¡¡Haz copia de seguridad de config.inc.php antes de realizar cambios!!

En este archivo existen una serie de instrucciones $conf[‘servers’][0] que definen la conexión por defecto al propio servidor local Debian 10 Buster en el que estamos trabajando.

Para añadir un nuevo servidor deberíamos crear otro conjunto de instrucciones similares, pero incrementando el índice 0 a 1, resultando como $conf[‘servers’][1]. Y de hecho, aparece un bloque entero comentado para un servidor 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 reutilizarlo editándolo para un nuevo servidor:

...
        // Example for a second server (PostgreSQL for Windows)
        $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';
        //$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';
...

Si quisiéramos añadir más servidores, volveríamos a copiar el bloque de instrucciones incrementando de nuevo el índice de 1 a 2, por ejemplo:

...
        $conf['servers'][2]['desc'] = 'CentOS 7';
        $conf['servers'][2]['host'] = 'centos7.local.lan';
        $conf['servers'][2]['port'] = 5432;
        $conf['servers'][2]['sslmode'] = 'allow';
        $conf['servers'][2]['defaultdb'] = 'template1';
...

Ahora que tenemos varios servidores configurados, puede ser interesante cambiar la descripción del servidor local:

...
        // Display name for the server on the login screen
        $conf['servers'][0]['desc'] = 'PostgreSQL';
...

Podemos especificar una descripción que tenga sentido para el caso concreto:

...
        $conf['servers'][0]['desc'] = 'Debian 10';
...

Al terminar la configuración (en este caso más bien es programación), guardamos los cambios y cerramos el archivo.

Al abrir phpPgAdmin en el navegador, en la sección servidores aparecerán todos los servicios que hayas configurado:

como configurar phppgadmin en debian 10 buster

Y podremos acceder y trabajar como si fuera el propio servicio local:

configurar phppgadmin en debian 10 buster

Conclusión

Ahora que sabes cómo instalar y configurar phpPgAdmin en Debian 10 Buster, administrar PostgreSQL no podrá ser más sencillo e intuitivo. Gestionar tus servicios de bases de datos remotamente será tan simple como abrir un navegador en cualquier sistema o dispositivo conectado a la red.

Si tienes dudas o preguntas, alguna sugerencia, etc. puedes dejar un comentario.

Y si ya estás administrando tus bases de datos gracias a esta guía de instalación y configuración de phpPgAdmin en Debian 10 Buster y quieres agradecérmelo, puedes hacerlo dejando tan sólo 1 $ de propina desde PayPal:

¡Gracias!

5/5 - (1 voto)

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.