Este post inicia un serie de otros post que vendrán más adelante, en los cuales voy a detallar como voy a diseñar e introducir un servidor de mapas ( en un entorno de producción. Esta guía trata de resumir todo lo que he investigado, a lo largo de unas semanas, para realizar todo lo mejor posible, y con el mayor rendimiento posible también.
En este post, sólo voy a instalar Geoserver y dejarlo funcionando como una aplicación de Tomcat. Nada más. En siguientes post, hablaremos de la arquitectura de red que plantearemos, las librerías que pueden mejorar el rendimiento, y como añadir alguna funcionalidad extra.
Para empezar, voy a explicar porqué elegimos Geoserver, entre tantos y tantos servidores de mapas. Aunque este servidor, esta desarrollado en Java, resulta ser bastante rápido, cuando se configura correctamente, plantando cara a Mapserver, que se encuentra desarrollado en C++ (se pueden ver muchas comparativas sobre estos dos servidores de mapas), y además esta avanzando a pasos agigantados versión tras versión. Es (como no) software libre, con una gran comunidad detrás, que suelen dar soluciones a todos los problemas encontrados. Aparte de ser «relativamente sencillo» su manejo.
En cuanto al sistema operativo, me decanto por un linux, en mi caso un «Ubuntu Server 9.10«, simplemente por costumbre, ya que se podría usar cualquier otra distribución de linux para hacer la implantación.
Bueno, manos a la obra. Os detallo los pasos a seguir, para realizar una instalación básica:
- Instalar «Java JDK«, primero comprobaremos que no está ya instalada (en mi caso ya está instalado el Java):
linux@svrmapas:~$ dpkg --get-selections | grep sun-java
sun-java6-bin install
sun-java6-jdk install
sun-java6-jre install
En caso de no tenerlo instalado, lo hacemos vía «apt«:
sudo apt-get install sun-java6-jdk
Actualización Ubuntu 10.04: Parece que con los problema que está habiendo con Oracle, y que demuestran que es el mal supremo (apreciación mía), se han movido los paquetes oficiales (que siguen llamándose «sun-java» curiosamente) a un repositorio externo que no viene por defecto. Así que tocará añadirlo en el fichero «/etc/apt/sources.list«, descomentando dos líneas que vienen comentadas por defecto:
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
deb http://archive.canonical.com/ubuntu lucid partner
deb-src http://archive.canonical.com/ubuntu lucid partner
Recuerda lanzar un «update» de «apt-get» para reflejar los cambios
Si todo ha ido bien, encontraras algo parecido a esto al teclear el siguiente comando:
linux@svrmapas:~$ java -server -version
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.6.1) (6b16-1.6.1-3ubuntu1)
OpenJDK Client VM (build 14.0-b16, mixed mode, sharing)
Si tienes cualquier otra salida a este comando, tienes que revisar tu instalación de Java ya que es muy importante para el rendimiento usar la versión de Sun más moderna posible.
- Ahora toca el Tomcat, y es muy recomendable usar el «Tomcat 6«, aunque creo que es el que se instala por defecto desde la «Ubuntu 9.04«.
sudo apt-get install tomcat6 tomcat6-admin tomcat6-common tomcat6-user tomcat6-docs tomcat6-examples
- Tenemos Tomcat funcionando, solo nos queda configurar quien tiene acceso al «Gestor de aplicaciones» de Tomcat, mediante la ruta: «http://tuserver:8080/manager/html«. Si entras, te pedirá un usuario y una clave. ¿Pero si no me la han preguntado?. Tranquilo, ve al fichero «/etc/tomcat6/tomcat-users.xml«, editarlo como sigue:
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<user username="tomcat" password="tomcat" roles="tomcat,manager"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>
Hemos hecho lo siguiente, definir un nuevo rol, llamado «manager«, el cual es el necesario para manejar las aplicaciones instaladas, y luego al usuario genérico «tomcat» le hemos datos el rol de «manager«. Revisa que no este comentado (por defecto vienen comentados todos los usuarios), ya que si no, no hacemos nada.
Muy importante: Esto que he hecho no es seguro, solo para comprobar que todo funciona, tendrías que crear un usuario/password seguros si vas a dar acceso a tu servidor a todo el mundo, una vez comprobado que todo funciona, ya que si no sería muy fácil que alguien «malo» adivine lo que has hecho y pueda acceder a este gestor… e imagino que no quieres que ocurra.
Actualización Ubuntu 10.04: Algunos cambios surgidos en la versión de Tomcat que se instala, hacen más recomendable este fichero de configuración, que le da permisos a un usuario para manejar todo el tomcat sin problemas:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager" />
<role rolename="admin" />
<user username="mi_usuario_administrador" password="password" roles="admin,manager" />
</tomcat-users>
- Ahora reiniciamos el servidor Tomcat:
sudo /etc/init.d/tomcat6 restart
- Ya podremos acceder al «manager«, con el usuario con el rol de «manager«, mediante la dirección: «http://tuserver:8080:/manager/html«. Ahora nos vamos a la web oficial de Geoserver y nos bajamos la versión «Web Archive«, como indica la siguiente captura de la web (cuando redacto esto, vamos por la versión 2.0.1):

Ya tenemos, el archivo «war» (te bajaras un .zip, mira dentro), y la intentamos desplegar (es decir, algo parecido a instalar) en nuestro servidor Tomcat, mediante el siguiente interfaz que nos sale por defecto en el gestor de aplicaciones: 
Una vez hecho, solo nos queda buscar «geoserver» en el listado de aplicaciones, y dar a arrancar… y tras unos instantes: FALLO. Bueno, todo no podía ser tan sencillo, pero no os pongáis nerviosos, está controlado. El error que lanza el interfaz es algo así:
FALLO – No se pudo arrancar la aplicación en trayectoria de contexto /geoserver
Actualización Geoserver 2.0.2: Parece que todo esto ya es cosa del pasado, ya que se se despliega sin problemas, y sin dar mas permisos en Tomcat.
- El problema anterior, es un problema de permisos, ya que por razones desconocidas, Tomcat viene con los permisos muy recortados y Geoserver necesita prácticamente todos los permisos. Por lo tanto, nos vamos a «/etc/tomcat6/policy.d/04webapps.policy» y al final del fichero (justo antes de cerrar la llave) incluimos esta línea:
permission java.security.AllPermission;
Volvemos a reiniciar el Tomcat, y probamos de nuevo. No me voy a meter si esto es bueno o malo, si relaja mucho las políticas de seguridad… simplemente hace que funcione.
Tras esto, al dar a arrancar a la aplicación, nos encontramos con:
OK – Arrancada aplicación en trayectoria de contexto /geoserver
- Accedemos a la aplicación Geoserver, en «http://tuserver:8080/geoserver«. Cruza los dedos, y allí tendrás tu panel de administración de Geoserver.
Los siguientes pasos podrás leerlos en la siguiente entrada:
Parte 2.
Referencias usadas:
Please follow and like us: