Você está na página 1de 9

TUTORIAL - SERVIDOR DE MAPAS

Desenvolvido pela Equipe Programao Laboratrio de Geotecnia EP UFBA

TUTORIAL - SERVIDOR DE MAPAS


INTRODUO Os passos descritos nesse tutorial so fruto da experincia obtida na realizao de tais procedimentos para instalao de um Servidor de Mapas, sendo que tais procedimentos podem variar de acordo com o sistema operacional, distribuio, e verso dos pacotes utilizados. Os passos seguidos foram aplicados na distribuio linux Slackware 10.0. Este tutorial no inclui passos de instalao do Linux, para tais detalhes consulte a documentao da sua distribuio. No Servidor de Mapas, podem ser utilizados diversos recursos, como customizao da interface, utilizando recursos de JavaScript, PHP, entre outras recursos dinmicos, alm da disponibilizao dos dados geogrficos, fazendo a opo de utilizao de consulta em arquivos shape ou banco de dados robustos, como o PostGreSql. Neste projeto, um primeiro passo foi a realizao de teste de conceito, apenas com consulta de arquivos shapes e customizao de interface grfica, estendendo-se a consulta e alimentao de banco de dados. As informaes contidas neste tutorial incluem, ainda que superficialmente, a utilizao de banco de dados. INSTALAO E CONFIGURAO sabido que para a instalao e configurao necessria autenticao como usurio com privilgios de administrador (root). Pacotes so necessrios para instalao e configurao do Servidor de Mapas: - Apache 1.3.31 - GD 2.0.33 - Geos 2.1.1 - MapServer 4.4.1 - Php 4.3.10 - PhpPgAdmin 3.5.1 - PostGis 0.9.1 - PostGreSql 7.4.6 - Proj 4.4.9 Estes pacotes podem ser facilmente na Internet, no entanto pode-se consultar os sites listados na referencia deste. Uma vez feito download dos pacotes, iremos proceder a instalao. PACOTES - INSTALAO E VERIFICAO Apache O primeiro pacote a ser instalado do Apache. Ele constitui o servidor Web. O primeiro passo saber se, na instalao da distribuio, o apache foi instalado corretamente. Para tanto, deve abrir o navegador e digitar: http://localhost/ 1

TUTORIAL - SERVIDOR DE MAPAS

Desenvolvido pela Equipe Programao Laboratrio de Geotecnia EP UFBA

Uma pgina semelhante a Figura 1 deve ser mostrada no navegador, caso o apache esteja instalado, e sendo executado.

Figura 1 Tela inicial do apache Algumas linhas devero estar includas no arquivo de configurao do apache httpd.conf, para isso: Edite o arquivo de configurao:
# vim /etc/apache/httpd.conf

Neste arquivo deve ser incrementado a linha de comando:


Include /etc/apache/mod_php.conf

A linha DocumentRoot destina-se a colocar o endereo de onde sero alocados as pastas e arquivos disponibilizados. Como sugesto mantenha /var/www/htdocs Modificar Options, logo abaixo a linha do ScriptAlias, de None. para ExecCGI. Esta configurao do CGI-Bin permitir, ao final dos processos, a execuo do MAPSERVER. Por ltimo deve ser acrescentado na linha DirectoryIndex a opo index.php Proj-4 Este pacote oferta possibilidade de se trabalhar com vrios sistemas de projeo compatibilizando assim visualizar no navegador dados em sistemas diferentes. Descompacte o Proj4 utilizando:
# tar -xzvf proj-4.4.9.tar.gz

Para instalao deste pacote proceda:


# ./configure # make # make install

TUTORIAL - SERVIDOR DE MAPAS

Desenvolvido pela Equipe Programao Laboratrio de Geotecnia EP UFBA

Geos Este pacote assemelha-se a ferramenta "Geoprocessing Wizard" que a ESRI implementou. D suporte a Cliping, Union, Merge... Descompacte o Geos utilizando:
# tar -xJvf geos-2.1.1.tar.bz2

Para instalao deste pacote proceda:


# ./configure # make # make install

Agora, ser instalado o primeiro pacote que faz referencia ao banco de dados: PostgreSql Descompacte o PostgreSql utilizando:
# tar -xzvf postgresql-7.4.6.tar.gz

Para instalao deste pacote proceda:


# ./configure # make # make install

Configurao: Configure o PostgreSql, para ser executado na inicializao do sistema. Para a distribuio Slackware os passos so os seguintes: Crie um usurio postgres:
# adduser postgres

Obs.: Na criao do usurio postgres, importante lembrar que este usurio e senha, sero utilizados posteriormente para criao, edio e visualizao do seu banco de dados atravs do pacote Phppgadmin. Crie uma pasta de dados para o banco, e mude o usurio do diretrio:
# mkdir /usr/local/pgsql/data # chown postgres /usr/local/pgsql/data

Mude para usurio postgres:


# su - postgres

Vincule o DB a esta pasta:


# /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

Crie um arquivo rc.postgres, dentro do diretrio /etc/rc.d/ com o seguinte contedo: # !/bin/sh # Script para inicializar e terminar o PostgreSQL SERVER=/usr/local/pgsql/bin/postmaster PGCTL=/usr/local/pgsql/bin/pg_ctl PGDATA=/usr/local/pgsql/data OPTIONS=-i LOGFILE=/usr/local/pgsql/data/postmaster.log 3

TUTORIAL - SERVIDOR DE MAPAS

Desenvolvido pela Equipe Programao Laboratrio de Geotecnia EP UFBA

case "$1" in start) echo -n "Inicializando o PostgreSQL..." su - postgres -c "nohup $SERVER $OPTIONS -D $PGDATA >$LOGFILE 2>&1 &" ;; stop) echo -n "Finalizando PostgreSQL..." su - postgres -c "$PGCTL -D $PGDATA stop" ;; *) echo "Sintaxe: $0 {start|stop}" exit 1 ;; esac exit 0 Mude a permisso deste arquivo para ser utilizado pelo usurio postgres:
# chmod 755 rc.postgres

Edite o /etc/rc.d/rc.M:
# vim /etc/rc.d/rc.M

Adicione no final do script essas linhas # Inicializa Servidor de Dados PostgreSql if [ -x /etc/rc.d/rc.postgres ]; then . /etc/rc.d/rc.postgres start fi Edite o /etc/rc.d/rc.0:
# vim /etc/rc.d/rc.0

Localize o local de descrio dos servios dos servidores e adicione: # Finalizar o Servidor PostgreSql if [ -x /etc/rc.d/rc.postgres ]; then . /etc/rc.d/rc.postgres stop fi Edite o /etc/rc.d/rc.6:
# vim /etc/rc.d/rc.6

Localize o local de descrio dos servios dos servidores e adicione: # Finalizar o Servidor PostgreSql if [ -x /etc/rc.d/rc.postgres ]; then . /etc/rc.d/rc.postgres stop fi Edite o /etc/rc.d/rc.K:
# vim /etc/rc.d/rc.K

Localize o local de descrio dos servios dos servidores e adicione: 4

TUTORIAL - SERVIDOR DE MAPAS

Desenvolvido pela Equipe Programao Laboratrio de Geotecnia EP UFBA

# Finalizar o Servidor PostgreSql if [ -x /etc/rc.d/rc.postgres ]; then . /etc/rc.d/rc.postgres stop fi Depois de concludo essas operaes, voc deve verificar se est tudo de acordo. -Reinicie o computador. L dever constar na inicializao a mensagem "Inicializando o PostgreSQL...". - uma vez iniciado, verifique no arquivo /usr/local/pgsql/data/postmaster.log se o servidor foi iniciado corretamente. Dever constar mensagem "database system is ready". Caso alguns destes passos no estejam de acordo, verifique a instalao, ou consulte a documentao do PostgreSql. Obs.: De modo a facilitar a operao deve-se criar um banco de dados teste para dar continuidade a instalao dos outros pacotes. Proceda a seguinte operao para criao do banco teste: Primeiro mude para o usurio postgres
# su postgres

Digite para criao do banco:


# /usr/local/pgsql/bin/createdb test

Dever aparecer uma mensagem informando que o banco foi criado. Utilize desse comando para verificao:
# /usr/local/pgsql/bin/psql test

Nessa linha de comando poder realizar as funes manualmente. Digite: "\q" para sair. Uma vez criado o banco "test" prosseguiremos com a instalao do pacote PostGis. PostGis Retorne ao usurio root:
# exit

Descompacte o PostGis dentro da pasta contrib, criada na descompactao do PostGreSql. No nosso caso acessamos a pasta contrib:
# cp postgis-0.9.1.tar.gz postgresql-7.4.6/contrib/ # cd /root/downloads/postgresql-7.4.6/contrib # tar -xzvf postgis-0.9.1.tar.gz

Dentro da pasta contrib, acesse o diretrio postgis-0.91 criado:


# cd postgis-0.9.1

Edite o arquivo Makefile com algum editor:


# vim Makefile

Confirme que as variveis USE_PROJ e USE_GEOS estejam setadas para 1(true). Confirme que as variveis PROJ_DIR e GEOS_DIR estejam setadas para /usr/local/ . 5

TUTORIAL - SERVIDOR DE MAPAS

Desenvolvido pela Equipe Programao Laboratrio de Geotecnia EP UFBA

Para instalao destes pacotes proceda:


# make # make install

Configurao do PostGis: Mude para usurio postgres:


# su postgres

Digite essas linhas de comando:


# /usr/local/pgsql/bin/createlang plpgsql test # /usr/local/pgsql/share$ /usr/local/pgsql/bin/psql -f /usr/local/pgsql/share/postgis.sql -d test

Obs.: Ao finalizar devero aparecer diversas informaes de criao de tabelas e funes associadas ao PostGis. At o momento os pacotes relativos a banco de dados j foram instalados. Os pacotes que se seguiro, ditos pacotes bsicos, sero de fundamental importncia, pois caso se faa a opo de um servidor de mapas apenas com consulta de arquivos shape, eles devero estar instalados. GD Este pacote uma biblioteca grfica e utilizada pelo PHP, para criao de imagens e do MAPSERVER, no nosso caso para a criao dos mapas. Compilaremos a GD, com possibilidade de imagens nos formatos Jpeg, Png, Tiff e com a Freetype para insero de textos utilizando fontes TrueType nas imagens. Descompacte:
# tar -xzvf gd-2.0.33.tar.gz

Dentro do diretrio gd-2.0.33 criado:


# cd gd-2.0.33

Informe as diretivas de compilao necessrias:


# ./configure --with-ttf=/usr --with-jpeg=/usr/lib --with-tiff=/usr/lib --with-png=/usr/lib

Para compilao deste pacote proceda:


# make # make install

PHP Caso haja um pacote do PHP previamente instalado pela distribuio, deve-se remov-lo. Isto necessrio para que no haja conflitos e problemas futuros. H necessidade de recompilao do pacote PHP para que se faa uso do PHPPgAdmin. Continuando, Descompacte:
# tar -xzvf php-4.3.10.tar.gz

Dentro do diretrio php-4.3.10 criado:


# cd php-4.3.10

Informe as diretivas de compilao necessrias:


# ./configure '--prefix=/usr' '--disable-static' '--sysconfdir=/etc' '--enable-discard-path' '--with-config-file-path=/etc/apache' '--enablesafe-mode' '--with-openssl' '--with-mhash' '--enable-bcmath' '--with-bz2' '--with-pic' '--enable-calendar' '--enable-ctype' '--with-gdbm' '-with-db3' '--enable-dbase' '--enable-ftp' '--with-iconv' '--with-exif' '--with-gd' '--enable-gd-native-ttf' '--with-jpeg-dir=/usr' '--with-png' '-with-gmp' '--with-mysql=shared,/usr' '--with-gettext=shared,/usr' '--with-expat-dir=/usr' '--with-xml' '--enable-wddx' '--with-mm=/usr' '-enable-trans-sid' '--enable-shmop' '--enable-sockets' '--with-regex=system' '--enable-sysvsem' '--enable-sysvshm' '--enable-yp' '--enable-

TUTORIAL - SERVIDOR DE MAPAS

Desenvolvido pela Equipe Programao Laboratrio de Geotecnia EP UFBA

memory-limit' '--with-tsrm-pthreads' '--enable-shared' '--disable-debug' '--with-zlib=/usr' '--with-freetype-dir=/usr' '--enable-gd-imgstrttf' '--with-pgsql=/usr/local/pgsql'

Para compilao deste pacote proceda:


# make # make install

Obs.: Note que h necessidade de recompilar o PHP para que ele reconhea os outros requisitos, como o pacote do PHPpgAdmin e do PostgreSql. O mapserver funciona como uma aplicao CGI. Caso fizesse a opo de desinstalar o pacote, o que no recomendvel, deve-se recompilar alm do PHP tambm o Apache, com algumas diretivas, o que torna uma opo complexa para iniciantes. PhpPgAdmin Copie o arquivo phpPgAdmin-3.5.1.tar.gz para o diretrio que foi escolhido como "DocumentRoot", configurado no Apache. No nosso caso foi utilizado o diretrio padro do Slackware - /var/www/htdocs. Copiando:
# cp phpPgAdmin-3.5.1.tar.gz /var/www/htdocs

Descompactando
# tar -xzvf phpPgAdmin-3.5.1.tar.gz

Voc pode testar o funcionamento pelo navegador, acessando:


http://localhost/phpPgAdmin/

Figura 2 Tela inicial do phpPgAdmin Caso os procedimentos tenham sido executados com xito, a tela da Figura 2 deve ser mostrada no navegador.

Desenvolvido pela Equipe Programao Laboratrio de Geotecnia EP UFBA Obs.: Por motivos de segurana, o usurios root e postgres no tero permisso de acessar utilizando do recurso do phpPgAdmin.
TUTORIAL - SERVIDOR DE MAPAS

Para acessos dever fazer uma das duas opes 1 - Poder modificar as permisses de segurana a fim de que usurios root e postgres possam autenticar: edite o arquivo "config.inc.php" contido na pasta "/var/www/htdocs/phpPgAdmin/conf"
# vim /var/www/htdocs/phpPgAdmin/conf/config.inc.php

Sete a opo false na variavel $conf['extra_login_security']. 2 Pode-se criar usurios diferentemente do root ou postgres para que estes autentiquem no phpPgAdmin e execute as tarefas. Mapserver Descompacte:
# tar -xzvf mapserver-4.4.1.tar.gz

Dentro do diretrio mapserver criado:


# cd mapserver-4.4.1

Informe as diretivas de compilao necessrias:


# ./configure --with-proj=/usr/local --with-postgis=/usr/local/pgsql/bin/pg_config --enable-force-freetype1

Para compilao deste pacote proceda:


# make # make install

Ao finalizar a instalao copie o binrio "mapserv" criado para o diretrio cgi-bin da distribuio, em nosso caso:
# cp mapserv /var/www/cgi-bin/

Acesse o endereo abaixo no seu navegador para verificar se a instalao ocorreu com sucesso:
http://localhost/cgi-bin/mapserv?

A mensagem a seguir dever ser mostrada:


No query information to decode. QUERY_STRING is set, but empty.

H uma aplicao de demonstrao na seo de download do site do MAPSERVER, que para verificao de recursos bsicos se apresenta eficiente. CONSIDERAES O uso da linguagem PHP como ferramenta de customizao, no incio do projeto, apresentava-se como uma opo clara e facilitadora do processo, porm segundo os estudos e pesquisas realizados existe um bug ao utilizar no MAPSERVER, o PHP como mdulo do Apache. Alm deste fato, o uso de JavaScript, como ferramenta de customizao, mostrou-se mais eficiente que PHP/MapScript.

TUTORIAL - SERVIDOR DE MAPAS

Desenvolvido pela Equipe Programao Laboratrio de Geotecnia EP UFBA

STIOS CONSULTADOS Slackware Distribuio LINUX www.slackware.org Apache http://www.apache.org/ PHP Download e Documentao www.php.net MAPSERVER Brasil http://mapserver.cttmar.univali.br/ MAPSERVER - University of Minnesota http://mapserver.gis.umn.edu/ GD http://www.boutell.com/gd/ Proj http://www.remotesensing.org/proj MapLab Editor de Arquivos MAP http://www.maptools.org/maplab/ Lista de Usurios MAPSERVER http://lists.gis.umn.edu/mailman/listinfo/mapserver-users Lista de Desenvolvedores MAPSERVER http://lists.gis.umn.edu/mailman/listinfo/mapserver-dev FreeGis http://freegis.org/ MapTools http://www.maptools.org/ PostGis http://postgis.refractions.net/ PostgreSql Brasil http://www.postgresql.org.br/

Você também pode gostar