¡Esta es una revisión vieja del documento!


Instalación y configuración del servidor GeOrellana

Manual de una nueva instalación del geoportal, no obstante normalmente no debe ser necesario al que se realizaría una (vea respaldo y recuperación de GeOrellana). El nombre del servidor en la máquina virtual con el geoportal es geoportal.

No permitir acceso con el usuario root: En /etc/ssh/sshd_config actualizar PermitRootLogin no. Reiniciar ssh con /etc/init.d/ssh restart

Se instalan los siguientes aplicaciones y herramientas aditivas:

  1. Java OpenJDK7 y PHP5
  2. PostgreSQL/PostGIS, a partir del repositorio
  3. Tomcat8 con administrador web y el módulo libapache2-mod-jk
  4. SQLite y la extensión de PHP5
  5. Las herramientas srm (secure-delete) y unzip
  6. Net Time Protocol para ajuste automático de la hora del sistema

Habilitar los repositorios de PostgreSQL/PostGIS y Oracle Java añadiendo las siguientes líneas al archivo /etc/apt/sources.list

# Repositorios de PostgreSQL/PostGIS"
deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main

Ejecutar los siguientes comandos para i) descargar y añadir las llaves, ii) aceptar licencia de Oracle Java e iii) instalar los paquetes de software.

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt-get update
apt-get upgrade
apt-get install php5 postgis openjdk-7-jre tomcat8 tomcat8-admin libapache2-mod-jk ntp sqlite3 php5-sqlite unzip secure-delete
/etc/init.d/ntp start

El archivo de configuración de Tomcat8 es /etc/default/tomcat8

  1. Especificar la versión de Java a usar
    JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  2. Aumentar la memoria para evitar OutOfMemoryExceptions de Java, vea también esta experiencia y estas informaciones - y usar UTF-8 para evitar problemas con la codificación de caracteres en geoserver
    JAVA_OPTS="-Djava.awt.headless=true -Xmx6144m -XX:MaxPermSize=1536m -Dfile.encoding=UTF-8"

PENDIENTE: Confirmar si la asignación de memoria realizada es óptima

UTF-8

  • Descomentar AddDefaultCharset utf-8 en el archivo /etc/apache2/conf-available/charset.conf
  • Descomentar el 'build in filter' setCharacterEncodingFilter

Secure HTTPS

Se instala la llave creado con OpenSSL y verificado por Thawte, Inc.

Información sobre el proceso de crear una llave y un Certificate Signing Request (CSR) se encuentra en https://wiki.debian.org/Self-Signed_Certificate y http://www.debian-administration.org/article/284/Creating_and_Using_a_self_signed__SSL_Certificates_in_debian

Después de haber sido verificado el CSR por Thawte se instalan los siguientes archivos en el servidor especificando su lugar en el VirtualHost /etc/apache2/sites-available/default-ssl.conf SSLCertificateFile /etc/ssl/localcerts/georellana_org.crt SSLCertificateKeyFile /etc/ssl/private/georellana_org.key SSLCACertificateFile /etc/ssl/localcerts/caboundle.crt

Reglas de acceso al archivo con la llave privada/secreta son:

chown root:ssl-cert /etc/ssl/private/georellana_org.key
chmod 600 /etc/ssl/private/georellana_org.key

Reglas de acceso a los certificados son:

chown root:ssl-cert /etc/ssl/localcerts/georellana_org.crt
chown root:ssl-cert /etc/ssl/localcerts/caboundle.crt
chmod 644 /etc/ssl/private/georellana_org.crt
chmod 644 /etc/ssl/private/caboundle.crt

Después se habilita el site mediante el comando

a2enmod ssl
a2ensite default-ssl.conf
/etc/init.d/apache2 restart

Habilitar acceso web al Tomcat8 Manager

Para habilitar el acceso al interfaz web manager y admin de tomcat se añade en /var/lib/tomcat8/conf/tomcat-users.xml lo siguiente dentro del tag <tomcat-users>:

  <role rolename="manager-gui"/>
  <role rolename="admin-gui"/>
  <user username="USER" password="XXXXXX" roles="admin-gui,manager-gui"/>

Después es necesario reiniciar Tomcat con el comando /etc/init.d/tomcat8 restart

Ahora está habilitado el login en http://gporellana.gob.ec:8080/manager y http://gporellana.gob.ec:8080/host-manager para el usuario USER y la contraseña especificada (Ojo: tener en cuenta i) la configuración de la redirección de puertos de la máquina virtual, ii) el cortafuegos del host y iii) la configuración de los workers ajp13).

Configuración Módulo Apache JK - Tomcat (ajp13)

El modulo de Apache2 redirecciona las peticiones a geoserver y geonetwork del puerto 80 al servidor Tomcat8.

Workers del conector de apache httpd y tomcat8 se configuran de la siguiente manera para geoserver:

  1. Especificar los workers en la configuración de Tomcat8
  2. Las propiedades de los workers in Apache2
  3. La configuración del modulo JK
  4. Montar los workers en Apache2 para HTTP
  5. Montar los workers en Apache2 para HTTPS
  6. Reiniciar Apache2 y Tomcat8

La configuración de Tomcat8

En /var/lib/tomcat8/conf/server.xml descomentar y añadir las líneas

<Connector port="8006" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>
<Connector port="8007" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>
<Connector port="8008" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>

Las propiedades de los workers en Apache2

Crear el archivo /etc/apache2/workers.properties

workers.properties
# Definir los workers para geoserver y geonetwork usando ajp13
worker.list=wgeoinfo, wportal, wgeoserver
 
# Especificar propiedades de los workers (ajp13)
worker.wgeoinfo.type=ajp13
worker.wgeoinfo.host=localhost
worker.wgeoinfo.port=8006
 
worker.wportal.type=ajp13
worker.wportal.host=localhost
worker.wportal.port=8007
 
worker.wgeoserver.type=ajp13
worker.wgeoserver.host=localhost
worker.wgeoserver.port=8008

La configuración del Modulo JK

En el archivo /etc/apache2/mods-available/jk.conf actualizar la propiedad JkWorkersFile a /etc/apache2/workers.properties

jk.conf
<IfModule jk_module>
    JkWorkersFile /etc/apache2/workers.properties
 
    JkLogFile /var/log/apache2/mod_jk.log
    JkLogLevel debug
 
    JkShmFile /var/log/apache2/jk-runtime-status
 
    JkOptions +ForwardURICompatUnparsed
 
    JkMount /geoinfo* wgeoinfo
    JkMount /portal* wportal
    JkMount /geoserver* wgeoserver
    JkMountCopy All
 
    JkWatchdogInterval 60
 
</IfModule>

Reiniciar Apache2 y Tomcat8

Después de reiniciar Apache2 y Tomcat8 el acceso al geoportal y al servidor de geodatos se puede realizar mediante los siguientes url:

Se instala y configura DokuWiki para la documentación y los manuales de burros.

  • Descargar DokuWiki en lenguaje español
  • El archivo se desempaquetear y renombrar carpeta a /var/www/html/wiki
  • Instalación via navegador abriendo url https://geo.gporellana.gob.ec/wiki
  • Asegurar Dokuwiki con .htaccess requiere AllowOverride all añadiendo las siguientes líneas en los archivos de configuración apache
    • /etc/apache2/sites-available/000-default.conf y
    • /etc/apache2/sites-available/default-ssl.conf
	<Directory />
	    Options FollowSymLinks
	    AllowOverride None
	</Directory>
	<Directory /var/www/html>
	    Options Indexes FollowSymLinks MultiViews
	    AllowOverride all
	    Order allow,deny
	    allow from all
	</Directory>

Se habilita la subida de archivos usados por QGIS añadiendo los siguientes líneas a /conf/mime.conf

ui      text/ui 
qml     text/qml
qpt     text/qpt

Habilitar adminpack y crear usuario gadpo

su postgres
psql
# Habilitar adminpack
CREATE EXTENSION adminpack;
 
--- Crear un nuevo usuario de PostgreSQL/PostGIS con el nombre gadpo (usuario principal geodatos) y 
--- geoportal (usuario para las bases de datos de las aplicaciones web geonetwork y geoserver monitoeo)
CREATE ROLE gadpo LOGIN;
ALTER ROLE gadpo WITH PASSWORD 'XXX';
CREATE ROLE geoportal LOGIN;
ALTER ROLE geoportal WITH PASSWORD 'XXX';
\q

Seguridad PostgreSQL/PostGIS

En /etc/postgresql/9.5/main/postgresql.conf

listen_addresses = '*'
 
shared_buffers = 1000MB
work_mem = 50MB
maintenance_work_mem = 64MB

En /etc/postgresql/9.5/main/pg_hba.conf configurar accesos para la máquina de desarrollo

TYPE       DATABASE      USER       ADDRESS        IP-MASK         METHOD   
local      all           all
host       all           all         127.0.0.1/32                  md5
#IP de la red local (para ssh tunnel)
host       all           all         XXX.XXX.XXX.XXX/32               md5
#IP de la red de ambiental
host       all           all         XXX.XXX.XXX.XXX/32               md5
hostssl    all           all         XXX.XXX.XXX.XXX/32               md5
 
 
# Para el acceso con psql desde la red 192.168.2.x y con usuario gadpo
# host       all           gadpo      192.168.2.0/24               md5  
# Para el acceso con psql desde la web de Gestión Ambiental con usuario gadpo
# host      all           gadpo      XXX.XXX.XXX.XXX               md5
host       all           all         XXX.XXX.XXX.XXX/32            md5
hostssl    all           all         XXX.XXX.XXX.XXX/32            md5

Rendimiento PostgreSQL/PostGIS

PENDIENTE: Optimizar el rendimiento de la base de datos PostgreSQL/PostGIS

El archivo con el log de geoserver es /var/lib/tomcat8/webapps/geoinfo/data/logs/geoserver.log

Instalación

  • Descargar Geoserver Web Archive en la versión estable
  • Copiar el archivo geoserver.war a la carpeta de los webapps de tomcat /var/lib/tomcat8/webapps y desplegar el servlet
  • Cambiar el nombre de la url a geoinfo:
    • stop Tomcat
    • borrar el archivo geoserver.war y renombrar la carpeta geoserver a geoinfo
    • start Tomcat.

Configuración

  • Ingresar con el usuario y la contraseña inicial admin y geoserver para cambiarla y para actualizar también el masterpassword
  • Habilitar la seguridad fuerte en SeguridadSettings
  • Cambiar el data directory en el archivo WEB-INF/web.xml a /var/lib/geoserver_data
<context-param>
    <param-name>GEOSERVER_DATA_DIR</param-name>
    <param-value>/var/lib/geoserver_data</param-value>
</context-param>

Instalación Geonetwork

Descripción de una instalación nueva de geonetwork:

  1. Copiar el archivo geonetwork.war a la carpeta /var/libs/tomcat8/webapps/
  2. Crear una base de datos PostGIS con el nombre geoinfo con propietario geoportal
    su postgres
    psql 
    CREATE DATABASE db OWNER user ENCODING 'UTF8';
    \q
  3. Configurar la conexión a la base de datos
    1. habilitando la conección para postgis en WEB-INF/config-node/srv.xml
    2. especificando los parámetros de conección en WEB-INF/config-db/jdbc.properties
  4. Especificar data directory en /WEB-INF/web.xml
             <!--
                Specified what geonetwork data directory to use.-->
            <init-param>
                <param-name>geonetwork.dir</param-name>
                <param-value>/var/lib/geonetwork_data</param-value>
            </init-param>
  5. Abrir el Tomcat Manager (https://geo.gporellana.gob.ec/manager) para iniciar el servlet Geonetwork, la base de datos se debería popularse automáticamente
  6. Cambiar url geonetwork a portal:
    • stop Tomcat
    • borrar el archivo geonetwork.war y renombrar la carpeta geonetwork a portal
    • start Tomcat.

Se crea la base de datos PostGIS para el almacenamiento de los datos espaciales del GADPO así como para datos externos.

psql
CREATE DATABASE dbname OWNER username ENCODING 'UTF-8';
\q
psql -d dbname
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
\q

La gestión de la base de datos como por ejemplo la creación de schemas se realiza con PGAdmin3