Hoy me dieron la tarea de instalar Postgres en el server del proyecto, el cual tiene instalado el Ubuntu 9.10 Server. Instalar postgres es muy fácil, donde se complica la cosa un poquito es para configurarlo. No les voy a negar que tuve que buscar en unos manuales y en Google debido a que prácticamente el único Sistema gestor de Bases de Datos con el que he trabajado es MySQL.

La instalación es muy sencilla:

sudo apt-get install postgresql

En este caso se instala la versión más reciente de Postgres en el repositorio de Ubuntu, la 8.4, pero en mi caso necesitaba la 8.3, esto lo logramos cambiando un poquito el comando anterior por:

sudo apt-get install postgresql-8.3

Pero me topé con algunos inconvenientes, para los cuales tuve que hacer algunos artificios en la configuración del Postgres.

Por ejemplo, durante la instalación no pide nombre de usuario y contraseña para el usuario con privilegios de administración, algo que MySql si hace por defecto, ¿ y ahora, cómo me conecto al postgres?

Lo primero que debemos hacer es crear un usuario con permiso de superadministrador, es sencillo:

  1. Primero nos autenticamos como root

sudo su

2. Pasamos a ser el usuario postgres, el cual se crea cuando instalamos postgres

su postgres

3. Creamos el usuario nuevo con permisos de super administrador

createuser -s -P nombre_usuario

El otro inconveniente que encontré fue que sólo me podía autenticar localmente desde la PC donde instalé el postgres y necesitaba que desde cualquier PC de la misma subred del lab se puedieran autenticar. Solución:

Primero debemos decirle que no escuche peticiones solamente desde el localhost, para eso editamos el fichero ubicado en /etc/postgresql/8.3/main/postgresql.conf

1. sudo nano /etc/postgresql/8.3/main/postgresql.conf
Una vez que abrimos el archivo ubicamos la siguiente línea:

#listen_addresses = ‘localhost’

Sustituimos esa línea por la siguiente:

listen_addresses = ‘*’

Asi escuchará peticiones desde las direcciones permitidas en el fichero pg_hba.conf

2. Ahora debemos decirle en el fichero pg_hba.conf cuales son las direcciones ip autorizadas a conectarse al server

sudo nano /etc/postgresql/8.3/main/pg_hba.conf

Si queremos que escuche desde una subred entera, agregamos la siguiente línea al final

host    all     all     10.35.12.0/24   md5

Ahí estamos diciendo que para todas las bases de datos(primer all), todos los usuarios que intenten loguearse(segundo all) desde los Ip 10.35.12.1 al 10.35.12.254 se pueden loguear y se usará md5 .

Si en vez de la subred solamenmte nos interesara que se logueen desde el IP 10.35.12.26:

host all all 10.35.12.26 255.255.255.255 trust

Y si quisiéramos que desde cualquier PC de la UCI se  logueen :

host all all 0.0.0.0 0.0.0.0 md5
Luego reiniciamos el postgres para que coja la configuración que le hemos dado:
sudo /etc/init.d/postgresql-8.3 restart.

Bueno, hasta aquí sesolví lo que necesitaba,opcionalmente si quieres administrar el server de Postgres desde la web puedes instalar el paquete phppgadmin

sudo apt-get install phppgadmin

Luego para acceder desde la web lo haces con http://ip_servidor/phppgadmin , debes haber instalado el Apache para poder acceder por la web.
Nota: Si al intentar acceder desde la web el server nos dice que no encuentra la direccion /phppgadmin debemos decirle al Apache que cargue el fichero de configuración del phppgadmin, para eso:
Editamos el fichero de configuración del Apache
sudo nano /etc/apache2/apache/apache2.conf
Y le decimos que incluya al fichero de configuración del phppgadmin, para eso le añadimos la siguiente línea al final:
Include /etc/phppgadmin/apache.conf
y reiniciamos el Apache:
sudo /etc/init.d/apache2 restart

También existe un cliente para Postgres llamado PgAdmin, para instalarlo debes instalar el paquete pgadmin3 en la PC desde la cual deseas administrar el server.

Si en el mismo server tendrás una aplicación programada con php y desde la misma necesitas acceder al postgres, debes instalar los siguientes paquetes:

php5, php5-pgsql(soporte de php para postgres), apache2(servidor web Apache), para ello ejecutas el siguiente comando:

sudo apt-get install php5  php5-pgsql apache2

Espero que les ayude.