Instalar Geoserver no Linux – Debian

Publicado: 22/02/2012 em Linux, Programação, Serviços IP
Tags:, , , ,

1. GeoServer – introdução
Logo GeoServerO GeoServer é um Software Livre licenciado pela GNU GENERAL PUBLIC LICENSE (GPL), mantido pelo Open Planning Project (mantenedor principal), que permite o desenvolvimento de soluções de Webmapping, integrando diversos repositórios de dados geográficos com simplicidade e alta performance. É um servidor de código aberto escrito em Java que permite aos usuários compartilhar e editar dados geoespaciais. Projetado para a interoperabilidade, ele produz dados a partir das principais fontes de dados espaciais utilizando padrões abertos.

É a implementação de referência do Open Geospatial Consortium (OGC) para os padrões Web Feature Service (WFS) e Web Coverage Service (WCS), bem como um servidor de alto desempenho certificado de serviços web (WMS). GeoServer se constitui no componente central de uma web Geoespacial. O foco do GeoServer é facilitar o uso e suporte para os padrões abertos, a fim de permitir qualquer um de compartilhar rapidamente suas informações geoespaciais de uma maneira interoperável.

OpenLayers, uma biblioteca livre de mapeamento, está integrada ao GeoServer, fazendo com que a geração de mapas seja fácil e rápida. GeoServer é construído com Geotools, um conjunto de ferramentas Java GIS de software livre (licenciamento LGPL).

GeoServer pode exibir dados em qualquer um dos aplicativos de mapeamento populares, como Google Maps, Google Earth, Yahoo Maps e Microsoft Virtual Earth. Além disso, GeoServer pode se conectar com arquiteturas GIS tradicionais, tais como ESRI ArcGIS.


2. Requerimentos Java

Instalar o OpenJDK ou o Sun-Java, conforme descrito no post Instalar Java no Linux Debian, pois o GeoServer requer que a máquina virtual Java esteja instalada no ambiente da máquina hospedeira. Um Java Development Kit (JDK) não é necessário para executar o GeoServer.
Obs: é recomendável deixar a variável JAVA_HOME definida. Caso esta não seja definida, o Tomcat procura o java em alguns diretórios que são comuns para o OpenJDK, o sun-java, e para várias versões do J2SE.

3. Requerimentos servidor HTTP

GeoServer é empacotado como um servlet independente para uso com containers existentes como o Apache Tomcat ou o Jetty. O Jetty é o grande concorrente do Tomcat, o qual ficou famoso principalmente por ter sido utilizado no passado como o servlet container do JBoss. A grande vantagem do Jetty com relação ao Tomcat é a sua fácil configuração. Em 2009, o projeto Jetty mudou seus componentes principais para ser um projeto da Fundação Eclipse.

Assim, tem-se duas maneiras de colocar o Geoserver em funcionamento: com container Jetty e com o container Tomcat. Descreveremos deste ponto em diante as duas formas de instalação.

4. Instalar o GeoServer utilizando o container Jetty numa máquina Linux – Debian
4.1Jetty
a) Instalar o Jetty
Jetty é um projeto “open-source” fornecendo um servidor HTTP, cliente HTTP e “javax.servlet container”. É um concorrente do Tomcat e é utilizado como o servlet container do JBoss. Talvez a grande vantagem do Jetty com relação ao Tomcat é a sua fácil configuração.
Para instalar o Jetty:
apt-get install jetty libjetty-java libjetty-extra libjetty-extra-java

Fazendo esta instalação, teremos:

/usr/share/jetty/ Diretório HOME do Jetty na distribuição Debian. Outros diretórios são “linkados” a partir deste diretório HOME.
/var/log/jetty/ Pasta de logs do Jetty
/usr/share/jetty/webapps/ Pasta para as aplicações Java (“webapp static deployment directory”).
OBS: na verdade webapps é um apontador para a pasta /var/lib/jetty/webapps
/etc/jetty/jetty.xml Arquivo de configuração do servidor Jetty
/etc/init.d/jetty start|stop|restart Comandos para iniciar|parar|reiniciar o Jetty

b) Configurar o Jetty
Versão do Jetty: uma maneira fácil de identificar a versão do Jetty é olhar o seu log, que pode ser encontrado em /var/log/jetty. Observando o conteúdo de qualquer arquivo “stderrout.log” desta pasta, tem-se a versão do jetty que está rodando. No momento deste post, tínhamos neste arquivo de log:
[main] INFO org.mortbay.log - jetty-6.1.24

Ou seja, temos a versão 6.1 do Jetty.

É preciso fazer uma rápida configuração para o Jetty funcionar legal, editando /etc/default/jetty:

/*  Obrigatórias */
NO_START=0                  ## Libera a inicialização do servidor.
JETTY_HOST=0.0.0.0     ## Define que o servidor irá "ouvir" todas as interfaces.
/* Opcionais */
# Default for number of days to keep old log files in /var/log/jetty/
LOGFILE_DAYS=10
# The network port used by Jetty
JETTY_PORT=8080

e Reiniciar o Jetty:

# /etc/init.d/jetty restart

Agora, com o navegador, já podemos verificar o funcionamento do Jetty acessando http://IP-servidor:8080 e obtendo a seguinte página:
Tela inicial do Jetty

OBS: um teste manual rápido do funcionamento do Jetty também pode ser feito da seguinte forma:
/usr/share/jetty# java -jar start.jar e após este comando acessar com o navegador a página inicial do jetty conforme acima.

Pronto! Agora as aplicações Java (arquivos .war) podem ser adicionandas no diretório /usr/share/jetty/webapps
Após inserir uma aplicação no diretório, o Jetty deve ser reiniciado.
A URL para acessar a aplicação será  http://IP-servidor:8080/aplicacaowar

OBS: nesta pasta /usr/share/jetty/webapps pode-se colocar um link simbólico para a pasta onde está a aplicação (por exemplo, as páginas HTML e Javascript da aplicação). Para isto, use o comando:
/usr/share/jetty/webapps# ln -s /var/www/geoinformacao/teste teste
Assim, veja uma possível listagem desta pasta /usr/share/jetty/webapps:


lrwxrwxrwx 1 root    root    geoinformacao -> /var/www/geoinformacao/versao04
-rw-r--r-- 1 root    root    geoserver.war
-rw-r--r-- 1 jetty   adm     README.TXT
drwxr-xr-x 2 jetty   adm     root
lrwxrwxrwx 1 root    root    solr -> /usr/share/solr/web
lrwxrwxrwx 1 root    root    teste -> /var/www/geoinformacao/teste
lrwxrwxrwx 1 root    root    versao05 -> /var/www/geoinformacao/versao05

Por último, não esquecer de reiniciar o Jetty para o que o link simbólico tenha efeito:
# /etc/init.d/jetty restart

4.2. GeoServer
a) Baixar o Geoserver
Navegue até a página de Download do GeoServer e escolha a opção “Web Archive”, ou seja, baixe o arquivo WAR.

b) Descompactar o Geoserver
Utilize o seguinte comando:

$ unzip geoserver-2.3.2-war.zip

OBS: ficará disponível o arquivo geoserver.war . No momento deste post, versão estável do GeoServer: 2.3.2

c) Disponibilizar o Geoserver no diretório de webapps do Jetty
Copiar o arquivo geoserver.war para o diretório que contém o container de aplicações webapps.

# mv geoserver.war /usr/share/jetty/webapps/.
# /etc/init.d/jetty restart

Quando reiniciar o Jetty, este reconhecerá o arquivo WAR e imediatamente começará a implantar o aplicativo web. Este processo leva algum tempo e depende do hardware usado. Após isso, é só acessar com o navegador http://IP-servidor:8080/geoserver que a página inicial do Geoserver será mostrada. Para entrar na área restrita, o nome de usuário é admin e a senha é geoserver.

d) Configurar o ambiente do Geoserver para funcionar com o Jetty
A área onde o GeoServer amazena toda sua configuração é chamada “Geoserver data directory”. Mas a cada reiniciação do Jetty é feita a re-extração do Geoserver do arquivo “.war” e a área default do “Geoserver data directory” é reiniciada. Ou seja, todas as configurações do Geoserver são perdidas. Veja uma “fotografia” desta pasta no momento deste post:

drwxr-xr-x jetty jetty Jun 30 .
drwxr-xr-x root  root  Jun 30 ..
drwxr-xr-x jetty jetty Jun 30 coverages
drwxr-xr-x jetty jetty Jun 30 data
drwxr-xr-x jetty jetty Jun 30 demo
-rw-r--r-- jetty jetty Jun 30 global.xml
drwxr-xr-x jetty jetty Jun 30 gwc
-rw-r--r-- jetty jetty Jun 30 gwc-gs.xml
drwxr-xr-x jetty jetty Jun 30 gwc-layers
drwxr-xr-x jetty jetty Jun 30 layergroups
-rw-r--r-- jetty jetty Jun 30 logging.xml
drwxr-xr-x jetty jetty Jun 30 logs
drwxr-xr-x jetty jetty Jun 30 palettes
drwxr-xr-x jetty jetty Jun 30 plugIns
-rw-r--r-- jetty jetty Jun 30 README.rst
drwxr-xr-x jetty jetty Jun 30 security
drwxr-xr-x jetty jetty Jun 30 styles
drwxr-xr-x jetty jetty Jun 30 user_projections
drwxr-xr-x jetty jetty Jun 30 validation
-rw-r--r-- jetty jetty Jun 30 wcs.xml
-rw-r--r-- jetty jetty Jun 30 wfs.xml
-rw-r--r-- jetty jetty Jun 30 wms.xml
drwxr-xr-x jetty jetty Jun 30 workspaces

Recomenda-se alocar o “Geoserver data directory” em uma outra área que não seja apagada a cada reiniciação do Jetty. Para isto deve-se criar uma variável de ambiente chamada “GEOSERVER_DATA_DIR”, que apontará para este local externo. O Geoserver, na sua iniciação, verificará se esta variável está definida e a utilizará. Caso contrário, utilizará a área default reservada pelo Jetty que no ambiente de teste utilizado no momento deste post era /var/cache/jetty/data/Jetty_0_0_0_0_8080_geoserver.war__geoserver__.m1t4op/webapp/data .

Mas como configurar esta variável de ambiente, por exemplo, apontando para “/var/www/geoserver_data”? É simples, em duas etapas:
Etapa-1: editar o arquivo /root/.bashrc e incluir a seguinte linha ao seu final:
export GEOSERVER_DATA_DIR=/var/www/geoserver_data

Etapa-2: utilizar os comandos complementares abaixos:

# source /root/.bashrc
# /etc/init.d/jetty restart

OBS:
1) o arquivo .bashrc é lido e executado a cada bash start-up e é destinado a popular o shell com variáveis de ambientes e aliases, e executar comandos que o usuário necessita no seu start-up.
2) o comando “source /root/.bashrc” executa aquele arquivo .bashrc imeditamente.

Mas como saber o local que o Geoserver está utilizando para o seu “Geoserver data directory”? Muito fácil, e existem duas formas:
1- Forma-1: acessar o Geoserver como administrador, utilizar o menu “About & Status” -> “Server Status”. No caso default,
se verá o “Geoserver Data directory” como /var/cache/jetty/data/Jetty_0_0_0_0_8080_geoserver.war__geoserver__.m1t4op/webapp/data
2- Forma-2: acessar o arquivo atual de log do Jetty (no momento deste post era o arquivo /var/log/jetty/2012_06_30.stderrout.log , onde se encontra logado o local utilizado como “GEOSERVER_DATA_DIR”:

30 Jun 12:31:17 INFO [geoserver.global] - 
------------------------------------------
- GEOSERVER_DATA_DIR: /var/www/geoserver_data
------------------------------------------

Criar um novo diretório de dados do Geoserver
Uma vez que o diretório de dados default “Geoserver Data directory” fora criado, deve-se copiá-lo (incluindo seus subdiretórios) para sua nova localização externa. Continuando com os mesmos parâmetros que vimos utilizando anteriormente, deve-se fazer:

# cp -R /var/cache/jetty/data/Jetty_0_0_0_0_8080_geoserver.war__geoserver__.m1t4op/webapp/data/* /var/www/geoserver_data/.

 

e) Recomendações de segurança para o Geoserver em produção
Observar o conteúdo do arquivo /var/cache/jetty/data/Jetty_0_0_0_0_8080_geoserver.war__geoserver__.m1t4op/webapp/data/security/masterpw.info:

This file was created at 2012/10/26 12:23:25
The generated master password is: IHg”UwfH
Test the master password by logging in as user “root”
This file should be removed after reading !!!.

Este arquivo, além de users.properties.old, devem ser removidos:
# rm /var/cache/jetty/data/Jetty_0_0_0_0_8080_geoserver.war__geoserver__.m1t4op/webapp/data/security/masterpw.info
# rm /var/cache/jetty/data/Jetty_0_0_0_0_8080_geoserver.war__geoserver__.m1t4op/webapp/data/security/users.properties.old


5. Instalar o GeoServer utilizando o container Tomcat numa máquina Linux – Debian

5.1. Instalar o Tomcat
Instale o Tomcat conforme descrito no post “Instalar servidor Tomcat no Linux – Debian“. No caso, o Tomcat estará respondendo na porta 8080.

5.2. Baixar o GeoServer
Navegue até a página de Download do GeoServer e escolha a opção “Web Archive”, ou seja, baixe o arquivo WAR.

5.3. Descompactar

Faça a descompressão do arquivo baixado que, quando da criação deste post, fora realizado da seguinte forma:

$ unzip geoserver-2.1.3-war.zip

5.4. Disponibilizar o geoserver no diretório de webapps do Tomcat
Copiar o arquivo geoserver.war para o diretório que contém o container de aplicações webapps.

# cp geoserver.war /var/lib/tomcat6/webapps/.

Quando reiniciar o Tomcat, este reconhecerá o arquivo WAR e imediatamente começará a implantar o aplicativo web. Este processo leva algum tempo e depende do hardware usado. Reinicie o Tomcat da seguinte forma:

# /etc/init.d/tomcat6 restart

Observe que fora criada a pasta /var/lib/tomcat6/webapps/geoserver/ contendo os arquivos Java executáveis do Geoserver.

5.5. Executar o Geoserver
Estando o Tomcat sendo executado na porta 8080 no localhost, a URL de acesso ao Geoserver será http://IP-servidor:8080/geoserver .

5.6 Recomendações de segurança para as versões Geoserver anteriores à 2.5
a) Observar o conteúdo do arquivo /var/lib/tomcat6/webapps/geoserver/data/security/masterpw.info:

This file was created at 2012/10/26 12:23:25
The generated master password is: IHg"UwfH
Test the master password by logging in as user "root"
This file should be removed after reading !!!.

Este arquivo deve ser removido:
# rm /var/lib/tomcat6/webapps/geoserver/data/security/masterpw.info

b) Observar o conteúdo do arquivo /var/lib/tomcat6/webapps/geoserver/data/security/users.properties.old:

# This is the admnistrator (as well as whoever else has the ROLE_ADMINISTRATOR attached)
admin=geoserver,ROLE_ADMINISTRATOR
# These are sample users you may uncomment if you want to test locking down wfs (see service.properties)
#wfst=wfst,ROLE_WFS_READ,ROLE_WFS_WRITE
#wfs=wfs,ROLE_WFS_READ

Este arquivo deve ser removido:
# rm /var/lib/tomcat6/webapps/geoserver/data/security/users.properties.old

c) Mudar a senha de administrador, que fora criada na instalação do Geoserver:
Senha default: admin/geoserver

5.7 Recomendações de segurança para o Geoserver versão 2.5
O Geoserver vem com dois usuários administrativos habilitados a fazer login na aplicação:
– username: root, password: geoserver
– username: admin, password: geoserver

a) Usuário root
Por segurança, a senha deste usuário deve ser trocado assim que o Geoserver for instalado. Esta é trocada facilmente fazendo-se login no Geoserver e, através do menu principal à esquerda, acessar a opção “security -> Passwords”.

Quando a tela de tratamento de “Passwords” for aberta, troque a senha do usuário root utilizando o link “Change password” conforme a figura abaixo.
Geoserver 2.5: trocar senha do usuário root.
 
OBS: a senha do usuário root default é “geoserver”. Esta é guardada de forma criptografada em /var/lib/tomcat6/webapps/geoserver/data/security/masterpw/default/passwd .

b) Usuário admin
Também sua senha deve ser trocada assim que o Geoserver for instalado. Através da opção “User,Groups,Roles -> Users/Groups” disponibilizada a partir do menu principal do Geoserver, clicar no hyperlink “admin” conforme a figura abaixo e trocar a senha do usuário.
Geoserver2.5: trocar senha do usuário admin.

5.8 Arquivo de Logs
O lugar padrão dos logs do Geoserver é /geoserver/data/logs/geoserver.log. Estes mesmos logs podem ser visualizados através do painel do Geoserver pela opção “GeoServer Logs”.
 
6. Layers default
Quando da instalação do Geoserver, alguns layers default estão disponíveis. Através da operação GetCapabilities utilizando um navegador é possível itentificar estes layers:
http://IP-servidor:8080/geoserver/wms?service=wms&version=1.1.1&request=GetCapabilities

Veja os resultados obtidos:

nurc:Arc_Sample
nurc:Img_Sample
sf:archsites
sf:bugsites
tiger:giant_polygon
nurc:mosaic
tiger:poi
tiger:poly_landmarks
sf:restricted
sf:roads
sf:sfdem
topp:states
sf:streams
topp:tasmania_cities
topp:tasmania_roads
topp:tasmania_state_boundaries
topp:tasmania_water_bodies
tiger:tiger_roads

7. Desinstalar
Caso necessite desinstalar o Geoserver, basta remover o GeoServer webapp do diretório das aplicações de webapps do container.

Referências
1- Utilizar o GeoServer
2- O Geoserver em produção e com segurança
Veja também:
3- Geoserver
4- GeoServer Data Directory
5- GIS Tutorials
6- seiti.eti.br
7- Projeto Jetty
8- Introdução ao Jetty
9- Documentação do Jetty//Devian-Packages
10- Geoserver 2.5 Security

Anúncios
comentários
  1. pedro disse:

    Olá,

    Como posso aumentar o maxpermsize do jetty? segui este tutorial para instalar o geoserver mas agora não encontro o arquivo de configuração.

    obrigado

Deixe um comentário, pois isto é muito motivante para continuarmos este trabalho

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s