Está en la página 1de 28

1

Proyecto de
Documentacin de
MapServer en Espaol
Como compilar MapServer y
PostGIS en Linux y no morir
en el intento Hacerlo

Autor: Ren F. Viancos S.
Revisin 0.1
Email: rviancos@gmail.com

Introduccin

Para realizar esta titnica tarea, nos basaremos en la documentacin existente en
el sitio Web de MapServer, especficamente los documentos "Verbose Linux Install" y
Unix Compilation and Instalation.

Nuestra instalacin esta enfocada a un sistema productivo, para ello utilizaremos
un Sistema Operativo Linux, de la Lnea Enterprise, llamado CentOS, el cual es un Clon
OpenSource de las soluciones Linux empresariales de RedHat, y 100% compatible con
estas, con una gran ventaja, costo cero.

Tambin cubriremos la integracin con unixODBC (para PHP y MapServer), para
poder crear Layers Virtuales OVF, y FreeTDS, para poder mapear datos (x,y) de una Base
de Datos No Espacial, por ejemplo, montada sobre el popular M$-SQLServer, dando por
aadidura acceso directo a nuestro PHP on Linux hacia M$-SQLServer, un mal
necesario .

La instalacin del Sistema Operativo escapa a los objetivos de este documento,
pero pueden dirigirse al sitio de www.CentOS.org y obtener ms informacin.

En la instalacin del S.O. debemos tener las siguientes consideraciones:

Debe ser una instalacin personalizada, para poder elegir que paquetes de
software se instalan.
No instalar Apache (Servidor Web).
No instalar PHP.
No instalar PostgreSQL.
No instalar MySQL
Instalar todas las libreras de desarrollo (paquetes xxxxx-devel.rpm) para no tener
problemas en la compilacin. (en revisiones futuras espero tener las libreras
especificas requeridas, o espero el aporte de algn usuario)
Instalar los compiladores de C y C++, y todas sus dependencias.
cualquier otro tema lo arreglamos en el camino. (o sea, futuras revisiones de este
documento)

2



Compilacin de Apache Web Server

Previ o a la Compi laci n

Bajamos los fuentes desde http://httpd.apache.org y en nuestro caso instalaremos la
versin 2.2.3, descargamos el archivo httpd-2.2.3.tar.gz

Descomprimimos el archivo httpd-2.2.3.tar.gz con el siguiente comando:
[root@localhost ~]# tar -xzf httpd-2.2.3.tar.gz -C /usr/local

Entramos en el directorio /usr/local/httpd-2.2.3 con el comando:
[root@localhost ~]# cd /usr/local/httpd-2.2.3

Estos pasos se muestran en la Figura 1.









Creamos un archivo de compilacin llamado compile.sh (con vi o el editor que
gusten), el cual contendr el texto del Script 1:

./configure \
--prefix=/usr/local/apache2 \
--enable-deflate \
--enable-info \
--enable-mime-magic \
--enable-rewrite \
--enable-so \
--enable-speling \
--enable-ssl \
--enable-unique_id \
--enable-usertrack \
--with-mpm=prefork \
--with-apxs2
Script 1: contenido de compile.sh para Apache

Guardamos el archivo compile.sh (ESC, :x en VI ) y salimos del editor.

Cambiamos sus atributos para hacerlo ejecutable:
[root@localhost httpd.2.2.3]# chmod 755 compile.sh

Ejecutamos el archivo con el script de compilacin:
[root@localhost httpd.2.2.3]# ./compile.sh


Figura 1

3



Al final del proceso de configuracin de la compilacin deberamos ver algo similar a lo
que se muestra en la Figura 3:



















Compi laci n

Para construir los archivos ejecutables de Apache, ejecutamos make
[root@localhost httpd.2.2.3]# make

y deberamos ver secuencias de texto como se muestra en la Figura 4.





















Finalmente ejecutamos :
[root@localhost httpd.2.2.3]# make install

Obteniendo secuencias de texto que se aprecian en la Figura 5.



Figura 3

Figura 4

4
























NOTA: Si tus secuencias de texto terminan como las que se aprecian en las capturas de
pantalla, vamos por buen camino.

Pr uebas de Funci onami ento
Para realizar esta tarea, debemos ejecutar el siguiente comando:
[root@localhost httpd.2.2.3]# /usr/local/apache2/bin/apachectl
start

Luego ejecutamos nuestro navegador de Internet donde ponemos la direccin IP
de nuestro servidor, en este caso la url es: http://192.168.92.128, como se aprecia
en la Figura 6.














Figura 5
Figura 6

5



Confi gur aci n del ar ranque automti co de Apache

Para hacer que nuestro Apache personalizado se inicie junto con los dems servicios
del sistema operativo, debemos realizar los siguientes pasos:

Copiar el script de control de Apache al directorio /etc/init.d :
[root@localhost ~]# cp /usr/local/apache2/bin/apachectl
/etc/init.d/

Despus de copiar este archivo, procedemos a editarlo:
[root@localhost ~]# vi /etc/init.d/apachectl

Agregamos las siguientes lneas en azul:
#!/bin/sh
#
# chkconfig: - 85 15
# description: Apache is a Web server used to serve HTML and CGI.
# processname: httpd
# pidfile: /usr/local/apache2/logs/httpd.pid
#
# Copyright 2000 - 2005 The Apache Software Foundation or its
licensors, as
# applicable.
.
.
.

Luego registramos el script como servicio del sistema:
[root@localhost ~]# /sbin/chkconfig --add apachectl


Compilacin de PostgreSQL

Pr evi o a la compi laci n
Para instalar este gran ORDBMS OpenSource, y porque no decirlo, el mejor,
debemos descargar el cdigo fuente desde su sitio Web, http://www.postgresql.org y
realizar los siguientes pasos:

Bajar y descomprimir el archivo postgresql-8.2.1.tar.gz en el directorio
/usr/local con el siguiente comando:
[root@localhost ~]# tar xzf postgresql-8.2.1.tar.gz C
/usr/local/

Luego debemos entrar en el directorio /usr/local/postgresql-8.2.1
[root@localhost postgresql-8.2.1]# cd /usr/local/postgresql-8.2.1

Y crear el archivo compile.sh :
[root@localhost postgresql-8.2.1]# vi compile.sh

Estos pasos se ilustran en la Figura 7.

6














Copiar y pegar la secuencia de instrucciones que se muestran en el Script 2:
LDFLAGS=-lstdc++ ./configure \
--prefix=/usr/local/pgsql \
--with-perl \
--with-python \
--with-krb5 \
--with-openssl
Script 2: contenido de compile.sh para PostgreSQL

Luego hacemos ejecutable el script de compilacin:
[root@localhost postgresql-8.2.1]# chmod 755 compile.sh

Para configurar la compilacin de PostgreSQL debemos ejecutar el script de
compilacin:
[root@localhost postgresql-8.2.1]# ./compile.sh

Si todo va bien, veremos una secuencia de texto como la que vemos en la Figura 8.





















Compi laci n

El siguiente paso es ejecutar make:
[root@localhost postgresql-8.2.1]# make


Figura 7

Figura 8

7



El proceso arrojar una secuencia de texto como la que muestra la Figura 9.























Finalmente ejecutamos el comando make install:
[root@localhost postgresql-8.2.1]# make install

Que nos entrega la secuencia ilustrada en la Figura 10.























Post Compi laci n y Confi gur aci n de PostgreSQL

Una vez que los pasos anteriores han sido ejecutados sin problemas, la base de
datos necesita ser configurada con un usuario que sea su dueo, es nuestro caso
crearemos el usuario postgres.


Figura 9
Figura 10

8



Para realizar lo sealado debemos ejecutar la siguiente secuencia de
instrucciones:

[root@localhost ~]# /usr/sbin/adduser postgres
[root@localhost ~]# mkdir /usr/local/pgsql/data
[root@localhost ~]# chown postgres /usr/local/pgsql/data/
[root@localhost ~]# su postgres
[postgres@localhost ~]# /usr/local/pgsql/bin/initdb -D
/usr/local/pgsql/data/

La secuencia de instrucciones y su resultado satisfactorio se muestran en la Figura 11.
























Pr uebas de I ni ci o y Funci onami ento
Estas se llevan a cabo con la siguiente secuencia de comandos: (como casi todo en
aqu ;-)
[postgres@localhost ~]# /usr/local/pgsql/bin/pg_ctl -D
/usr/local/pgsql/data/ -l /usr/local/pgsql/data/logfile
start
Su resultado se muestra en la Figura 12.






[postgres@localhost ~]# /usr/local/pgsql/bin/createdb test
Su resultado se muestra en la Figura 13.







Figura 11

Figura 12

Figura 13

9



[postgres@localhost ~]# /usr/local/pgsql/bin/psql test
Su resultado se muestra en la Figura 14.









Luego debemos ejecutar el comando:
[postgres@localhost ~]# exit

Para volver al sper usuario root

Confi gur aci n del ar r anque automti co de Postgr eSQL

Para hacer que el servicio de PostgreSQL se ejecute automticamente al iniciar el
Sistema Operativo, debemos crear un script de inicio y control, como se muestra a
continuacin.

Como root, crear el archivo /etc/init.d/postgresql (o fichero, dependiendo de la
versin de espaol que estis utilizando , para lo cual ejecutamos el comando:
[root@localhost postgresql-8.2.1]# vi /etc/init.d/postgresql

Como se muestra en la Figura 15.







Y agregamos el texto del Script 3, se recomienda copiar y pegar (siguiente pgina).


Luego hacemos nuestro script ejecutable y lo agregamos como servicio del
sistema:
[root@localhost postgresql-8.2.1]# chmod 700
/etc/init.d/postgresql

[root@localhost postgresql-8.2.1]# /sbin/chkconfig --add
postgresql

Como se muestra en la Figura 16.






Figura 14

Figura 15

Figura 16

10



#!/bin/sh
# postgresql This is the init script for starting up the
# PostgreSQL server

# chkconfig: - 85 15
# description: Starts and stops the PostgreSQL backend daemon that
handles all database requests.
# processname: postmaster
# pidfile: /usr/local/pgsql/data/postmaster.pid
#

# Source function library.
. /etc/rc.d/init.d/functions

# Get config.
. /etc/sysconfig/network

# Check that networking is up.
# Pretty much need it for postmaster.
[ ${NETWORKING} = "no" ] && exit 0

[ -f /usr/local/pgsql/bin/postmaster ] || exit 0

# See how we were called.
case "$1" in
start)
pid=`pidof postmaster`
if [ $pid ]
then
echo "Postmaster already running."
else
echo -n "Starting postgresql service: "
su -l postgres -c '/usr/local/pgsql/bin/pg_ctl -D
/usr/local/pgsql/data/ -l /usr/local/pgsql/data/logfile start'
sleep 1
echo
exit
fi
;;

stop)
echo -n "Stopping postgresql service: "
killproc postmaster
sleep 2
rm -f /usr/local/pgsql/data/postmaster.pid
echo
;;

restart)
$0 stop
$0 start
;;

*)
echo "Usage: postgresql {start|stop|restart}"
exit 1
esac

exit 0


11



Compilacin de PHP con unixODBC y FreeTDS




Previ o a la Compi laci n
Para instalar el soporte ODBC para Linux, as como la conexin (DSN) para M$
SQLServer desde PHP y MapServer, debemos instalar los paquetes unixODBC y
unixODBC-devel, instalables directo desde la consola, con el siguiente comando:
[root@localhost ~]# yum install unixODBC unixODBC-devel

El proceso de esta instalacin se muestra en la Figura 17.



























El siguiente paso es instalar FreeTDS, librera que nos provee acceso a los
Servidores M$-SQLServer y Sybase, por medio de la implementacin del
protocolo Tabular DataStream. Los paquetes no estn disponibles para ser
instalados con la aplicacin yum, por lo que debern descargarse e instalarse
manualmente utilizando la herramienta rpm.

Los paquetes los puedes descargar desde www.rmpfind.net:
freetds: http://www.rpmfind.net/linux/RPM/dag/redhat/el4/i386/freetds-0.64-
1.el4.rf.i386.html
freetds-devel: http://fr.rpmfind.net/linux/RPM/dag/redhat/el4/i386/freetds-
devel-0.64-1.el4.rf.i386.html




Figura 17

12



Estos paquetes tambin los pueden buscar y bajar desde http://rpm.pbone.net

Una vez descargados, procedemos a instalar los paquetes:
[root@localhost ~]# rpm -hiv freetds-0.64-1.el4.rf.i386.rpm
[root@localhost ~]# rpm -hiv freetds-devel-0.64-1.el4.rf.i386.rpm

Este proceso se muestra en la Figura 18.










Para compilar e instalar PHP, debemos descargar el cdigo fuente desde su sitio
Web http://www.php.net. La ltima versin disponible al momento de realizar
este documento es la 5.2.1

En la seccin Downloads (banner principal) procedemos a descargar el archivo
comprimido con bZip2 (menor tamao), php-5.2.1.tar.bz2

Descomprimir el archivo php-5.2.1.tar.bz2:
[root@localhost php-5.2.1]# tar xjf php-5.2.1.tar.bz2 C
/usr/local/

Luego ir al directorio /usr/local/php-5.2.1
[root@localhost php-5.2.1]# cd /usr/local/php-5.2.1

Crear un script de compilacin llamado compile.sh
[root@localhost php-5.2.1]# vi compile.sh

Y pegar en su interior la secuencia del Script 4.
./configure \
--prefix=/usr/local/apache2/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--disable-cgi \
--with-config-file-path=/usr/local/apache2/php \
--with-openssl \
--with-kerberos \
--with-zlib \
--with-bz2 \
--with-curl \
--enable-dbase \
--with-gd \
--with-pgsql \
--with-xsl \
--with-gettext \
--with-regex=system \
--with-unixODBC=/usr/ \
--with-mssql
Script 4: compile.sh para configurar la compilacin de PHP



Figura 18

13



Cambiamos los atributos de compile.sh para hacerlo ejecutable:
[root@localhost php-5.2.1]# chmod 755 compile.sh

Ejecutamos compile.sh
[root@localhost php-5.2.1]# ./compile.sh

La secuencia de texto de la ejecucin de compile.sh se muestra en la Figura 19.



















Luego ejecutamos make y make install obteniendo las secuencias de texto en las
Figuras 20 y 21.
[root@localhost php-5.2.1]# make

[root@localhost php-5.2.1]# make install



























Figura 19

Figura 20

Figura 21
Nota: si en la compilacin
aparece el siguiente error u otro
similar:

I f conf i gur e f ai l s t r y - -
wi t h- j peg- di r =<DI R>
conf i gur e: er r or :
l i bpng. ( a| so) not f ound.

Ejecutar como root (para
resolver dependencia):

yumi nst al l l i bpng- devel

14



Confi guraci n de PHP (Post-Compi laci n)

PHP requiere la presencia de su archivo de configuracin (php.ini), el cual no se
crea por defecto durante el proceso de compilacin, pero la distribucin viene
acompaada de un archivo de ejemplo ubicado en el directorio de los fuentes de PHP en
nuestro sistema.

Debemos copiar y renombrar este archivo en el directorio
/usr/local/apache2/php/ tal como se muestra a continuacin:

[root@localhost php-5.2.1]# cp php.ini-recommended
/usr/local/apache2/php/php.ini

Editamos el archivo de configuracin php.ini para varias las configuraciones
respecto al despliegue de warnings, errores, etc., para depurar, para entregar
mayores recursos de memoria y tiempo de procesamiento a PHP y sealar el
directorio de las extensiones, para colocar, posteriormente, nuestro modulo de
PHP/MapScript.
[root@localhost php-5.2.1]# vi /usr/local/apache2/php/php.ini

Cerca de la lnea 300:

max_execution_time = 150 ; Maximum execution time of each
script, in seconds
max_input_time = 300 ; Maximum amount of time each script may
spend parsing request data
memory_limit = 256M ; Maximum amount of memory a script may
consume (128MB)

Cerca de la lnea 349:

error_reporting = E_ALL & ~E_NOTICE

Cerca de la lnea 356:

display_errors = On

Cerca de la lnea 453, por compatibilidad con aplicaciones antiguas:

register_long_arrays = On

Cerca de la lnea 520, definimos el directorio de extensiones:

extension_dir = "/usr/local/apache2/php/ext/"

Guardamos el archivo php.ini reconfigurado

Creamos el directorio de las extensiones de PHP:

[root@localhost php-5.2.1]# mkdir /usr/local/apache2/php/ext/


Tambin debemos editar archivo de configuracin de Apache para agregar y/o
verificar que las siguientes lneas marcadas en azul se encuentren en l.


15



[root@localhost php-5.2.1]# vi /usr/local/apache2/conf/httpd.conf

Cerca de la lnea 53:

# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule php5_module modules/libphp5.so
#

Cerca de la lnea 165:

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

Cerca de la lnea 307:

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

Luego reiniciamos el servicio de Apache (reiniciamos el Servidor Web) para que
vuelva a leer la configuracin que le hemos agregado en php.ini y
httpd.conf.

[root@localhost php-5.2.1]# /usr/local/apache2/bin/apachectl
restart


Pr uebas de Funci onami ento de PHP

Para ver si nuestro PHP personalizado trabaja adecuadamente, debemos realizar
varias tareas:

Crear y editar un archivo llamado index.php en la ruta
/usr/local/apache2/htdocs/

[root@localhost ~]# vi /usr/local/apache2/htdocs/index.php

Con el siguiente contenido:

<?php
phpinfo();
?>
Cdigo a la usanza de DREAMWEAVER por el resaltado de sintaxis

Luego abrimos el navegador de Internet, y en mi caso, coloco la IP de mi servidor
de desarrollo, http://192.168.92.132, y deberamos ver la ilustracin de la Figura
22.








16






















Compilacin de PostGIS






Pr evi o a la I nstalaci n
Instalacin de Proj4

PostGIS y MapServer utilizan la librera de protecciones cartogrficas Proj4. Esta
librera se utiliza para poder realizar reproyecciones y Cambio de Datum o Sistema de
Coordenadas (Si leyeron bien, CAMBIO DE DATUM pronto en otro documento)
dentro del motor de datos.

Debemos descargar la ltima versin del Cdigo Fuente desde la direccin Web
http://www.remotesensing.org/proj/

La URL de la Versin 4.5.0 de proj es ftp://ftp.remotesensing.org/proj/proj-4.5.0.tar.gz

Descomprimimos el archivo proj-4.5.0.tar.gz
[root@localhost ~]# tar -xzf proj-4.5.0.tar.gz -C /usr/local

Entramos en el directorio /usr/local/proj-4.5.0
[root@localhost ~]# cd /usr/local/proj-4.5.0

Ejecutamos el Script de configuracin de la compilacin
[root@localhost proj-4.5.0]# ./configure

Las secuencias de texto de este proceso se muestran en la Figura 23





Figura 22



17



















Luego ejecutamos make y make install
[root@localhost proj-4.5.0]# make

[root@localhost proj-4.5.0]# make install

Las secuencias de texto se muestran en la Figuras 24 y 25.

































Figura 23

Figura 24

Figura 25

18



Instalacin de GEOS

PostGIS y MapServer tambin emplean la librera geomtrica GEOS, empleada
para realizar pruebas entre geometras: touches(), contains(), intersects(); y operaciones
de GeoProcesamiento: buffer(), geomunion(), difference() dentro del Motor de Datos.

Debemos descargar la ltima versin de GEOS desde la direccin Web:
http://geos.refractions.net/

La URL de la Versin 2.2.3 de GEOS es http://geos.refractions.net/geos-2.2.3.tar.bz2

Descomprimimos el archivo geos-2.2.3.tar.bz2
[root@localhost ~]# tar -xjf geos-2.2.3.tar.bz2 -C /usr/local

Entramos en el directorio /usr/local/geos-2.2.3
[root@localhost ~]# cd /usr/local/ geos-2.2.3

Ejecutamos el Script de configuracin de la compilacin
[root@localhost geos-2.2.3]# ./configure

Las secuencias de texto de este proceso se muestran en la Figura 26















Luego ejecutamos make y make install
[root@localhost proj-4.5.0]# make

[root@localhost proj-4.5.0]# make install

Las secuencias de texto se muestran en la Figuras 27 y 28.














Figura 26

Figura 27

19





















Compi laci n

La ltima versin del cdigo fuente de PostGIS puede ser descargado de su sitio
Web Oficial: www.postgis.org.

En este caso emplearemos la versin de 1.2.1 de PostGIS, ya que una de las
caractersticas presente en esta versin es la capacidad de construir geometras
compatibles con la estructura del lenguaje KML, utilizado por Google Earth para
describir y representar geometras geogrficamente referenciadas sobre su Tierra 3D,
una herramienta realmente til.

Descargamos el la ltima versin del cdigo fuente de PostGIS desde la URL :
http://www.postgis.org/download/postgis-1.2.1.tar.gz


Descomprimimos el archivo postgis-1.2.1.tar.gz dentro del directorio
contrib de postgres
[root@localhost ~]# tar -xzf postgis-1.2.1.tar.gz -C postgresql-
8.2.1/contrib/

Entramos en el directorio /usr/local/postgresql-8.2.1/contrib/
postgis-1.2.1/
[root@localhost ~]# cd /usr/local/postgresql-8.2.1/contrib/
postgis-1.2.1/

Ejecutamos el Script de configuracin de la compilacin con parmetros
[root@localhost postgis-1.2.1]# ./configure --with-
pgsql=/usr/local/pgsql/bin/pg_config

Las secuencias de texto en la consola se aprecian en la Figura 29









Figura 28

20



















Luego ejecutamos make y make install
[root@localhost postgis-1.2.1]# make

[root@localhost postgis-1.2.1]# make install

Las correspondientes secuencias de texto se ilustran en las Figuras 30 y 31

































Figura 29

Figura 30

Figura 31

21



Notas sobre la compilacin de PostGIS

PostGIS tiene dos herramientas de consola, llamadas DUMPERS (shp2pgsql y
pgsql2shp), archivos ejecutables que se utilizan para cargar y descargar archivos Shape
de ESRI hacia y desde la Base de Datos.

Estas herramientas quedan copiadas en el directorio /usr/local/pgsql/bin
y despus del proceso de compilacin, deben quedar disponibles en el PATH del sistema
operativo para que puedan ejecutarse y utilizarse desde cualquier directorio en el sistema
de archivos.

Tenemos dos opciones:

1. Agregamos la ruta al PATH del usuario, editando el archivo .bash_profile y
agregando la ruta usr/local/pgsql/bin a la variable PATH, seleccionando que
usuario tendr disponibles estas herramientas de forma directa.

2. Copiamos estas utilidades a un directorio que ya se encuentre dentro del PATH
del sistema operativo, dejando las utilidades disponibles para todos los usuarios.

Yo opt por la opcin 2.

[root@localhost postgis-1.2.1]# cp /usr/local/pgsql/bin/shp2pgsql
/usr/bin

[root@localhost postgis-1.2.1]# cp /usr/local/pgsql/bin/pgsql2shp
/usr/bin


Otra consideracin muy importante es que debemos registrar en el sistema operativo las
libreras generadas por Proj4, GEOS y PostGIS, editando el archivo /etc/ld.so.conf

[root@localhost postgis-1.2.1]# vi /etc/ld.so.conf

Y aadimos las siguiente lnea:

/usr/local/lib

Finalmente recargamos las libreras del sistema

[root@localhost postgis-1.2.1]# ldconfig

Por ultimo, debemos copiar las libreras compartidas de PostgreSQL al directorio
/usr/lib/ para que puedan ser acezadas por MapServer en tiempo de ejecucin.

[root@localhost postgis-1.2.1]# cp /usr/local/pgsql/lib/libpq*
/usr/lib

Confi gur aci n Post-Compi laci n

Una vez completados todos los pasos anteriores, necesitamos crear una Base de Datos
habilitada espacialmente, para lo cual emplearemos la base de datos test creada en el
proceso de configuracin de PostgreSQL.


22



El procedimiento es el siguiente:

Convertirse en usuario postgres, dueo del Motor de Datos
[root@localhost postgis-1.2.1]# su - postgres

Cargar el lenguaje de procedimientos almacenados pl-pgsql en la base de datos test
[postgres@localhost postgis-1.2.1]#
/usr/local/pgsql/bin/createlang plpgsql test

Cargar las funciones de PostGIS en la base de datos test
[postgres@localhost postgis-1.2.1]# /usr/local/pgsql/bin/psql -d
test f /usr/local/pgsql/share/lwpostgis.sql

Las secuencias de texto correspondientes se aprecian en la Figura 32.

















Debemos cargar la base de datos con los registros de las referencias espaciales EPSG
o SRID, utilizados para hacer reproyecciones y cambios de Datum

[postgres@localhost postgis-1.2.1]# su - postgres

Y el proceso se resume en la Figura 33.

















Finalmente ejecutamos exit para volver al usuario root

[postgres@localhost postgis-1.2.1]# exit

Figura 32

Figura 33

23



Compilacin de MapServer





Pasos previ os a la Compi laci n

Si vamos a trabajar con mltiples tipos de datos Vectoriales y Raster, deberamos tener
instalada la librera GDAL/OGR, capa de abstraccin de Datos Espaciales que accede de
forma nativa a los formatos GIS mas utilizados (y otros no tanto). Adems de enlazarse
con MapServer, GDAL/OGR nos proveer de herramientas de consola muy tiles para
realizar conversiones entre formatos de datos GIS, as como para probar conexiones a
fuentes de datos ODBC pseudos-espaciales (recuerden la instalacin anterior de
unixODBC y FreeTDS), PostGIS, etc.

El sitio Web de esta herramienta es http://www.gdal.org

Debemos descargar la ltima versin del cdigo fuente de GDAL/OGR desde la siguiente
direccin Web: http://www.gdal.org/dl/gdal-1.4.0.tar.gz

Y el procedimiento de instalacin es el siguiente

Descomprimir el archivo gdal-1.4.0.tar.gz
[root@localhost local]# tar xzf gdal-1.4.0.tar.gz C /usr/local/

Entrar en el directorio /usr/local/gdal-1.4.0
[root@localhost local]# cd /usr/local/gdal-1.4.0

Crear el archivo de compilacin compile.sh
[root@localhost gdal-1.4.0]# vi compile.sh

Pegar el contenido del script 5 en el archivo compile.sh

./configure \
--with-png \
--with-libtiff \
--with-jpeg \
--with-gif \
--with-pg=/usr/local/pgsql/bin/pg_config \
--with-geos \
--with-odbc
Script 5: Contenido del archivo compile.sh para GDAL/OGR

Damos atributos de ejecutable al archivo compile.sh
[root@localhost gdal-1.4.0]# chmod 755 compile.sh

Ejecutamos el Script de pre-compilacin
[root@localhost gdal-1.4.0]# ./compile.sh

Y el proceso asociado se muestra en las secuencias de texto de la Figura 34.





24



















Ejecutamos make y make install
[root@localhost gdal-1.4.0]# make

[root@localhost gdal-1.4.0]# make install

Los procesos asociados se muestran en las figuras 35 y 36.

































Finalmente, volvemos a recargar las libreras del sistema operativo:
[root@localhost gdal-1.4.0]# ldconfig


Figura 34

Figura 35

Figura 36

25



Compi laci n de MapSer ver

Hoy en da MapServer es un emblema, un fiel representante de un software
OpenSource que ha logrado equiparar y superar, en caractersticas, rendimiento,
flexibilidad, escalabilidad, etc., a un software comercial.

El sitio oficial de MapServer se encuentra en la direccin Web
http://mapserver.gis.umn.edu

Para la elaboracin de este documento emplearemos la ltima versin estable del
cdigo fuente de MapServer, la 4.10.1, que puede ser descargada desde la siguiente URL:
http://cvs.gis.umn.edu/dist/mapserver-4.10.1.tar.gz

Una vez descargado el archivo, lo descomprimimos en el directorio /usr/local/
[root@localhost ~]# tar xzf mapserver-4.10.1.tar.gz C
/usr/local

Entramos en el directorio creado en la descompresin
[root@localhost ~]# cd /usr/local/4.10.1

En su interior creamos un archivo de compilacin igual que en los casos anteriores
[root@localhost mapserver-4.10.1]# vi compile.sh

En su interior pegamos el contenido del Script 6, grabamos y salimos del editor.

./configure \
--with-proj=/usr/local \
--with-geos=/usr/local/bin/geos-config \
--with-ogr=/usr/local/bin/gdal-config \
--with-gdal=/usr/local/bin/gdal-config \
--with-postgis=/usr/local/pgsql/bin/pg_config \
--with-curl-config=/usr/bin/curl-config \
--with-httpd=/usr/local/apache2/bin/httpd \
--with-php=/usr/local/php-5.2.1 \
--with-wfs \
--with-wfsclient \
--with-wmsclient \
--enable-debug \
--with-curl-config=/usr/bin/curl-config \
--with-threads \
--with-wcs \
--with-wcsclient \
--with-sos \ # new in 4.10 \
--with-gd \
--with-freetype \
--with-jpeg
Script 6: contenido del archivo de compilacin compile.sh para MapServer.

Hacemos ejecutable al script
[root@localhost mapserver-4.10.1]# chmod 755 compile.sh

Ejecutamos el Script
[root@localhost mapserver-4.10.1]# ./compile.sh

El resultado de este proceso se muestra en la Figura 37.


26

















El siguiente paso es ejecutar make (importante, en la compilacin de MapServer no
se debe ejecutar make install, ya que manualmente colocaremos los ejecutables
y las libreras en sus directorios respectivos).
[root@localhost mapserver-4.10.1]# make

El proceso resumen de la compilacin de MapServer se muestra en la Figura 38.















Copiamos los ejecutables generados al directorio /usr/local/apache2/cgi-
bin/
[root@localhost mapserver-4.10.1]# cp mapserv
/usr/local/apache2/cgi-bin/
[root@localhost mapserver-4.10.1]# cp legend
/usr/local/apache2/cgi-bin/
[root@localhost mapserver-4.10.1]# cp scalebar
/usr/local/apache2/cgi-bin/
[root@localhost mapserver-4.10.1]# cp shp2img
/usr/local/apache2/cgi-bin/
[root@localhost mapserver-4.10.1]# cp shp2pdf
/usr/local/apache2/cgi-bin/
[root@localhost mapserver-4.10.1]# cp shptree
/usr/local/apache2/cgi-bin/
[root@localhost mapserver-4.10.1]# cp shptreetst
/usr/local/apache2/cgi-bin/
[root@localhost mapserver-4.10.1]# cp shptreevis
/usr/local/apache2/cgi-bin/
[root@localhost mapserver-4.10.1]# cp sortshp
/usr/local/apache2/cgi-bin/
[root@localhost mapserver-4.10.1]# cp tile4ms
/usr/local/apache2/cgi-bin/


Figura 37

Figura 38

27



Pr uebas de Funci onami ento

Para comprobar que MapServer esta funcionando correctamente, lanzamos sobre
la consola el ejecutable cgi de MapServer llamado mapserv con el modificador -v

[root@localhost mapserver-4.10.1]# ./mapserv -v

Y si no arroja algn error de dependencias de libreras, nos arrojar informacin sobre
los formatos de salida y entrada que soporta, como se aprecia en la Figura 39.









Confi guraci n de PHP/ MapScri pt

En el proceso de compilacin de MapServer le indicamos que tenemos instalado
php en nuestro sistema con la opcin --with-php=/usr/local/php-5.2.1 en el
archivo compile.sh. Esto gatilla la creacin de un modulo para extender PHP con la
API de MapServer, para poder acceder a ella y a toda su potencia y flexibilidad.

Este modulo se encuentra en el directorio /usr/local/mapserver-
4.10.1/mapscript/php3

Copiamos este modulo al directorio que la instalacin de php cre dentro del rbol de
Apache, es decir, /usr/local/apache2/php
[root@localhost mapserver-4.10.1]# cp /usr/local/mapserver-
4.10.1/mapscript/php3/php_mapscript.so /usr/local/apache2/php/ext

Reiniciamos Apache
[root@localhost mapserver-4.10.1]#
/usr/local/apache2/bin/apachectl restart

Editamos el archivo /usr/local/apache2/htdocs/index.php
[root@localhost mapserver-4.10.1]# vi
/usr/local/apache2/htdocs/index.php

Lo dejamos como el Script que se muestra a continuacin y grabamos.
<?php
dl(php_mapscript.so);
phpinfo();
?>
Cdigo a la usanza de DREAMWEAVER por el resaltado de sintaxis

Cargamos la URL de pruebas en el navegador Web: http://192.168.92.132/

Y como decimos en Chile CHARAAAAAN tenemos listo nuestro servidor Web con
MapServer, PHP, Proj, GEOS, PostGIS, GDAL/OGR, unixODBC, FreeTDS,
PHP/MApScript, WMS Client/Server, WFS Client/Server, WCS, como se aprecia en la
Figura 40, realizando algo de scroll hacia abajo en el navegador.


Figura 39

28































Nota del Autor: No morimos en el intento. Bueno, por lo menos yo no mor
despus de tanta captura de pantalla, ediciones grficas y formateo de texto .

Saludos Cordiales y hasta una prxima revisin.
www.MapServer-Hispano.org
Figura 40

También podría gustarte