Você está na página 1de 28

Proyecto de Documentacin de MapServer en Espaol Autor: Ren F. Viancos S. Revisin 0.1 Email: rviancos@gmail.

com

Como compilar MapServer y PostGIS en Linux y no morir en el intento Hacerlo

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)

Compilacin de Apache Web Server

Previo a la Compilacin
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.

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

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

Figura 3

Compilacin
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.

Figura 4

Finalmente ejecutamos : [root@localhost httpd.2.2.3]# make install Obteniendo secuencias de texto que se aprecian en la Figura 5.

Figura 5

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

Pruebas de Funcionamiento
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 6

Configuracin del arranque automtico 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 licensors, as # applicable. . . .

its

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

Compilacin de PostgreSQL

Previo a la compilacin
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. 5

Figura 7

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.

Figura 8

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

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

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.

Figura 10

Post Compilacin y Configuracin 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. 7

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.

Figura 11

Pruebas de Inicio y Funcionamiento


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.

Figura 12

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

Figura 13

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

Figura 14

Luego debemos ejecutar el comando: [postgres@localhost ~]# exit Para volver al sper usuario root

Configuracin del arranque automtico de PostgreSQL


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.

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 16

#!/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

10

Compilacin de PHP con unixODBC y FreeTDS

Previo a la Compilacin
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.

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.641.el4.rf.i386.html freetds-devel: http://fr.rpmfind.net/linux/RPM/dag/redhat/el4/i386/freetdsdevel-0.64-1.el4.rf.i386.html 11

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.

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

12

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.

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
Nota: si en la compilacin aparece el siguiente error u otro similar: If configure fails try -with-jpeg-dir=<DIR> configure: error: libpng.(a|so) not found. Ejecutar como root (para resolver dependencia): yum install libpng-devel

Figura 20

Figura 21

13

Configuracin de PHP (Post-Compilacin)


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 /usr/local/apache2/php/ tal como se muestra a continuacin: directorio

[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. 14

[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

Pruebas de Funcionamiento 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.

15

Figura 22

Compilacin de PostGIS

Previo a la Instalacin
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

16

Figura 23

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 24

Figura 25

17

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

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 27

18

Figura 28

Compilacin
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 postgresql8.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 --withpgsql=/usr/local/pgsql/bin/pg_config Las secuencias de texto en la consola se aprecian en la Figura 29

19

Figura 29

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 30

Figura 31

20

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

Configuracin Post-Compilacin
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. 21

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.

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.

Figura 33

Finalmente ejecutamos exit para volver al usuario root

[postgres@localhost postgis-1.2.1]# exit 22

Compilacin de MapServer

Pasos previos a la Compilacin


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.

23

Figura 34

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.

Figura 35

Figura 36

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

Compilacin de MapServer
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 http://mapserver.gis.umn.edu se encuentra en la direccin Web

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. 25

Figura 37

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.

Figura 38

Copiamos los ejecutables generados al directorio /usr/local/apache2/cgibin/ [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/ 26

Pruebas de Funcionamiento
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.

Figura 39

Configuracin de PHP/MapScript
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 4.10.1/mapscript/php3 /usr/local/mapserver-

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/mapserver4.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. 27

Figura 40

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

28

Você também pode gostar