miércoles, 30 de noviembre de 2016

Configurar phppgAdmin para conectar con PostgreSQL en Fedora 25



phpPgAdmin es una aplicación web que provee una manera conveniente a los usuarios para crear bases de datos, tablas, alterarlas y consultar sus datos usando el lenguaje estándar SQL.

phpPgAdmin estuvo basado en phpMyAdmin, pero hoy día ya no comparte código con él; incluso provee las mismas funcionalidades y más a los usuarios del servidor de base de datos PostgreSQL.

Es muy útil cuando pgAdmin III no sea compatible con la versión que se tenga de postgresql, por ejemplo pgadmin III hasta hoy 30 de noviembre 2016, aún no tiene soporte como tal para postgresql 9.6, por ende este tipo de opciones son una alternativa.

La instalación y configuración para fedora 25 con postgresql 9.6 es la que veremos a continuación. Sin embargo, estos mismos pasos se pueden aplicar para otras versiones.

Ahora, aquí se da por entendido que postgresql ya está instalado y funcionando previamente.

Instalar phpPgAdmin y httpd.
sudo dnf -y install phpPgAdmin httpd
Configurar archivo:
su -c "gedit /etc/httpd/conf.d/phpPgAdmin.conf"
El archivo debe quedar de la siguiente manera, en caso de que haya líneas de más, comentarlas con #.

#
# This configuration file maps the phpPgAdmin directory into the URL space.
# By default this application is only accessible from the local host.
#

Alias /phpPgAdmin /usr/share/phpPgAdmin

<Location /phpPgAdmin>
    <IfModule mod_authz_core.c>
        # Apache 2.4
        Require all granted
        #Require local
        #Require host example.com
    </IfModule>
    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order deny,allow
        Allow from all
        Allow from 127.0.0.1
        Allow from ::1
        # Allow from .example.com
    </IfModule>
</Location>

Iniciar o Reiniciar el servicios de apache:
sudo service httpd start

Configurar el archivo /etc/phpPgAdmin/config.inc.php para phpPgAdmin.
su -c "gedit /etc/phpPgAdmin/config.inc.php"
Buscar las siguientes líneas y modificarlas de tal modo que queden de la siguiente manera:
[...]
# esta línea debe quedar así:
$conf['servers'][0]['host'] = 'localhost';


[...]
# esta línea debe quedar así
$conf['extra_login_security'] = false;


[...]
La siguiente línea debe quedar así
$conf['owned_only'] = true;

Una vez finalizada la configuración del archivo, iniciar o reiniciar los servicios de postgresql, en este ejemplo se usó postgresql 9.6, por ente el comando es el siguiente, adecuarlo de acuerdo a la versión de postgresql que estén usando.

sudo systemctl start postgresql-9.6.service

Ahora, ir al http://localhost/phpPgAdmin y mostrará la siguiente ventana:


Ir a la opción que dice <Página web de phpPgAdmin>


Ingresar el usuario y la contraseña que usan para postgresql, si les llegara a marcar error de inicio de sesión, a pesar de que está bien, es debido a que Selinux requiere una instrucción para permitir el acceso. Del tal modo que eso se soluciona con la siguiente instrucción.

sudo setsebool -P httpd_can_network_connect_db 1



Ingresar nuevamente con usuario y contraseña, y listo, ahora tendrán la ventana de administración del servidor de postgresql desde el navegador.




9 comentarios:

  1. Tengo Fedora 24; instalé PostgreSQL 9.6 y realicé todo este proceso sin ningún problema hasta que navegué a "http://localhost/phpPgAdmin", donde obtuve el error: "File not found.". ¿A qué se puede deber el problema? ¿Es necesario tener Fedora 25 para que todo funcione?

    ResponderEliminar
    Respuestas
    1. ¿instalaste todo? el servidor local está ejecutándose? a mi pasó lo mismo, ya que tenía XAMPP iniciado en el mismo puerto. LO que hice fue, cambiar de puerto XAMPP al 84. O detener ese proceso momentaneamente.

      Otro posible error, es que no hayas configurado la ip de escucha, o el puerto.

      instalaste postgresql 9.6 desde repositorios externos supongo... o utilizando bitnami?

      Eliminar
    2. ¿Cuáles son los puertos que necesito revisar?

      Eliminar
    3. Para evitar que desconfigures xampp, en caso de que lo tengas, mejor detén el servicio,en lo que ocupas phppgadmin, hasta ahora, yo no he podido configurar ambos para que funcionen al mismo tiempo.

      Pero si lo quiere intentar, entonces, abre la ventana de administración de xampp, se accede a él a través de sudo /opt/lampp/manager-linux-x64.run y se tienen que cambiar el puerto, 443 y el puerto 80.

      aquí un poco de información al especto:

      https://fedoraproject.org/wiki/Apache_HTTP_Server

      Eliminar
    4. ¿Cómo puedo saber quiénes tienen los puertos y cómo puedo cambiarlos?

      Eliminar
    5. revisa el link que te pasé, y guíate por las rutas de los archivos que se muestran ahí.

      para conocer puertos, revisa esto, https://linuxgx.blogspot.mx/2014/10/como-saber-los-puertos-abiertos-o.html

      Pero como te digo, si no has configurado estos archivos antes, o los puertos de xampp, mejor deten el servicio de xampp mientras utilices phppgadmin, para evitar que que se pierda la configuración por defecto de xammp, ya que esto podría hacer que deje de funcionar correctamente...

      Eliminar
    6. Este comentario ha sido eliminado por el autor.

      Eliminar
    7. Ejecuté el comando netstat, me dice que ambos puertos los tiene el proceso httpd y que están en estado LISTEN. Además no tengo instalado el xammp.

      Eliminar
    8. entonces, no tienes por qué andar cambiando puertos.

      el error entonces, está en tus archivos de configuración. revisa eso.

      Eliminar