====== GeoNetwork su Tomcat 6 per Debian Squeeze ======
Appunti simili per Tomcat 5.5 su Debian e CentOS:
* [[doc:appunti:linux:sa:tomcat_mod_jk]]
* [[tecnica:gps_cartografia_gis:gis_server_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:
===== Installazione GeoNetwork 2.6.1 =====
Per il download di GeoNetwork e/o GeoServer:
* [[http://sourceforge.net/projects/geonetwork]].
* [[http://downloads.sourceforge.net/geoserver/geoserver-2.0.2-war.zip]]
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 [[tomcat_mod_jk#java_security_manager|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 '''' 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 **''''** e **''''** rispettivamente. Le opzioni specificate in questi tag modificano le impostazioni OpenLayers, ecco alcuni esempi: