Skip to content

Instalação do p.mapper 4.1.1 no CentOS 5

sex, 2011/05/27

Recentemente onde trabalho houve a necessidade de migrar o p.mapper de servidor, pois o hardware antigo estava comprometido. Aproveitando a migração, foi feito também uma atualização da versão 3.2.0 para 4.1.1, e uma mudança de Sistema Operacional, de Kubuntu para CentOS. Minha função foi apenas de fazer o p.mapper rodar no browser do próprio CentOS. As configurações da aplicação e do banco de dados ficaram sob responsabilidade de outras pessoas da equipe, as quais ainda não completaram suas atividades até a presente data.

Fui incentivado a escrever este post devido à dificuldade de encontrar algum material relacionado na internet, até mesmo em inglês. Sem mencionar que é uma documentação útil do meu trabalho de implementação. No site oficial do p.mapper existem as instruções para a implementação no Debian. Neste site inclusive há um link para um repositório que contém todos os pacotes necessários para a instalação do p.mapper 4.0.0 e 3.2.0 em distribuições GNU/Linux que trabalham com pacotes DEB.

Hardware Utilizado

O novo hardware para rodar o p.mapper é virtual, alocado em um servidor de VMs de nossa rede. O software de virtualização que utilizamos é o VMware vSphere. Configuração alterada de uma VM padrão:

  • Disco Rígido de 40GB
  • Memória RAM de 2GB

Sistema Operacional e Particionamento

A terceira partição primária foi criada após a instalação do CentOS. Consulte o post Sistemas de arquivos XFS no CentOS 5.

  • Sistema operacional instalado: GNU/Linux CentOS 5.6 i386
  • Particionamento usado:
    • Primária 1: 10GB; Sistema de arquivos EXT3; Monta a raiz do sistema de arquivos.
    • Primária 2: 3GB; Monta a SWAP.
    • Primária 3: 27GB; Sistema de arquivos XFS; Monta /var/www.

Requisitos de Software

Nesta implementação foi necessária a instalação dos seguintes softwares:

  • Mozilla Firefox 3
  • Apache 2.2
  • PHP 5.1
  • Proj 4.7 (Software de projeção cartográfica)
  • Geos 3.2 (Portabilidade C++ da Suíte de Topologia Java)
  • Gdal 1.7.2 (Biblioteca de formato de arquivo GIS – Sistema de Informação Geográfica)
  • MapServer 5.6.5 (Ambiente para a construção de aplicações web espacialmente habilitadas)

Repositórios Adicionais

Para a instalação dos softwares citados foi necessário a adição dos repositórios Extra Packages for Enterprise Linux (EPEL) e Enterprise Linux GIS (ELGIS).

Instalação dos repositórios EPEL:

wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -Uvh epel-release-5-4.noarch.rpm

Instalação dos repositórios ELGIS:

wget http://elgis.argeo.org/repos/5/elgis-release-5-5_0.noarch.rpm
rpm -Uvh elgis-release-5-5_0.noarch.rpm

Instalação do Apache

Por padrão o Apache 2.2.3 já vem instalado no CentOS através do pacote httpd. Para verificar se o pacote httpd está realmente instalado:

rpm -q httpd

Se o pacote httpd estiver instalado será mostrado algo parecido com isto:

httpd-2.2.3-45.el5.centos

Caso o pacote esteja ausente do seu sistema, será exibido:

o pacote httpd não está instalado

Instale o Apache com o gerenciador de pacotes do sistema:

yum install httpd -y

Instalação do PHP

Novamente, por padrão o PHP 5.1.6 já vem instalado no CentOS, mas há algumas extensões a serem adicionadas. Os pacotes php-pear-Spreadsheet-Excel-Writer e php-pecl-zip instalam as extensões que habilitam o p.mapper a exportar resultados em formatos xls e csv, respectivamente. Você pode verificar se os pacotes necessários se encontram instalados:

rpm -q php php-cli php-common php-devel php-gd php-imap php-ldap php-pear php-pear-OLE php-pear-Spreadsheet-Excel-Writer php-pecl-zip

Haverá uma linha de resposta para cada um dos pacotes, similares às linhas exemplificadas anteriormente na instalação do pacote httpd. Instale todos os pacotes que não estiverem atualmente no sistema. Para instalar todos eles de uma vez só:

yum install php php-cli php-common php-devel php-gd php-imap php-ldap php-pear php-pear-OLE php-pear-Spreadsheet-Excel-Writer php-pecl-zip -y

Este comando irá instalar os pacotes que você não possuir instalado e irá atualizar os pacotes já instalados. É recomendável analisar a compatibilidade dos seus aplicativos com os novos pacotes antes de atualizá-los.

Configuração do Apache e do PHP

Para configurar o Apache devemos editar o arquivo /etc/httpd/conf/httpd.conf. Eu costumo utilizar o editor de textos vim, mas use o editor que preferir, desde que edite o arquivo conforme descrito nos itens abaixo:

  • Configure o diretório raiz:

Localize o trecho:

Options FollowSymLinks
AllowOverride None

Substitua por:

Options FollowSymLinks
AllowOverride All
  • Configure o diretório /var/www/html:

Localize o trecho:

#   Options FileInfo AuthConfig Limit
#
    AllowOverride None

Substitua por:

#   Options FileInfo AuthConfig Limit
#
    AllowOverride All

Edite também o arquivo /etc/httpd/conf.d/php.conf, conforme descrito abaixo:

  • Especifique os tipos de arquivos php:

Localize a linha:

AddType text/html .php

Adicione uma linha após, contendo:

AddType application/x-httpd-php .php .phps .php3 .phtml
  • Especifique os tipos de arquivos index:

Localize a linha:

DirectoryIndex index.php

Substitua por:

DirectoryIndex index.php index.phtml

Se você estiver sem tempo ou com preguiça de editar os arquivos manualmente, então apenas execute os comandos abaixo que eles farão o serviço pra você:

sed -i -e '0,/AllowOverride None/s/None/All/g' -e '0,/AllowOverride None/s/None/All/g' /etc/httpd/conf/httpd.conf
sed -i -e '/AddType text\/html .php/s/$/\nAddType application\/x-httpd-php .php .phps .php3 .phtml/' -e '/DirectoryIndex/s/$/ index.phtml/' /etc/httpd/conf.d/php.conf

Agora com tudo configurado, inicie o serviço do Apache:

service httpd start

Para que o serviço do Apache seja reiniciado sempre que o sistema fizer um reboot:

chkconfig httpd on

Testes do Apache e do PHP

Verifique se o serviço do Apache está em execução (start):

service httpd status

Se o serviço do Apache estiver em execução será mostrada a mensagem abaixo, mas provavelmente com um PID diferente do exemplo:

httpd (pid  23780) está rodando...

Caso contrário, será exibida a seguinte mensagem:

httpd está parado

Para um serviço parado, repita o comando de inicialização:

service httpd start

Já para um serviço em execução, teste-o com seu browser usando um dos endereços URL abaixo:

http://localhost

ou

http://127.0.0.1

Deverá aparecer a seguinte página:

Para testar se o serviço do Apache está interpretando o PHP, verifique a execução de um código PHP no servidor Apache. Para isso, crie o arquivo /var/www/html/phpinfo.php contendo a linha de código PHP abaixo:

<?php phpinfo(); ?>

Você pode fazer isso simplesmente executando o comando:

echo '<?php phpinfo(); ?>' > /var/www/html/phpinfo.php

Abra uma janela do browser e acesse um dos endereços URL abaixo:

http://localhost/phpinfo.php

ou

http://127.0.0.1/phpinfo.php

A página abaixo é apresentada caso o Apache esteja interpretando o PHP corretamente:

Verifique se existem as extensões iconv e imap, as quais são essenciais para o funcionamento do p.mapper:

Instalação dos Pacotes PROJ e GEOS

Verifique se os pacotes proj e geos já estão instalados:

rpm -q proj geos

Se os pacotes estiverem instalados será mostrado algo parecido com isto:

proj-4.7.0-2.el5.elgis
geos-3.2.2-2.el5.elgis

Caso os pacotes estejam ausentes do seu sistema, será exibido:

o pacote proj não está instalado
o pacote geos não está instalado

Instale o proj e o geos com o gerenciador de pacotes do sistema:

yum install proj geos -y

Instalação da Biblioteca de Formato de Arquivo GIS (GDAL)

Verifique se o pacote gdal já está instalado:

rpm -q gdal

Se o pacote estiver instalado será mostrado algo parecido com isto:

gdal-1.7.2-5_0.el5.elgis

Caso o pacote esteja ausente do seu sistema, será exibido:

o pacote gdal não está instalado

Instale o gdal com o gerenciador de pacotes do sistema:

yum install gdal-1.7.2 -y

Observe que para instalar o gdal foi especificado inclusive a versão. Isto foi feito por já haver no repositório ELGIS a versão 1.8 do gdal, mas em meus testes apenas a versão 1.7 foi capaz de rodar o p.mapper.

Instalação do MapServer

Verifique se o MapServer e a extensão MapScript do PHP já estão instalados:

rpm -q mapserver php-mapserver

Se os pacotes estiverem instalados será mostrado algo parecido com isto:

mapserver-5.6.5-3.el5.elgis
php-mapserver-5.6.5-3.el5.elgis

Caso os pacotes estejam ausentes do seu sistema, será exibido:

o pacote mapserver não está instalado
o pacote php-mapserver não está instalado

Instale os pacotes com o gerenciador de pacotes do sistema:

yum install mapserver-5.6.5 php-mapserver-5.6.5 -y

Observe que para instalar os pacotes mapserver e php-mapserver foi especificado inclusive a versão. Isto foi feito por já haver no repositório ELGIS versões mais recentes destes pacotes, mas em meus testes apenas a versão 5.6.5 foi capaz de rodar o p.mapper.

Agora reinicie o serviço do Apache:

service httpd restart

Testes da Extensão MapScript do PHP

Para testar se a extensão MapScript do PHP está sendo executada usaremos o arquivo phpinfo.php que criamos após a instalação do PHP. Acesse um dos endereços URL abaixo:

http://localhost/phpinfo.php

ou

http://127.0.0.1/phpinfo.php

Veja se nesta página está apresentando a extensão MapScript, como demonstrado na ilustração abaixo:

Bloqueio dos Pacotes Instalados

Para evitar que um update utomático atualize os pacotes instalados, que devem permanecer nestas versões, devemos bloqueá-los. Para isto istalaremos o plugin yum-versionlock do gerenciador de pacotes:

yum install yum-versionlock -y

Bloqueamos pacotes incluindo seus nomes no arquivo /etc/yum/pluginconf.d/versionlock.list. Os nomes dos pacotes nesse arquivo devem seguir o formato “EPOCH:NAME-VERSION-RELEASE.ARCH”, os quais podem ser obtidos com o comando abaixo:

rpm -q proj geos gdal mapserver php-mapserver --queryformat "%{EPOCH}:%{NAME}-%{VERSION}-%{RELEASE}\n"

Adicione a saída do comando acima ao arquivo /etc/yum/pluginconf.d/versionlock.list redirecionando a saída padrão:

rpm -q proj geos gdal mapserver php-mapserver --queryformat "%{EPOCH}:%{NAME}-%{VERSION}-%{RELEASE}\n" >> /etc/yum/pluginconf.d/versionlock.list

Com este procedimento os pacotes chave para o funcionamento do p.mapper (proj, geos, gdal, mapserver e php-mapserver) serão bloqueados para atualização.

Instalação do p.mapper

A instalação do p.mapper é apenas baixar um arquivo compactado do site oficial e descompactá-lo em /var/www/html. O site oficial do p.mapper é http://www.pmapper.net. O único arquivo realmente necessário é o pmapper-4.1.1.tar.gz, mas eu baixei também os arquivos pmapper-demodata-4.zip e release-notes-4.1.1.txt para documentação e futuras necessidades de suporte. Vamos primeiramente baixar estes arquivos:

wget 'http://downloads.sourceforge.net/project/pmapper/p.mapper%204/4.1.1/pmapper-4.1.1.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpmapper%2Ffiles%2Fp.mapper%25204%2F4.1.1%2F&ts=1306242013&use_mirror=ufpr'
wget 'http://downloads.sourceforge.net/project/pmapper/p.mapper%20demo%20data/p.mapper%20demo%20data%204/pmapper-demodata-4.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpmapper%2Ffiles%2Fp.mapper%2520demo%2520data%2Fp.mapper%2520demo%2520data%25204%2F&ts=1306242121&use_mirror=ufpr'
wget 'http://downloads.sourceforge.net/project/pmapper/p.mapper%204/4.1.1/release-notes-4.1.1.txt?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpmapper%2Ffiles%2Fp.mapper%25204%2F4.1.1%2F&ts=1306242078&use_mirror=ufpr'

Agora descompacte eles e os mova para o diretório /var/www/html:

tar -xvzpf pmapper-4.1.1.tar.gz
unzip pmapper-demodata-4.zip
mv demodata pmapper-4.1.1 release-notes-4.1.1.txt /var/www/html

Precisamos criar um diretório chamdo tmp dentro do diretório /var/www/html, onde serão armazenadas as imagens de mapeamento temporárias processadas pelo p.mapper:

mkdir /var/www/html/tmp

Mude a propriedade dos arquivos e diretórios criados em /var/www/html para o Apache:

chown -R apache:apache /var/www/html/*

Para finalizar, edite o arquivo /var/www/html/pmapper-4.1.1/config/default/pmapper_demo.map conforme descrito abaixo:

Desconsiderando as linhas comentadas, onde houver:

WEB
  TEMPLATE "map.html"
  IMAGEPATH "/home/www/tmp/"
  IMAGEURL "/tmp/"
  METADATA
  END
 END

Substitua a linha:

IMAGEPATH "/home/www/tmp/"

Pela linha:

IMAGEPATH "/var/www/html/tmp/"

Você também pode editar rapidamente este arquivo com o comando abaixo:

sed -i '/IMAGEPATH/s/home\/www/var\/www\/html/' /var/www/html/pmapper-4.1.1/config/default/pmapper_demo.map

Após a configuração deste arquivo, o p.mapper estará pronto para ser executado e poderá ser visualizado pelo browser através de um dos endereços URL abaixo:

http://localhost/pmapper-4.1.1

ou

http://127.0.0.1/pmapper-4.1.1

Observação: Para que o mapa de demonstração do p.mapper possa ser exibido com sucesso é preciso que este servidor esteja com accesso direto à internet, ou seja, sem nehum bloqueio de proxy sobre ele, pois por padrão o p.mapper acessa um banco de dados remoto na internet com as informações de mapeamento.

Script Para Instalação Automática do p.mapper

Segue abaixo um script que realiza de uma vez só todo o trabalho descrito nos passos anteriores de forma automática:

#!/bin/bash

#Instalacao dos repositorios
wget -q http://elgis.argeo.org/repos/5/elgis-release-5-5_0.noarch.rpm
wget -q http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -U elgis-release-5-5_0.noarch.rpm1.7.2 epel-release-5-4.noarch.rpm

#Instalacao do Apache
yum install httpd -y

#Instalacao do PHP
yum install php php-cli php-common php-devel php-gd php-imap php-ldap php-pear php-pear-OLE php-pear-Spreadsheet-Excel-Writer php-pecl-zip -y

#Configuracao do Apache e do PHP
sed -i -e '0,/AllowOverride None/s/None/All/g' -e '0,/AllowOverride None/s/None/All/g' /etc/httpd/conf/httpd.conf
sed -i -e '/AddType text\/html .php/s/$/\nAddType application\/x-httpd-php .php .phps .php3 .phtml/' -e '/DirectoryIndex/s/$/ index.phtml/' /etc/httpd/conf.d/php.conf
chkconfig httpd on
service httpd start
echo '<?php phpinfo(); ?>' > /var/www/html/phpinfo.php

#Instalacao do PROJ e do GEOS
yum install proj geos -y

#Instalacao do GDAL
yum install gdal-1.7.2 -y

#Instalacao do MapServer
yum install mapserver-5.6.5 php-mapserver-5.6.5 -y
service httpd restart

#Bloqueio dos pacotes instalados
yum install yum-versionlock -y
rpm -q proj geos gdal mapserver php-mapserver --queryformat "%{EPOCH}:%{NAME}-%{VERSION}-%{RELEASE}\n" >> /etc/yum/pluginconf.d/versionlock.list

#Instalacao do p.mapper
wget -q 'http://downloads.sourceforge.net/project/pmapper/p.mapper%204/4.1.1/pmapper-4.1.1.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpmapper%2Ffiles%2Fp.mapper%25204%2F4.1.1%2F&ts=1306242013&use_mirror=ufpr'
wget -q 'http://downloads.sourceforge.net/project/pmapper/p.mapper%20demo%20data/p.mapper%20demo%20data%204/pmapper-demodata-4.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpmapper%2Ffiles%2Fp.mapper%2520demo%2520data%2Fp.mapper%2520demo%2520data%25204%2F&ts=1306242121&use_mirror=ufpr'
wget -q 'http://downloads.sourceforge.net/project/pmapper/p.mapper%204/4.1.1/release-notes-4.1.1.txt?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpmapper%2Ffiles%2Fp.mapper%25204%2F4.1.1%2F&ts=1306242078&use_mirror=ufpr'
tar xzpf pmapper-4.1.1.tar.gz
unzip -q pmapper-demodata-4.zip
mv pmapper-4.1.1 demodata release-notes-4.1.1.txt /var/www/html
mkdir /var/www/html/tmp
chown -R apache:apache /var/www/html/*
sed -i '/IMAGEPATH/s/home\/www/var\/www\/html/' /var/www/html/pmapper-4.1.1/config/default/pmapper_demo.map
firefox http://127.0.0.1/pmapper-4.1.1 http://127.0.0.1/phpinfo.php &

Este script, ao ser executado em um sistema operacional CentOS 5 GNU/Linux, configura os repositórios necessários, instala os requisitos de software e instala a aplicação web, permitindo a execução completa do p.mapper na sua rede local.

Copie todo o código do script para um arquivo de texto e salve com nome pmapper.sh. Entre no diretório onde se encontra o script e digite os comandos abaixo para executá-lo:

chmod +x pmapper.sh
./pmapper.sh

Após a execução do script, o p.mapper está pronto para ser executado e poderá ser visualizado pelo browser através de um dos endereços URL abaixo:

http://localhost/pmapper-4.1.1

ou

http://127.0.0.1/pmapper-4.1.1

Serviços de Acesso Implementados

Para possibilitar o acesso ao servidor pelo restante da equipe, os desenvolvedores, os quais irão configurar a aplicação p.mapper, instalei os serviços VNC e SFTP. Escreverei um post para a implementação de cada um deles no CentOS.

Finalizando

Para o p.mapper finalmente ficar acessível aos usuários ainda falta muito trabalho. Fico na espera pelo desenvolvimento dos outros membros da minha equipe para poder criar um novo post concluindo esta implementação. Mas espero que com a publicação do meu trabalho eu possa ajudar pessoas que estejam querendo realizar algo similar. Peço desculpas aos Administradores Linux por ter descrito inclusive comandos básicos, deixando a leitura um pouco cansativa, mas meu intuito é ajudar o máximo de pessoas que trabalhem com GNU/Linux. Até o próximo post!

Anúncios

From → CentOS 5, GNU\Linux

Deixe um comentário

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

%d blogueiros gostam disto: