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.
Acceso vía SSH
No permitir acceso con el usuario root: En /etc/ssh/sshd_config
actualizar PermitRootLogin no
.
Reiniciar ssh con /etc/init.d/ssh restart
Instalación software usando apt
Se instalan los siguientes aplicaciones y herramientas aditivas:
- Java OpenJDK7 y PHP5
- PostgreSQL/PostGIS, a partir del repositorio
- Tomcat8 con administrador web y el módulo libapache2-mod-jk
- SQLite y la extensión de PHP5
- Las herramientas srm (secure-delete) y unzip
- 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
Instalación y actualización de JAVA 8
Si existe una instalación previa de Java debemos eliminarla del sistema con
apt-get purge openjdk-7-jre
Luego instalar la nueva versión que a partir de geoserver 2.9.x requiere de Java 8, para ello ejecutamos:
echo deb http://ftp.de.debian.org/debian sid main >> /etc/apt/sources.list apt-get update && apt-get install openjdk-8-jdk update-alternatives --config java
Configuración de Java 8 para Tomcat 8
El archivo de configuración de Tomcat8 es /etc/default/tomcat8
- Especificar la versión de Java a usar
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- 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
Apache2 y Tomcat8
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,manager-script"/>
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:
- Especificar los workers en la configuración de Tomcat8
- Las propiedades de los workers in Apache2
- La configuración del modulo JK
- Montar los workers en Apache2 para HTTP
- Montar los workers en Apache2 para HTTPS
- 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/httpd-jk.conf actualizar la propiedad JkWorkersFile a /etc/apache2/workers.properties
- httpd-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:
La Wiki
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>
- Reiniciar Apache2, ahora ya no debe aparecer el mensaje de aviso de seguridad en el interfaz de administración de la wiki, siendo accesible vía http://geo.gporellana.gob.ec/wiki y https://geo.gporellana.gob.ec/wiki
- Mediante el Administrador de Extensiones se instalan los siguientes extensiones adicionales, si aún no se han instalado:
- Upgrade Plugin simplifica la actualización de docuwiki
- Wrap Plugin permite crear cajitas de color
- Open Document Plugin (Exportar páginas de la Wiki en formato LibreOffice)
- Dw2Pdf Plugin (Exportar páginas Wiki en formato PDF)
- Sortable Javascript Plugin (Permite que tablas pueden ser reordenadas cliceando los títulos de las columnas)
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
PostgreSQL/PostGIS
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
Geoserver
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 Seguridad → Settings
- 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>
Geonetwork
Instalación Geonetwork
Descripción de una instalación nueva de geonetwork:
- Copiar el archivo geonetwork.war a la carpeta /var/libs/tomcat8/webapps/
- Crear una base de datos PostGIS con el nombre geoinfo con propietario geoportal
su postgres psql CREATE DATABASE db OWNER user ENCODING 'UTF8'; \q
- Configurar la conexión a la base de datos
- habilitando la conección para postgis en WEB-INF/config-node/srv.xml
- especificando los parámetros de conección en WEB-INF/config-db/jdbc.properties
- 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>
- 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
- Cambiar url geonetwork a portal:
- stop Tomcat
- borrar el archivo geonetwork.war y renombrar la carpeta geonetwork a portal
- start Tomcat.
Base de datos espacial
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