Hoy vamos a aprender a instalar PostgreSQL en CentOS 7 y lo vamos a compilar manualmente. Este tutorial lo he realizado en una maquina virtual CentOS 7 y usando siempre root. Vamos a instalar la última versión estable, la v9.5.0. Como siempre vamos a usar SSH para conectarnos al servidor, y si habéis estado atentos al blog, os digo que usaré la misma maquina que usé en su día para hacer la entrada Instalación de un LAMP en CentOS 7.0 [Linux Apache MariaDB PHP]. ¡A trabajar!
Descargar PostgreSQL v9.5.0
Una vez nos hemos conectado a la maquina virtual (que puede ser la de la entrada anterior o una maquina virtual virgen) lo primero que haremos será instalar el paquete FTP para conectarnos al FTP de PostgreSQL:
# yum install ftp
Y nos conectaremos:
[postgres@localhost ~]$ ftp ftp> open ftp.postgresql.org Trying 87.238.57.227... Connected to ftp.postgresql.org (87.238.57.227).
Nos pedirá usuario y contraseña, usaremos anonymous y contraseña en blanco. Una vez conectados al FTP, nos moveremos al siguiente directorio:
ftp> cd /pub/source/v9.5.0 250 Directory successfully changed.
Y descargamos el paquete comprimido:
ftp> get postgresql-9.5.0.tar.gz local: postgresql-9.5.0.tar.gz remote: postgresql-9.5.0.tar.gz 227 Entering Passive Mode (217,196,149,55,223,107). 150 Opening BINARY mode data connection for postgresql-9.5.0.tar.gz (22755540 bytes). 226 Transfer complete. 22755540 bytes received in 7,4 secs (3074,32 Kbytes/sec) ftp> bye 221 Goodbye.
Instalación de PostgreSQL desde las fuentes
Lo primero que tendremos que hacer es extraer el contenido del fichero que nos hemos descargado anteriormente del FTP:
# tar zxf postgresql-9.5.0.tar.gz
Después instalaremos unas dependencias necesarias para instalar PostgreSQL:
# yum install gcc readline-devel zlib-debel
Una vez instaladas, entramos dentro de la carpeta de postgresql y compilamos las fuentes con:
# cd postgre* # ./configure # gmake # gmake install
Una vez acabado:
Verificar directorios de PostgreSQL
Después de la instalación, nos aseguraremos de que los directorios bin, include, lib y share se han creado correctamente dentro del directorio /usr/local/pgsql como se muestra a continuación:
[postgres@localhost ~]$ ls -l /usr/local/pgsql/ total 20 drwxr-xr-x 2 root root 4096 8 mar 21:33 bin drwx------ 19 postgres root 4096 8 mar 21:36 data drwxr-xr-x 6 root root 4096 8 mar 21:33 include drwxr-xr-x 4 root root 4096 8 mar 21:33 lib drwxr-xr-x 6 root root 4096 8 mar 21:33 share
Configuración PostgreSQL
A continuación explicaremos como tenemos que configurar PostgreSQL en CentOS 7. Tendremos que crear un usuario, crear un directorio de datos, iniciar el servidor y para acabar iniciar una base de datos con PostgreSQL.
Crear usuario PostgreSQL
Crearemos un usuario local llamado postgres:
# adduser postgres
Le configuraremos una contraseña al usuario:
# passwd postgres Changing password for user postgres. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
Crear directorio data
Crearemos el directorio data y añadiremos como propietario al usuario creado anteriormente y pondremos los permisos correspondientes:
# mkdir /usr/local/pgsql/data # chown postgres /usr/local/pgsql/data # chmod 755 /usr/local/pgsql/data
Iniciar el servidor
Accederemos al usuario postgres:
# su - postgres
Ahora iniciaremos PostgreSQL con el directorio data creado anteriormente:
# /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
Una vez ejecutado esto, comprobaremos que se han creado los ficheros dentro del directorio data:
[postgres@localhost ~]$ ls /usr/local/pgsql/data/ base pg_commit_ts pg_ident.conf pg_notify pg_snapshots pg_subtrans PG_VERSION postgresql.conf global pg_dynshmem pg_logical pg_replslot pg_stat pg_tblspc pg_xlog postmaster.opts pg_clog pg_hba.conf pg_multixact pg_serial pg_stat_tmp pg_twophase postgresql.auto.conf postmaster.pid [postgres@localhost ~]$
Iniciar base de datos con PostgreSLQ
Iniciamos con el usuario postgres:
# su - postgres
Una vez iniciado, ejecutamos el siguiente comando en segundo plano:
# /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
Crear base de datos
Para crear una base de datos ejecutamos:
# /usr/local/pgsql/bin/createdb test
Y podremos acceder dentro de la base de datos test haciendo:
[postgres@localhost ~]$ /usr/local/pgsql/bin/psql test psql (9.5.0) Type "help" for help. test=#
Esto puede ser algo complicado, así, que optamos por la opción de instalar una aplicación web para administrar nuestras bases de datos.
Instalación de phpPgAdmin
Para instalar phpPgAdmin, primero tenemos que tener instalado los repositorios epel-release, si ya los tienes instalado salta este paso, si no, instálalos:
# yum install epel-release
Actualizamos repositorios:
# yum update
Instalamos phpPgAdmin, y en caso de no tener un servidor web instalado, también instalamos Apache:
# yum install phpPgAdmin httpd
Configuración básica de phpPgAdmin
Editamos el fichero que se ha creado en el directorio de configuración de HTTPD, /etc/httpd/conf.d/phpPgAdmin.conf y lo dejaremos como se muestra a continuación:
Alias /phpPgAdmin /usr/share/phpPgAdmin <Location /phpPgAdmin> <IfModule mod_authz_core.c> # Apache 2.4 Require all granted #Require host example.com </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order deny,allow Allow from all # Allow from .example.com </IfModule> </Location>
Luego editamos el fichero de configuración de phpPgAdmin en /etc/phpPgAdmin/config.inc.php y buscamos las siguientes líneas y hacemos las modificaciones indicadas:
$conf['servers'][0]['host'] = '';
Y lo cambiamos por:
$conf['servers'][0]['host'] = 'localhost';
Buscamos la siguiente línea:
$conf['extra_login_security'] = true;
Y lo cambiamos por:
$conf['extra_login_security'] = false;
Buscamos la siguiente línea:
$conf['owned_only'] = false;
Y la cambiamos por:
$conf['owned_only'] = true;
Una vez realizadas dichas modificaciones, reiniciamos el servicio web y postgreSQL:
# systemctl restart httpd # su - postgres # /usr/local/pgsql/bin/pg_ctl restart
Ahora vamos al navegador y en la barra de navegación ponemos: IP_Servidor/phpPgAdmin/:
Iniciamos sesión haciendo clic en Servers > Localhost (el usuario y contraseña son las credenciales del usuario local postgres que hemos configurado durante la el proceso). Una vez iniciamos veremos que tenemos la base de datos que hemos creado anteriormente para probar que funciona:
Comentarios