installare GeoServer

Come installare GeoServer

Uno dei principali vantaggi di GeoServer è la facilità di installazione; basta seguire le istruzioni presenti nel suo sito ufficiale per installarlo senza grosse difficoltà su qualunque sistema: Windows, Linux o Mac OS. Nonostante ciò, ho deciso comunque di scrivere questo articolo, per chiarire meglio alcuni passaggi ed eliminare certi dubbi che a volte si presentano, specie in merito alla necessità di avere un web server e/o Tomcat già installati.

Come penso quasi tutti sanno, GeoServer è stato sviluppato in Java, quindi la prima condizione da verificare prima di installarlo è che sul computer sia già presente la macchina virtuale Java. Se ci riferiamo all’ultima versione di GeoServer al momento disponibile (la 2.10), questa richiede che sia presente Java 8.

Qui chiariamo subito un primo dubbio a proposito di Java. Il supporto per questo linguaggio è essenzialmente disponibile in due modalità: il JDK (Java Developer Kit) e il JRE (Java Runtime Environment). La differenza tra i due è che, il primo (JDK) serve quando oltre ad eseguire i programmi Java, si vuole anche sviluppare; esso include anche il JRE.

Quindi per far funzionare GeoServer, vanno bene entrambi: il JRE o il JDK; ma se non siete sviluppatori è sufficiente e consigliabile avere solo il JRE che è più leggero. In genere vista la diffusione di Java, è probabile che nel vostro sistema ci sia già installato il JRE, eventualmente si potrebbe solo trattare di aggiornarlo alla versione 8.

Servlet container

Oltre ad essere scritto in Java, GeoServer è anche una web application, ovvero opera tramite il protocollo HTTP del web. Detto in altre parole GeoServer è implementato come servlet: sono oggetti scritti in Java che operano all’interno di un web server (server HTTP) capace di eseguirli. Questi particolari web server vengono anche detti servlet container o servlet engine e i due più noti sono: Apache Tomcat (più semplicemente Tomcat) e Jetty.

Tomcat e Jetty

Puntualizziamo che Tomcat, pur essendo un software della famiglia Apache, è una cosa diversa dal normale e più conosciuto server HTTP Apache; infatti quest’ultimo non può eseguire dei servlet. Tomcat, nella sua distribuzione standard include anche le funzionalità di web server tradizionale, che corrispondono al prodotto Apache; però non ha certo la stessa potenza e versatilità di Apache. Inoltre , essendo scritto in Java, per essere installato richiede la presenza del JRE (come GeoServer).

Allora Tomcat può essere usato sia come web server standalone, anche se è meno performante rispetto ai tradizionali web server, oppure, come più spesso succede, in combinazione (come add-on) con un web server come Apache o Microsoft IIS.
Se vi interessano altre informazioni a riguardo, vi suggerisco questo articolo “Integrazione di Apache Tomcat su Apache HTTP Server” che spiega pure perché può essere più conveniente usare Tomcat integrato con Apache piuttosto che da solo.

Differenti modi di installare di GeoServer

Quindi oltre a Java, l’altro prerequisito per far funzionare GeoServer é la presenza di Tomcat o Jetty e infatti le sue modalità di installazione su qualunque S.O. sono di due tipi:

  • quelle che comprendono Jetty (viene installato come motore per GeoServer);
  • quelle che richiedono un servet engine (preferibilmente Tomcat) già installato;

quale scegliere ?

installazioni geoserverDiciamo che dipende principalmente dalla volontà o necessità di installare GeoServer in un sistema in cui ci sia anche un web server oppure no. In caso affermativo, si sceglie l’ installazione che prevede la presenza di Tomcat, altrimenti si preferisce l’installazione che include Jetty, essendo questo un sistema più leggero.

Quanto detto, dovrebbe chiarire un’altra domanda che a volte si pone chi vuole installare GeoServer: la presenza di un web server HTTP è strettamente necessaria? La risposta è ovviamente no!
Infatti GeoServer insieme a Jetty funziona tranquillamente senza bisogno di un web server. Va precisato che queste installazioni di GeoServer che includono Jetty, lo installano come modulo embedded dedicato e non come web server a se stante.

D’altra parte in un ambiente di produzione, è quasi sempre preferibile che insieme a GeoServer sia presente anche un web server: Tomcat da solo, ma più spesso Apache+Tomcat o IIS+Tomcat.

Ricordiamo infatti che GeoServer è solo un fornitore di servizi OGC (WMS, WCS, WFS, … etc) e non prevede un sistema integrato per generare delle pagine web. A tal scopo servono altri applicativi, come per esempio OpenLayers o GeoExt, tramite cui realizzare dei web client e questi necessitano appunto la presenza di un server HTTP.

Installare o aggiornare Java su Windows

Per verificare se avete già Java su Windows e controllare la versione, ci sono vari modi. Uno consiste nell’aprire il “pannello di controllo” e poi la gestione dei programmi installati.

Windows programmi

Se, come nel caso della figura sopra, trovate che Java 8 è già presente nell’elenco, non dovete fare nulla: siete già pronti per passare all’installazione di GeoServer!

Se invece c’è  una versione di Java precedente alla 8, allora vi basta fare l’aggiornamento. Digitate “java” nella casella per la ricerca di programmi e file in Windows (angolo in basso a sinistra del monitor) e tra le voci che restituite scegliete Configura Java. Questa apre il pannello di controllo di Java, dove trovate anche la scheda “Aggiorna“.

aggiorna Java

Se invece non avete Java, andate sul suo sito ufficiale (www.java.com) ed aprite la pagina web del “download”; l’applicazione individuerà automaticamente la versione di Java aggiornata che va bene per la vostra versione di Windows, proponendovi la seguente schermata:

Java download

Premete sul pulsante del “download gratuito” e verrà scaricato l’installer di Java, ovvero del suo JRE; il resto è semplice. Alla fine dell’installazione ci sarà (dentro Programmi) una cartella “Java” con dentro il JRE.

cartella JRE

 

Installare o aggiornare Java su Debian/Ubuntu

Per verificare se Java è installato e con quale versione su un sistema Debian/Ubuntu, basta digitare da terminale il comando: java -version. Se ottenete una risposta come questa, vuol dire che Java non è ancora presente:

la risposta suggerisce anche quali sono i possibili pacchetti per installare il JRE (ci sono più possibilità a secondo delle repositories impostate nel nostro sistema); possiamo scegliere il default-jre che va bene.

Alla fine dell’installazione, se come verifica ripetiamo il comando java -version, viene restituita la descrizione della versione di Java installata.

Nel caso invece avessimo Java, ma non è aggiornato, come per tutti i pacchetti già installati in un sistema Debian/Ubuntu, possiamo fare l’aggiornamento di versione da terminale con la sequenza di comandi:

dove <java package name> è il nome del pacchetto Java da aggiornare (nel nostro esempio: default-jre).

Naturalmente l’aggiornamento di Java, oltre che da linea di comando,  può pure essere fatto con gli altri tool tipici di aggiornamento del SW presenti nei sistemi Debian/Ubuntu.

Installare GeoServer su Windows con Jetty

Per installare GeoServer su Windows senza bisogno di avere un servlet container già presente, abbiamo due possibilità

  1. con il Windows installer;
  2. con la piattaforma binaria (cartella .zip)

Entrambi i metodi, come accennato prima, insieme a GeoServer installano anche Jetty in modalità embedded (non come web server standalone). Le due installazioni sono molto simili e producono lo stesso risultato finale, con la differenza che:

  • il Windows installer avvia una procedura guidata passo passo che fa tutta la configurazione da solo e installa GeoServer come programma (o servizio) di Windows;
  • la piattaforma binaria è uno zip con tutti i files e le cartelle di GeoServer che, dopo esser decompresso, va posizionato nel file-system da qualche parte (in Programmi o dove volete) e poi bisogna configurare le variabili d’ambiente necessarie; in questo caso GeoServer non risulta tra i programmi installati di Windows.

Tranne motivi particolari, specie se non siete molto pratici con la configurazione manuale dei programmi, vi consiglio di scegliere l’installer e perciò qui accenniamo solo a questo metodo.

Geoserver Windows installer

La guida completa sull’uso del Windows installer sul sito ufficiale di GeoServer è molto chiara, perciò non sarebbe necessario aggiungere altro; ma ci limitiamo a puntualizzare meglio qualche aspetto.

L’installazione richiede a un certo punto di indicare qual’è la cartella che contiene il JRE; comunque abbiate installato Java 8, con il JDK o solo il JRE, ci sarà una cartella nei “Programmi” che contiene il JRE. Indicatela nell’apposita casella cercandola con tasto “Browse …”

JRE cartella

GeoServer richiede una cartella dove salvare tutto ciò che riguarda i dati geografici (raster e vettori) che deve gestire; se non avete motivi particolari per indicarne una vostra, lasciate quella di default data_dir:

GeoServer data_dir

I servizi che vengono forniti sul web si appoggiano ad un protocollo di rete fondamentale: il TCP/IP. Per permettere di gestire più servizi su uno stesso canale fisico, vengono definiti dei “canali logici” differenti che vengono indicati come porte TCP/IP o semplicemente porte e sono contrassegnate da un numero: 20, 21, 25, 80, … etc . Per esempio un web server HTTP normalmente usa la porta 80.

Anche per GeoServer dobbiamo indicare la porta attraverso cui fornisce i suoi servizi (WMS, WFS, … etc) e dalla quale si accede alla sua interfaccia web d’amministrazione. In realtà, per essere più precisi, questa è la porta dell’application server (in questo caso Jetty) che poi esegue GeoServer.

GeoServer porta TCP/IP

La porta di default per i servlet engines è la 8080; lasciate questa a meno che essa non sia già occupata da un altro servizio web che avete attivo nel vostro sistema. Altrimenti dovete scegliere un’altra porta TCP/IP che sia ancora libera; altre porte usate spesso per GeoServer sono la 8081 e la 8082.

Nel passaggio conclusivo dell’installazione su Windows, viene infine chiesto se installare GeoServer come applicazione da far partire manualmente o come servizio di Windows.

GeoServer servizio

Se volete usare GeoServer in un ambiente di testing, in cui non serve che esso sia sempre attivo (consumando risorse macchina) è più conveniente scegliere l’installazione come applicazione; allora per avviare e fermare GeoServer, nella sua sottocartella “bin” ci sono due .bat appositi. In un ambiente di produzione, invece sarà preferibile installarlo come servizio.

GeoServer start stop

Completata l’installazione, andando nel menù dei programmi di Windows, troveremo anche il gruppo di GeoServer, con diverse voci, tra cui quelle per avviare e fermare il programma (richiamano i .bat sopra detti) e per aprire nel browser la sua interfaccia web (Web admin page).

menù Geoserver

 

Quando avviamo GeoServer, si apre una finestra della console di Windows (CMD) in cui viene visualizzato il log della successione di operazioni che avviano il servizio:

Geoserver starting

dopo circa una decina di secondi l’avvio si conclude e si può aprire l’interfaccia web di GeoServer, o con l’apposita voce nel menù-programmi o digitando direttamente nel browser l’indirizzo http://localhost:8080/geoserver.

N.B. la finestra con della console  deve rimanere aperta per tutto il tempo in cui si usa GeoServer.

Geoserver web admin page

La username e password di default per entrare, sono rispettivamente: admin, geoserver; ma per questioni di sicurezza è bene cambiarle prima possibile.

Installare GeoServer su Debian/Ubuntu con Jetty

Se vogliamo installare GeoServer su un sistema Linux, senza avere precedentemente installato un servlet container (tipicamente Tomcat) dobbiamo utilizzare la piattaforma binaria, geoserver-2.10.1-bin.zip, che si può scaricare come da questa pagina.

Una volta decompressa, la cartella (vi conviene rinominarla semplicemente “geoserver” togliendo il numero della versione) va posizionata da qualche parte nel file-system; generalmente si mette sotto /usr/share/. Essendo root il proprietario di questa cartella, dovete farlo come superuser, quindi da terminale col comando sudo mv:

Geoserver binary

Controllate che il proprietario (owner) della cartella /usr/share/geoserver sia il vostro username; dovrebbe essere già così, altrimenti se è ancora root, cambiatelo con chown:

O ancora meglio, per ragioni di sicurezza, potete creare un utente (e gruppo) ad hoc per GeoServer.

Questa cartella contiene tutto ciò che serve per far funzionare GeoServer, in particolare nella cartella “lib”  ci sono moduli del web server Jetty (mentre in “etc” ci sono i suoi file di configurazione) e nella cartella “bin” ci sono gli script .sh per avviare e fermare GeoServer (i .bat servono su Windows).

Geoserver script

Per concludere l’installazione,  bisogna impostare una variabile d’ambiente che definisca qual’è la home directory di GeoServer, nel seguente modo:

così facendo aggiungiamo la riga “export GEOSERVER_HOME=/usr/share/geoserver” al file di configurazione (profile) che viene eseguito alla login del nostro profilo.

Bene, siamo pronti per avviare GeoServer! Spostiamoci nella cartella /usr/share/geoserver/bin e poi eseguiamo lo script startup.sh:

quando lo script ha terminato (sul terminale scorre il log delle operazioni eseguite, come succede anche in Windows) possiamo aprire il browser e mettere l’indirizzo http://localhost:8080/geoserver. Se non ci sono stati problemi, ci appare la solita interfaccia d’amministrazione di GeoServer.

Similmente, quando si vuole chiudere GeoServer, bisogna eseguire lo script shutdown.sh:

geoserver+tomcatCome abbiamo detto agli inizi di questo articolo, può essere necessario installare GeoServer insieme a un vero e proprio web server; nelle installazioni viste fin’ora infatti, Jetty ha solo il ruolo di servlet engine per eseguire GeoServer ed esporre i suoi servizi sul web. In questi casi, la soluzione ottimale per GeoServer è usare Tomcat, da solo o ancora meglio accoppiato ad Apache. Vediamo allora come si installa Tomcat.

Come installare Tomcat

L’installazione di Apache Tomcat è relativamente semplice, quello che è più complesso è la sua configurazione e la messa a punto. Infatti Tomcat è un web server che riesce ad eseguire servlet e come tale necessita tutta una serie di impostazioni che servono a garantirne un funzionamento ottimale e soprattutto la sicurezza; ma non sono argomenti che possiamo trattare qui. Perciò ci limitiamo a vedere solo la sua installazione di base, sufficiente per far funzionare GeoServer.

Innanzitutto, ovviamente, è necessario che sia già installato Java (basta il JRE).

Se andiamo nella pagina di download di Tomcat, che come ultima versione stabile, al momento  è la 8.5 (supporta Java 8, quindi va bene per GeoServer 2.10) vediamo quali sono le installazioni disponibili. Ci sono delle distribuzioni generiche (cartelle compresse) che possiamo usare per qualunque S.O. con Java e poi quelle apposite per Windows, tra cui un installer che con una procedura passo-passo installa Tomcat come servizio.

Tomcat 8 downloads

Per installare Tomcat su Debian/Ubuntu si potrebbe adoperare il solito comando “apt-get install”, ma è preferibile scaricare la distribuzione binaria tar.gz e poi configurarlo a mano. Dopo aver decompresso il tar.gz, rinominate la cartella ottenuta semplicemente “tomcat“, eliminando i riferimenti alla versione scaricata; quindi posizionatela nel file-system: di solito si mette dentro /opt.

/opt/tomcat

Tomcat è già pronto per essere eseguito manualmente; dentro la sua cartella “bin” ci sono gli script .sh per avviarlo e per fermarlo.

Tomcat start stop

Naturalmente se volete evitare ogni volta di spostarvi dentro la cartella /opt/tomcat/bin e poi eseguire gli script, potete aggiungere alla variabile  $PATH anche la directory di Tomcat, creare un launcher sulla barra delle applicazioni o altri tipi di scorciatoie.

Dopo aver avviato Tomcat, potete aprire il browser e digitare l’indirizzo http://localhost:8080; abbiamo già visto che 8080 è la porta di default di questi particolari web server. Vi appare la sua home page con tutte le principali informazioni per gestirlo e configurarlo.

Tomcat home page

Notiamo la presenza di tre bottoni: Server Status, Manager App e Host Manager, dai quali tramite username e password si accede alle rispettive funzioni, ma non si sono degli account di default già preconfigurati (motivi di sicurezza). Questi vanno configurati nel file /opt/tomcat/conf/tomcat-users.xml; se vi interessa, questa breve video-guida vi spiega come fare. Ricordatevi che dopo aver configurato gli users, perché siano riconosciuti, bisogna riavviare Tomcat.

Il metodo visto installa Tomcat come applicazione da avviare/fermare manualmente. Se invece vogliamo che esso funzioni come servizio (o daemon), dobbiamo innanzitutto creare un gruppo ed un utente appositi senza privilegi (per questioni di sicurezza) che abbiano i permessi per eseguirlo; poi bisogna creare e scrivere un apposito systemd service file. Chi volesse saperne di più può leggere questa guida.

Per installare Tomcat su Windows, si può procedere in modo perfettamente analogo a come si è fatto per Linux; la differenza è che ora si scarica lo zip per Windows (32 o 64 bit). Questo, una volta scompattato, contiene sempre le stesse cartelle di prima e nella sottocartella “bin” ci sono i file .bat  per Windows, tra cui quello per avviare (startup.bat) e per chiudere (shutdown.bat) Tomcat.

Tomcat bin

Abbiamo anche due file eseguibili (.exe) che servono per far funzionare Tomcat come servizio:

  • tomcat8.exe è l’applicazione “servizio Windows” vera e propria;
  • tomcat8x.exe è un’applicazione con GUI per configurare e monitorare i servizi di Tomcat;

il file service.bat è invece quello che serve a installare Tomcat come servizio. Qui c’è la guida ufficiale.

L’altro modo per installare Tomcat direttamente come servizio di Windows, consiste, come visto prima, nello scaricare l’apposito installer invece della distribuzione zippata.

 

Installare GeoServer con Tomcat (qualunque S.O.)

Una volta che abbiamo installato Tomcat, l’installazione di GeoServer e molto semplice ed è uguale per qualunque S.O.; si adopera un file in formato web archive  (.war) che viene per l’appunto usato da Tomcat per creare una web application.

Geoserver war

Una volta scaricato il file geoserver-x.x.x-war.zip dalla pagina “download” di GeoServer, lo scompattiamo e semplicemente prendiamo il file geoserver.war che ne deriva e lo mettiamo dentro la cartella webapps di Tomcat:

geoserver.war attivazione

dopodichè riavviamo Tomcat. Se apriamo la cartella /opt/tomcat/webapps noteremo che è stata creata una sotto-cartella “geoserver”: questa contiene la web application generata.

Geoserver web application

Fatto! GeoServer è già pronto senza bisogno di avviarlo; se apriamo il solito indirizzo http://localhost:8080/geoserver ci apparirà la pagina di benvenuto di GeoServer.

 

Una verifica in rete di GeoServer

Dopo l’installazione di GeoServer, come verifica abbiamo aperto la sua pagina di amministrazione web su “localhost”. Ora vediamo un altro modo pratico per verificare che GeoServer effettivamente svolge il suo compito, cioè che riesce a distribuire geodati sulla rete tramite WMS o WFS.

Se apriamo la sua interfaccia web e poi la pagina dei Workspaces, troviamo dei dati di esempio  che sono stati precaricati con l’installazione.

GeoServer workspaces

Allora proviamo a pubblicare i layers di uno di questi e scegliamo per esempio il workspace “sf (spearfish); apriamo la sua scheda e abilitiamolo con l’apposita checkbox. Poi ricordiamoci di premere il bottone “Save”.

spearfish

Sempre sull’interfaccia d’amministrazione, se andiamo sulla pagina per gestire i Layers, possiamo controllare quali sono quelli contenuti nel workspace e verificare se sono abilitati (di default lo sono):

Spearfish layers

Adesso ci serve conoscere qual’è l’indirizzo IP della macchina su cui è in esecuzione GeoServer; potrà essere un indirizzo IP pubblico o, come nel mio caso, un indirizzo LAN (quello mio è 192.168.0.5). Per fare la prova ci serve poi un altro computer (client) connesso alla rete; volendo potete pure usare delle VM (Virtual Machines) tutte connesse alla stessa rete, ognuna con un suo indirizzo IP.  Sul computer client, useremo QGIS come client WMS per connetterci al nostro GeoServer e ricevere i layer di “sf”.

Geoserver e client QGIS

Gli indirizzi da usare per configurare la connessione client sono i seguenti:

– per WMS : http://192.168.0.5:8080/geoserver/sf/wms?
– per WFS :  http://192.168.0.5:8080/geoserver/sf/wfs?

ovviamente al posto di 192.168.0.5 metterete l’indirizzo IP della vostra macchina con GeoServer.
Se tutto funziona correttamente, all’apertura della connessione WMS vedrete tutti i layer di “sf” pubblicati e poi potrete scegliere quale visualizzare nel quadro-mappa di QGIS (vedi fig. seguenti).

Questo slideshow richiede JavaScript.

Analogamente potete provare, configurando su QGIS una connessione WFS; in questo caso riceverete naturalmente solo i layers vettoriali di “sf”.

QGIS connessione WFS Geoserver

condividi: