Cómo instalar phpPgAdmin en Debian 9 Stretch

Cómo instalar phpPgAdmin en Debian 9 Stretch

En esta ocasión veremos cómo instalar phpPgAdmin en Debian 9 Stretch paso a paso para poder administrar tu sistema de bases de datos PostgreSQL remotamente desde cualquier dispositivo conectado a red que cuente con un navegador.

Antes de instalar phpPgAdmin en Debian 9 Stretch

Para poder completar con éxito esta guía de instalación de phpPgAdmin en Debian 9 Stretch es importante que satisfagas estos requerimientos básicos:

  • Un sistema Debian 9 Stretch actualizado.
  • Servidor web con PHP.
  • El servicio de bases de datos PostgreSQL.
  • Acceso a consola como root o un usuario con permisos de sudo.
  • Conexión a Internet.

Si aún no dispones del entorno, puedes echar un vistazo a la guía de instalación de PostgreSQL en Debian 9 Stretch. Además, es importante que el servidor web ofrezca acceso seguro mediante HTTPS, puede que te interese echar también un vistazo a la guía de instalación de Apache en Debian 9 Stretch.

Cómo instalar phpPgAdmin en Debian 9 Stretch

Vamos a instalar phpPgAdmin en Debian 9 Stretch usando el software disponible en los repositorios de la distribución, así que la primera tarea es actualizar las listas de paquetes disponibles:

~$ sudo apt update

El paquete que necesitamos en esta ocasión es phppgadmin, así que lo instalaremos fácilmente con apt:

~$ sudo apt install -y phppgadmin

Una vez descargado e instalado el paquete phppgadmin junto con sus dependencias en nuestro sistema Debian 9 Stretch, se cargará una nueva configuración en Apache guardada en el archivo phppgadmin.conf en el directorio de configuraciones de Apache.

Esta nueva configuración crea un alias /phppgadmin de Apache, de modo que añadiendo esa ruta a la dirección IP o dominio de nuestro servidor Debian 9 accederemos a la aplicación web phpPgAdmin.

Por ejemplo, la máquina donde probamos este tutorial es accesible en el dominio debian9.local, por lo que la URL http://debian9.local/phppgadmin/ sería válida para acceder.

Preparativos del sistema de bases de datos

Si queremos acceder a nuestro servicio de bases de datos PostgreSQL en Debian 9 desde cualquier punto de la red con phpPgAdmin debemos tener en cuenta que, aunque conectemos desde el otro extremo del planeta, en realidad se trata de acceso local, ya que es el servidor web local el que accede por nosotros al servidor de bases de datos.

El problema es que mientras que phpPgAdmin exige autenticación mediante contraseña (como cualquier servicio web), PostgreSQL por defecto autentica localmente mediante la cuenta del sistema que usa el rol en cada caso, por tanto sin necesidad de contraseña de rol. Así que se hace necesario configurar PostgreSQL para que los roles locales sean autenticados por contraseña, como exige phpPgAdmin. Para crear una contraseña de nuestro rol de PostgreSQL iniciamos sesión local con el cliente psql:

~$ psql
psql (9.6.15)
Digite «help» para obtener ayuda.

chacho=#

Y creamos la contraseña con el comando \password:

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

Sólo queda cerrar sesión con el comando \q:

chacho=# \q
~$

Pero no basta con crear contraseñas para los roles. La configuración por defecto de PostgreSQL en Debian 9 autentica los roles a través del usuario del sistema que realiza la conexión, sin necesitar contraseña. Por tanto, aunque hayamos creado una contraseña para el rol de nuestro usuario, seguiremos pudiendo acceder con psql sin que se nos pida la misma:

~$ psql
psql (9.6.15)
Digite «help» para obtener ayuda.

chacho=#

Cambiaremos este comportamiento editando el archivo pg_hba.conf de PostgreSQL:

~$ sudo nano /etc/postgresql/9.6/main/pg_hba.conf

Buscaremos la directiva local para los usuarios:

...
# "local" is for Unix domain socket connections only
local   all             all                                     peer
...

Y cambiaremos peer por md5:

...
local   all             all                                     md5
...

No lo hacemos para el superusuario postgres porque es posible que ciertos procesos del sistema usen postgres para tareas de mantenimiento o actualización, y encontrarían un problema con el cambio de autenticación. Recuerda que es recomendable tener un rol administrador distinto de postgres para trabajar.

Una vez guardados los cambios, aplicaremos la nueva configuración recargando el servicio postgresql de Debian 9:

~$ sudo systemctl reload postgresql

Una implicación de todo esto es que al crear nuevos roles habrá que asignarles contraseña para que puedan conectar y que previamente a esta configuración los roles existentes deben crear una contrseña (tal como hemos hecho en este ejemplo).

Cómo configurar phpPgAdmin en Debian 9 Stretch

Para configurar phpPgAdmin en Debian 9 podremos trabajar sobre su archivo de configuración principal en /etc/phppgadmin/config.inc.php y sobre la configuración del alias de Apache, en /etc/apache2/conf-available/phppgadmin.conf.

Por defecto, las conexiones locales son las únicas permitidas, pero tal vez no tenga mucho sentido instalar esta estupenda interfaz web si no podemos usarla desde el navegador de otros sistemas en red. Para permitir esto, modificaremos la configuración del alias de Apache de phpPgAdmin:

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

Buscaremos la directiva Require:

...
Require local
...

Viendo su valor actual entendemos el problema, así que desactivaremos esta directiva insertando un carácter # en el inicio de línea:

...
#Require local
...

Guardados los cambios y los aplicaremos recargando la configuración del servicio Apache:

~$ sudo systemctl reload apache2

Ahora ya podremos acceder desde la red a phpPgAdmin:

como instalar phppgadmin en debian 9 stretch

Para acceder al servicio PostgreSQL de nuestra máquina local seguiremos cualquiera de los enlaces «Servidores» a la vista, que nos llevarán a una página con el listado de servidores PotgreSQL disponibles (que también puedes ver en el panel lateral):

instalar phppgadmin en debian 9 stretch

Inicialmente, el único servicio PostgreSQL disponible a través de phpPgAdmin es el servicio local de la propia máquina Debian 9 en la que estamos realizando esta instalación y configuración, por lo que pulsaremos sobre el enlace para conectar y se nos presentará una página de login o inicio de sesión:

instalacion de phppgadmin en debian 9 stretch

Introducimos las credenciales de nuestro rol de PostgreSQL y accederemos a la interfaz de administración de phpPgAdmin:

phppgadmin en debian 9 stretch

Ya puedes empezar a trabajar con tu rol, haciendo todas las tareas que permitan sus privilegios.

Cómo acceder con el rol postgres a phpPgAdmin en Debian 9

Hemos dejado claro que igual que con otros servicios no se debe acceder nunca remotamente con el superusuario por defecto (postgres en el caso de PostgreSQL). Si aun así estás empeñado en hacerlo (supongo que tendrás un motivo), aquí van los pasos necesarios.

En primer lugar crearemos una contraseña para el rol postgres:

~$ sudo -u postgres psql
psql (9.6.15)
Digite «help» para obtener ayuda.

postgres=# \password
Ingrese la nueva contraseña:
Ingrésela nuevamente:
postgres=# \q
~$

A continuación activa la autenticación local del rol postgres mediante contraseña en el archivo pg_hba.conf:

~$ sudo nano /etc/postgresql/9.6/main/pg_hba.conf

Esta es la línea que debes cambiar:

...
local   all             postgres                                peer
...

Cambiando el valor peer por md5:

...
local   all             postgres                                md5
...

Recarga la configuración de PostgreSQL:

~$ sudo systemctl reload postgresql

Verifica que ahora necesitas suministrar la contraseña para iniciar sesión con el rol postgres:

~$ sudo -u postgres psql
Contraseña:
psql (9.6.15)
Digite «help» para obtener ayuda.

postgres=#

Edita el archivo config.php.inc: de phpPgAdmin:

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

Busca la variable $conf[‘extra_login_security’]:

...
// If extra login security is true, then logins via phpPgAdmin with no
// password or certain usernames (pgsql, postgres, root, administrator)
// will be denied. Only set this false once you have read the FAQ and
// understand how to change PostgreSQL's pg_hba.conf to enable
// passworded local connections.
$conf['extra_login_security'] = true;
...

Y cambia su valor a false:

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

Una vez guardados los cambios, la configuración se aplica de forma inmediata, no es necesario reiniciar ningún servicio, puedes acceder de inmediato.

Conclusión

Ahora que sabes cómo instalar phpPgAdmin en Debian 9 Stretch tienes un método más cómodo y visual para trabajar con PostgreSQL, que seguramente acelerará tu ritmo de trabajo con este sistema de bases de datos. Recuerda que es muy importante trabajar con la conexión cifrada, con protocolo HTTPS, si accedes remotamente.

En caso de dudas, preguntas, tal vez alguna sugerencia o corrección, puedes dejar un comentario.

Ah, y si esta breve guía de instalación de phpPgAdmin en Debian 9 Strech ha cubierto tus expectativas, ¡puedes invitarme a un café si te apetece!

 

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

Deja un comentario

Cerrar menú

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies