Tutorial Mapserver
Tutorial Mapserver
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
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
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
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
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
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
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
# 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
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
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
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
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
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
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
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?
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.
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/