README.md

Versão 7 do i3Geo

Para versões do PHP 5.x, Mapserver 7.x ou posteriores e Openlayers 4

Utilize esse repositório para manter seu código sempre atualizado diariamente. Isso garante o recebimento de correções de bugs.

Arquivos antigos e outras informações, veja em: https://softwarepublico.gov.br/social/i3geo/

Guia completo sobre instalação e administração do software, veja em: https://softwarepublico.gov.br/gitlab/i3geo/i3geo/wikis/home

Sobre segurança: https://softwarepublico.gov.br/gitlab/i3geo/i3geo/wikis/notas-sobre-seguranca

Guia de instalação

O i3Geo pode ser instalado em diferentes sistemas operacionais Linux e também no Windows. Nesse tutorial será mostrado como instalar no Windows e no Ubuntu.

Os arquivos do i3Geo estão disponíveis no Portal do Software Público Brasileiro (SPB). Para ter acesso a eles é desejável fazer um cadastro. O SPB, utiliza o Git, um sistema de controle de versões para disponibilizar o código. Assim, para obter os arquivos do i3Geo é necessário ter um cliente Git. No Windows pode ser utilizado o Tortoise. A utilização do Git é importante pois você poderá atualizar o software sempre que achar necessário.

Docker

Esta versão do i3geo conta com uma imagem Docker que pode ser utilizada para testar rapidamente o software e também utiliá-lo em ambiente produtivo após as suas customizações.

Para usar basta ter o Docker instalado no seu computador e executar o seguinte comando:

docker run -i -t -p 80:8080 --rm i3geo/i3geo

Em seguida, acesse um navegador de sua preferência e insira o seguinte endereço:

http://localhost/i3geo

Mais opções em https://hub.docker.com/u/i3geo/dashboard/

Dicas sobre Docker: https://www.digitalocean.com/community/tutorials/como-instalar-e-utilizar-o-docker-primeiros-passos-pt

Windows

Utilize pacote MS4W, que irá transformar o seu computador em um servidor web (apenas para uso pessoal), ao instalar os softwares APACHE, PHP e Mapserver.

Para isso faça o download do arquivo de instalação em http://www.ms4w.com/download.html#download.

Nas opções de pacotes escolha pelo menos "MS4W Base Files" e "Install and Start Apache Server", na opção "Destination root" escolha "C:\" e em "Apache port" mantenha como "80".

Teste a instalação digitando em seu navegador de internet: http://localhost (se não funcionar, reinicie o computador).

Depois de instalado o MS4W você terá em seu computador a pasta c:\ms4w\Apache\htdocs. Dentro dessa pasta é que o i3Geo deverá ser copiado.

Alguns usuários reportaram problemas ao instalar o Apache em algumas versões do Windows. Nesses casos a seguinte rotina pode resolver o problema:

  • No Painel de Controle, digite no campo de pesquisa UAC
  • Escolha a opção “Alterar configurações de Controle de Contas de Usuário”.
  • Na janela que será aberta na sequência, configure para “Nunca notificar“.
  • Reinicie o computador
  • Execute novamente o arquivo apache-install.bat
  • Para confirmar que tudo ocorreu bem, abra o navegador de internet e digite http:\localhost

i3Geo

Para obter o código do i3Geo você tem duas opções, a primeira utiliza simplesmente o download de um arquivo e a segunda utiliza o Git. A vantagem da segunda opção é que você poderá atualizar sua instalação de forma mais fácil.

Primeira opção:

Segunda opção:

  • Instale o Git: https://git-for-windows.github.io/ utilizando as opções default.
  • Após a instalação, clique com o botão da direita sobre a pasta c:\ms4w\Apache\htdocs e escolha a opção "Git Bash Here"
  • No terminal digite a sequência de comandos:
mkdir i3geo
cd i3geo
git -c http.sslVerify=false clone http://softwarepublico.gov.br/gitlab/i3geo/i3geo7.git .

Não esqueça o PONTO no final da linha acima.

Atualização do código (Windows)

Válido apenas se você não é um desenvolvedor do i3Geo e não tenha feito checkout via SSH.

Clique com o botão da direita sobre a pasta c:\ms4w\Apache\htdocs\i3geo e escolha a opção "Git Bash Here"

git stash
git -c http.sslVerify=false pull
git stash pop

Observação:

  • Pode ser que você precise registrar um usuário no Git antes de executar um stash. Para isso execute os seguintes comandos:
git config --global user.email seuemail@example.com
git config --global user.name "Seu Nome"

PostGIS (opcional)

Para instalar o PostGIS siga o roteiro mostrado em http://postgis.net/windows_downloads

Instale também o pgAdmin, que é uma interface gráfica para o PostGIS: http://www.pgadmin.org/download/windows.php

Caso deseje, carregue no PostGIS o banco de dados do i3GeoSaúde. Esse banco é utilizado em alguns dos tutoriais do i3Geo e pode servir de teste para uso com o SAIKU.

  • Primeiro baixe o arquivo https://softwarepublico.gov.br/gitlab/i3geo/i3geosaude/blob/master/databasei3geosaude.backup
  • Abra o pgAdmin e crie uma nova conexão com o banco de dados. Em nome do host utilize "localhost" e o login e senha que você usou na istalação, normalmente "postgres".
  • Utilize as opções do pgAdmin para criar um novo banco de dados chamado i3geosaude. Ao criá-lo, utilize o banco de dados postgres como template e login e senha "postgres".
  • Clicando sobre o novo banco de dados, localize a opção "restore" e faça a carga do banco de dados que foi baixado no início.

Linux (baseado em Ubuntu 14.04)

Instale os softwares necesários para configurar o servidor web com PHP5, Mapserver e outros.

Importante: versões mais novas do Ubuntu utilizam PHP7, nesses casos, siga os passos baseados no Ubuntu 16 (https://softwarepublico.gov.br/gitlab/i3geo/i3geo#linux-baseado-em-ubuntu-16).

No terminal, digite a sequência de comandos abaixo.

sudo apt-get install apache2 apache2-doc apache2-utils cgi-mapserver mapserver-bin sqlite libapache2-mod-php5 php5 php5-common php5-dev php5-curl php5-json php5-gd php5-odbc php5-pgsql php5-sqlite php5-ps php5-xmlrpc php5-xsl php5-imagick php5-mapscript
sudo apt-get install proj-epsg
sudo a2enmod cgi
sudo service apache2 restart
sudo mkdir /var/www/html/i3geo
sudo mkdir /tmp/ms_tmp
sudo ln -s /tmp/ms_tmp /var/www/html/ms_tmp

Caso queira usar o software em conjunto com o i3Geo:

sudo apt-get install r-cran-spatstat
sudo apt-get install r-base r-base-core r-cran-maptools

Dependendo da versão do Ubuntu, pode ser ainda necessário isso:

sudo apt-get install php5-mbstring

Em alguns casos a mbstring já é instalada junto com o PHP, por isso esse comando pode gerar mensagem de erro sem maiores consequências.

Lista de códigos EPSG, sua ausência faz com que os serviços WMS não funcionem.

sudo apt-get install proj-epsg

Ativa o modo CGI

sudo a2enmod cgi

Para reiniciar o Apache e efetivar as mudanças

sudo service apache2 restart

Teste a instalação digitando no seu navegador web http://localhost

Linux (baseado em Ubuntu 16)

As versões mais recentes do Ubuntu utilizam como padrão o PHP 7, que é incompatível com o Mapserver e i3Geo.

Nesses casos é necessário adicionar um repositório de código que contenha o PHP 5 e compilar o Mapserver, o que pode ser feito seguindo-se o roteiro:

Digite no terminal Linux:

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install apache2
sudo apt-get install php5.6
sudo apt-get install php5.6-memcached php5.6-cli php5.6-mbstring php5.6-mcrypt php5.6-xml php5.6-curl php5.6-json php5.6-gd php5.6-odbc php5.6-pgsql php5.6-sqlite php5.6-ps php5.6-xmlrpc php5.6-xsl php5.6-imagick
sudo apt-get install memcached
sudo a2enmod rewrite
sudo a2enmod cgi
sudo service apache2 restart
wget http://download.osgeo.org/mapserver/mapserver-7.0.6.tar.gz
tar xvf mapserver-7.0.6.tar.gz
cd mapserver-7.0.6/
sudo apt-get install cmake
mkdir build
cd build
sudo apt-get install libfreetype6-dev
sudo apt-get install php5.6-dev
sudo apt-get install libproj-dev
sudo apt-get install libfribidi-dev
sudo apt-get install libharfbuzz-dev
sudo apt-get install libcairo-dev
sudo apt-get install libgdal-dev
cmake -DCMAKE_INSTALL_PREFIX=/opt \
        -DCMAKE_PREFIX_PATH=/usr/local/pgsql/91:/usr/local:/opt \
        -DWITH_CLIENT_WFS=ON \
        -DWITH_CLIENT_WMS=ON \
        -DWITH_CURL=ON \
        -DWITH_SOS=OFF \
        -DWITH_PHP=ON \
        -DWITH_FCGI=OFF \
        -DWITH_PYTHON=OFF \
        -DWITH_SVGCAIRO=OFF \
        -DWITH_GIF=OFF \
        ../ >../configure.out.txt
make
sudo make install
echo extension=php_mapscript.so>/etc/php/5.6/mods-available/mapscript.ini
phpenmod mapscript
service apache2 restart

i3Geo

Para obter o código do i3Geo você tem duas opções, a primeira utiliza simplesmente o download de um arquivo e a segunda utiliza o Git. A vantagem da segunda opção é que você poderá atualizar sua instalação de forma mais fácil.

Após a instalação, digite no navegador web http://localhost/i3geo

Primeira opção:

Segunda opção:

  • No terminal digite a sequência de comandos:
sudo apt-get install git-core
cd /var/www/html/i3geo
sudo git -c http.sslVerify=false clone http://softwarepublico.gov.br/gitlab/i3geo/i3geo7.git .

Não esqueça o ponto no final da linha acima.

Permissões

Para uso local você pode modificar de forma mais liberal as permissões dos arquivos. No terminal digite:

sudo chmod -R 777 /var/www/html/i3geo
sudo chmod -R 777 /var/www/html/ms_tmp

Em ambiente de produção devem ser consideradas as orientações que constam no artigo sobre segurança (ver Wiki).

Atualização do código (Ubuntu)

Válido apenas se você não é um desenvolvedor do i3Geo e não tenha feito checkout via SSH.

Abra o terminal e digite os seguintes comandos (pode ser necessário usar sudo):

cd /var/www/html/i3geo
git stash
git -c http.sslVerify=false pull
git stash pop

Observação:

  • Pode ser que você precise registrar um usuário no Git antes de executar um stash. Para isso execute os seguintes comandos:
cd /var/www/html/i3geo
git config --global user.email seuemail@example.com
git config --global user.name "Seu Nome"

PostGIS (opcional)

Instale o PostgreSQL e PostGIS

(dependendo da versão do PostgreSQL pode ser necessário alterar de 9.1 para a versão correta)

apt-get install postgresql postgis pgadmin3
apt-get install postgresql-9.1-postgis

Instalando o banco de dados i3GeoSaude para testes

Observações:

  • Pependendo da versão do PostgreSQL alguns comandos podem ser diferentes. Veja a pasta /usr/share/postgresql para descobrir a versão instalada)

  • Pode ser necessário o uso de sudo, exemplo: sudo su - postgres -c "createdb i3geosaude"

  • Você pode primeiro mudar para o usuário postgres e depois executar os comandos. Nesse caso utilize "sudo su postgres" e depois "psql"

  • Para sair de "psql" digite \d

  • Usando psql diretamente, termine a linha de comando sempre com ";"

  • Para entrar em psql no database i3geosaude utilize "psql -d i3geosaude"

  • Para executar um arquivo SQL utilize "\i arquivo.sql"

  • Pode ser que ao final do processo, ele seja executado apesar de ter encontrado erros. Isso se deve a diferenças de versões do PostgreSQL e PostGIS, e pode ser ignorado.

Comandos para instalação:

su - postgres -c "psql -c \"ALTER USER postgres WITH PASSWORD 'postgres'\""
su - postgres -c "createdb i3geosaude"
su - postgres -c "createlang -d i3geosaude plpgsql"
su - postgres -c "psql -d i3geosaude -c 'CREATE EXTENSION postgis;'"
su - postgres -c "psql -d i3geosaude -c 'GRANT ALL ON geometry_columns TO PUBLIC;'"
su - postgres -c "psql -d i3geosaude -c 'GRANT ALL ON geography_columns TO PUBLIC;'"
su - postgres -c "psql -d i3geosaude -c 'GRANT ALL ON spatial_ref_sys TO PUBLIC;'"
pg_restore --host localhost --port 5432 --username postgres --dbname i3geosaude /var/www/databasei3geosaude.backup

(o password é: postgres)

Chave utilizada pela API do GoogleMaps

Devido às restrições de uso da API do GoogleMaps, é necessário registrar uma chave no site do Google para o seu endereço de servidor para que as funcionalidades do i3Geo que utilizam essa API funcionem. Veja como fazer em: http://code.google.com/apis/maps/signup.html.

A chave deve ser incluída na variável $googleApiKey do arquivo i3geo/ms_configura.php.