User Tools

Site Tools


doc:appunti:linux:sa:tomcat_geonetwork

GeoNetwork su Tomcat 6 per Debian Squeeze

Appunti simili per Tomcat 5.5 su Debian e CentOS:

Installare i pacchetti:

  • sun-java6-jdk
  • tomcat6
  • tomcat6-admin
  • tomcat6-examples (facoltativo)

Per sicurezza verificare che i comandi Java lancino le implementazioni Sun, non quelle libere eventualmente installate:

update-alternatives --config java
update-alternatives --config javac
update-alternatives --config javah
update-alternatives --config javadoc

Le webapps di Tomcat vengono installate /var/lib/tomcat6/webapps/

Tomcat risponde per impostazione predefinita sulla porta TCP 8080, le applicazioni disponibili con i pacchetti installati in precedenza sono:

  • http://server:8080/
  • http://server:8080/manager/html
  • http://server:8080/host-manager/html

L'applicativo /manager/html richiede un utente che abbia il ruolo di manager, si deve pertanto editare il file /etc/tomcat6/tomcat-users.xml aggiungendo qualcosa del tipo:

  <role rolename="admin"/>
  <role rolename="manager"/>
  <user username="tomcat" password="t0mc4t" roles="admin,manager"/>

Installazione GeoNetwork 2.6.1

Per il download di GeoNetwork e/o GeoServer:

L'archivio geonetwork-install-2.6.1-0.jar contiene anche GeoServer nonché il motore Jetty (utilizzabile in mancanza di Tomcat). In alternativa si devono installare i due file .war di GeoNetwork e GeoServer.

Installazione tramite esecuzione del .jar

Questo tipo di installazione è consigliata solo per una postazione desktop con interfaccia grafica e priva di Tomcat.

Facendo il deploy da interfaccia web di geonetwork.war si ha l'installazione del solo GeoNetwork, invece installando (cioè eseguendo) geonetwork-install-2.6.1-0.jar si installano le seguenti webapps:

  • geonetwork
  • geoserver

Questo tipo di installazione è sconsigliata: è richiesta l'interfaccia grafica, viene installato Jetty (un container meno performante di Tomcat, adatto solo ad ambienti personali), l'installazione di GeoServer inclusa ha una configurazione adatta a GeoNetwork, ma funziona solo in localhost.

Sebbene sconsigliato, ecco come si dovrebbe fare:

# Ci sono altri modi per avere accesso al $DISPLAY come root?
ssh -X root@localhost
# L'installer richiede un sacco di RAM:
java -Xms210 -Xmx220 -jar geonetwork-install-2.2.0.jar

Si è scelta come directory /usr/local/lib/geonetwork/, si è scelto di salvare lo script di installazione automatica (per ripetere l'installazione su altra macchina, senza grafica).

Al termine dell'installazione, in /usr/local/lib/geonetwork/web/ viene installato anche un geoserver.war. All'esecuzione di Jetty NON viene scompattato, ma viene usato compresso. Tale war fa riferimento ai dati che stanno in ../data/geoserver_data/.

Se si utilizza la stessa directory come webapps per Tomcat verrbbe fatto il deploy del GeoServer (scompattato il .war, ecc.). Se si porta questa webapp dentro Tomcat bisogna portarsi dietro la directory geoserver_data che sta fuori dalla webapp.

Per lanciare il container Jetty:

cd /usr/local/lib/geonetwork/bin
./start-geonetwork.sh

Secondo l'installazione predefinita l'applicativo dovrebbe rispondere all'URL http://localhost:8080/geonetwork/ (solo in localhost). Se per caso c'è Tomcat che già usa tale porta, il Jetty non riesce a fare il binding della porta e quindi non funziona.

Installazione tramite deploy dei .war

Scaricare geoserver-2.0.2-war, fare il deploy da interfaccia web (/manager/html) e l'applicazione GeoServer parte.

Sembra che non sia necessario configurare policy speciali come era necessario con tomcat 5.5. Probabilmente perché in /etc/default/tomcat6 abbiamo TOMCAT6_SECURITY=no.

In modo analogo fare il deploy del geonetwork.war.

Con questa installazione si hanno due inconvenienti:

  • GeoNetwork utilizza un URL per GeoServer del tipo http://localhost:8080/ che non va bene per una pubblicazione su internet.
  • GeoServer non ha i due layer utilizzati dalla installazione predefinita di GeoNetwork: gn:world e gn:gboundaries.

Configurazione

GeoServer

Il login predefinito di GeoServer è admin con password geoserver. Per cambiarlo si modifica il file geoserver/data/security/users.properties.

Aggiungere i layer gn:world e gn:gboundaries utilizzando i dati geografici contenuti nel .jar di installazione (BlueMarble_world e …). Questi sono i layer utilizzati nella mappa della pagina iniziale di GeoNetwork.

GeoNetwork

Il login predefinito di GeoNetwork è admin con password admin, si modifica dall'interfaccia web.

Installare il pacchetto postgresql-8.4 e creare un utente e database geonetwork:

CREATE USER geonetwork PASSWORD 'geosecret';
CREATE DATABASE geonetwork OWNER geonetwork;

Per utilizzare il backend Postgres (invece del predefinito mckoi) bisogna editare il file geonetwork/WEB-INF/config.xml. Se il database è vuoto viene inizializzato automaticamente all'avvio della webapp.

Modificare geonetwork/WEB-INF/config-gui.xml impostando l'URL di GeoServer necessario a mostrare la mappa sulla sinistra della pagina iniziale. L'impostazione predefinita localhost va bene solo per una installazione locale.

Verificare che la directory <uploadDir> dichiarata in geonetwork/WEB-INF/config.xml esista e sia scrivibile all'utente tomcat (percorso relativo alla directory geonetwork).

GeoNetwork GUI

La configurazione dell'interfaccia web di GeoNetwork avviene in geonetwork/WEB-INF/config-gui.xml.

È possibile configurare la mappa per la ricerca (pannello di sinistra) e la mappa per la visualizzazione nella sezione <mapSearch> e <mapViewer> rispettivamente. Le opzioni specificate in questi tag modificano le impostazioni OpenLayers, ecco alcuni esempi:

<mapSearch
    options="{
        projection: 'EPSG:3003',
        maxExtent: new OpenLayers.Bounds(1672800,4843200,1688800,4856400),
        restrictedExtent: new OpenLayers.Bounds(1672800,4843200,1688800,4856400),
        scales: [1000000, 500000, 200000, 100000, 50000, 20000, 10000, 5000, 2000, 1000],
        numZoomLevels: 15,
        units: 'm',
        controls: []
    }">
doc/appunti/linux/sa/tomcat_geonetwork.txt · Last modified: 2010/12/28 16:03 by niccolo