Tutorial TerraPHP
32 pages
Português
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
32 pages
Português
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

TerraPHP: Extensão PHP da Biblioteca TerraLib TERRALIB DEVELOPMENT TEAM Gilberto Ribeiro de Queiroz - gribeiro(at)dpi.inpe.br Image Processing Division, National Institute for Space Research (INPE), São José dos Campos, Brazil Resumo. O TerraPHP é uma extensão da linguagem PHP, construída no topo da biblioteca TerraLib, para facilitar o desenvolvimento de aplicativos Web de visualização e consulta a bancos de dados geográficos. Este documento apresenta as funcionalidades disponíveis nesta extensão e exemplos de como construir tais aplicações em PHP. Também é mostrado como instalar e configurar o ambiente do TerraPHP no sistema operacional Linux. 1. Introdução A World Wide Web [01], abreviadamente Web, se tornou uma das mídias mais importantes e preferidas para disseminação de informações. Ela evoluiu de simples páginas com conteúdo estático para páginas com conteúdos dinâmicos, extraídos, principalmente, de Sistemas Gerenciadores de Bancos de Dados (SGBDs) [02]. Para atender à necessidade de construção destas páginas (com conteúdo dinâmico), diversas tecnologias emergiram no final da década passada e, entre elas, pode-se citar: Common Gateway Interface (CGI) [03], Active Server Pages (ASP) [04], Java Server Pages (JSP) [05] e Hypertext Preprocessor (PHP) [06]. Nesta década, a demanda pela disseminação de dados geográficos, tem motivado os principais fornecedores de Sistemas de Informação Geográficas (SIG) [07] a investirem em ferramentas para ...

Informations

Publié par
Nombre de lectures 62
Langue Português

Extrait

TerraPHP: Extensão PHP da Biblioteca TerraLib
TERRALIBDEVELOPMENTTEAM Gilberto Ribeiro de Queiroz - gribeiro(at)dpi.inpe.br Image Processing Division, National Institute for Space Research (INPE), São José dos Campos, Brazil  Resumo. O TerraPHP é uma extensão da linguagem PHP, construída no topo da biblioteca TerraLib, para facilitar o desenvolvimento de aplicativos Web de visualização e consulta a bancos de dados geográficos. Este documento apresenta as funcionalidades disponíveis nesta extensão e exemplos de como construir tais aplicações em PHP. Também é mostrado como instalar e configurar o ambiente do TerraPHP no sistema operacional Linux. 1. Introdução A World Wide Web [01], abreviadamente Web, se tornou uma das mídias mais importantes e preferidas para disseminação de informações. Ela evoluiu de simples páginas com conteúdo estático para páginas com conteúdos dinâmicos, extraídos, principalmente, de Sistemas Gerenciadores de Bancos de Dados (SGBDs) [02]. Para atender à necessidade de construção destas páginas (com conteúdo dinâmico), diversas tecnologias emergiram no final da década passada e, entre elas, pode-se citar: Common Gateway Interface (CGI) [03], Active Server Pages (ASP) [04], Java Server Pages (JSP) [05] e Hypertext Preprocessor (PHP) [06]. Nesta década, a demanda pela disseminação de dados geográficos, tem motivado os principais fornecedores de Sistemas de Informação Geográficas (SIG) [07] a investirem em ferramentas para construção de aplicações que forneçam acesso a esses tipos de dados via Web. A forma mais comum de publicação de dados geográficos neste tipo de mídia é através de mapas em formato de imagem PNG [08] ou JPEG [09]. Existem dois tipos principais de aplicações que utilizam esta forma de disseminação: · Aplicações dedicadas: uma aplicação específica é desenvolvida com alguma onde tecnologia que permita a construção de mapas sob demanda. Neste tipo de aplicação os usuários podem interagir realizando operações dezoom e apontamento sobre a imagem dos mapas embutidos nas páginas exibidas pelos navegadores Web. · Servidores de mapas: aplicações servidoras de informações geográficas que são possuem uma interface bem definida para que aplicações clientes possam solicitar recursos (dados geográficos). O Open GIS fornece especificações para essa classe de aplicação, entre elas, as especificações WMS [10] e WFS [11]. Entre as tecnologias de software livre para desenvolvimento de aplicações Web tradicionais, o PHP ocupa uma posição de destaque. Por se tratar de uma linguagem simples e extensível, o número de desenvolvedores adeptos tem se tornado cada vez maior. Com o objetivo de difundir o uso de geotecnologias, nós desenvolvemos uma extensão para o PHP, chamada TerraPHP. Esta extensão é baseada na biblioteca TerraLib [12] e acrescenta funcionalidades básicas de construção de aplicativos geográficos ao PHP. O presente documento está organizado da seguinte forma: a Seção 2 apresenta como configurar e instalar manualmente a extensão em ambiente Linux; a Seção 3 ensina a utilizar o script terraphpInstall, para realizar a instalação automática da extensão; a Seção 4 apresenta as
funcionalidades disponíveis do TerraPHP; e a Seção 5 mostra como construir aplicações utilizando a extensão. No final do documento encontra-se um apêndice com algumas mensagens de erro e as possíveis causas.  2. Instalação e Configuração Manual do TerraPHP no Linux Nesta seção é apresentado como instalar e configurar manualmente o ambiente de desenvolvimento no sistema Linux (Sistemas RedHat, Mandrake e Conectiva). A próxima seção apresenta uma forma alternativa (scriptde instalação automática).  2.1 Bibliotecas Auxiliares Para compilar a extensão TerraPHP serão necessárias as seguintes bibliotecas: · zlibversão 1.2.2, disponível em: http://www.gzip.org/zlib. · libpngversão 1.2.8 disponível em: http://www.libpng.org/pub/png. · IJG JPEG libraryversão 6 disponível em: http://www.ijg.org. · libgdversão 2.0.33 disponível em: http://www.boutell.com/gd. · lib FreeTypeversão 2.1.9 disponível em: http://sourceforge.net/projects/freetype. As distribuições Linux já acompanham estas bibliotecas e as versões citadas, não são obrigatórias, porém, correspondem às utilizadas em nossos experimentos.  2.2 Servidor de Banco de Dados MySQL Instalar a versão 4.1.12 disponível em http://www.mysql.com: · Criação do usuário e grupo mysql (caso não existam no sistema): groupaddmysql useradd-g mysql -c "MySQL Server"          -d /usr/local/mysql  s /bin/bash mysql -· Instalação esetupinicial do mysql: cd/usr/local tarxzf /tmp/soft/mysql-standard-4.1.12-pc-linux-i686.tar.gz ln-s mysql-standard-4.1.12-pc-linux-i686 mysql cdmysql scripts/mysql install db _ _ chown .-R root chown-R mysql data chgrp-R mysql .  · Inicialização no boot (arquivo mysql disponível no site do TerraPHP): cpmysql /etc/init.d
chownroot /etc/init.d/mysql chmod744 /etc/init.d/mysql chkconfig--level 2345 mysql on servicemysql start · Senha de root do MySQL: /usr/local/mysql/bin/mysqladmin-u root password new-password
 2.3 Biblioteca TerraLib e TerraView Os códigos fonte da biblioteca TerraLib e do aplicativo TerraView encontram-se disponíveis para download em http://www.terralib.org ou por meio do servidor CVS. 1.  do diretório “ cvs dentroCriar um diretório chamado terralib/root” e alterar o _ diretório corrente: cd/root _ mkdirterralib cvs _ cdterralib cvs 2. Obter os arquivos fontes do TerraView e TerraLib a partir do CVS: · Logar no servidor CVS: cvs–d :pserver:anonymous@cvs.dpi.inpe.br:/home/terralib login · Baixar o diretóriosrc: cvs -d :pserver:anonymous@cvs.dpi.inpe.br:/home/terralib co src · Baixar o diretórioterralibx: cvs-d :pserver:anonymous@cvs.dpi.inpe.br:/home/terralib co terralibx · Baixar o diretórioaplicativos: cvs-d :pserver:anonymous@cvs.dpi.inpe.br:/home/terralib co aplicativos · Baixar o diretórioextensions: cvs-d :pserver:anonymous@cvs.dpi.inpe.br:/home/terralib co extensions 3. Compilar a biblioteca TerraLib: · Entrar no diretório terralibx/shapelib e executar make; · Entrar no diretório terralibx/tiff e executar make; · Entrar no diretório terralibx/terralib e executar make; · Entrar no diretório terralibx/stat e executar make; · Entrar no diretório terralibx/image_processing e executar make; 4. Compilar o aplicativo TerraView: · Entrar no diretório aplicativos/terraView/linux e executar make.
 
· término, você poderá copiar o arquivo binário terraView para o diretórioApós o /usr/local/bin. 5. Compilar a biblioteca TerraManager: · Entrar no diretório extensions/terramanager/terramanagerx/terramanager · Essa é biblioteca base da extensão TerraPHP. · Antes de executar o make, você deverá criar o arquivo Makefile através do comando qmake. Aqui, você deverá informar quais osdrivers bancos de dados deseja de habilitar. Se você deseja habilitar odriver servidor MySQL, a seguinte linha do deverá ser executada: qmakeTE DATABASE OPTION=”HAS MYSQL” _ _ _ Se desejar mais de umdriver, pode-se usar espaço para separar uma das seguintes opções: HAS POSTGRESQL, HAS_OCI, HAS_MYSQL: _ _ _ _ _ qmakeTE DATABASE OPTION=”HAS MYSQL HAS POSTGRESQL” · Depois é só executar o comando make. 6. diretório atual para ele e criarCriar o diretório /usr/local/lib/teralib, alterar o links simbólicos para as bibliotecas geradas na etapa anterior: mkdirbli /usrl/colal/bit/rear  cd sr/uoc/ll/lat/biarre bil _ ln–s /root/terralib cvs/terralibx/terralib/*so* . _ ln–s /root/terralib cvs/terralibx/tiff/*so* . _ ln–s /root/terralib cvs/terralibx/shapelib/*so* . _ ln–s /root/terralib cvs/terralibx/stat/*so* . _ _ ln–s /root/terralib cvs/terralibx/image processing/*so* . _ _ ln–s /root/terralib cvs/terralibx/image processing/*so* . ln–s /root/terralib cvs/extensons/terramanager/terramanagerx/terrama _ nager/ *so* . 7. Criar o diretório "/usr/local/include/terralib", alterar o diretório atual para ele e então criarlinkssimbólicos para os arquivos de cabeçalho da TerraLib: ln–s /root/terralib cvs/src/terralib/kernel/*.h . _ ln-s /root/terralib cvs/src/terralib/functions/*.h . _ ln-s /root/terralib cvs/src/terralib/stat/*.h . _ ln-s /root/terralib cvs/src/terralib/application/*.h . _ _ ln-s /root/terralib cvs/src/terralib/application/qt/*.h . ln-s /root/terralib cvs/src/terralib/drivers/MySQL/*.h . _ _ ln-s /root/terralib cvs/extensions/terramanager/src/*.h .
2.4 Servidor HTTP Apache Instalar a versão 1.3.33 disponível em http://www.apache.org/: 1. usuário e grupo apache (caso não existam no sistema):Criação do groupaddapache useradd-g apache        -c "Apache Server"  -d /usr/local/apache  -s /bin/false apache 2. Compilação e instalação: cd/tmp/soft tarxzf apache 1.3.31.tar.gz _ cdapache 1.3.31 _ ./configure--enable-module=so make make install 3. Inicialização noboot(arquivo httpd disponível no site do TerraPHP): cphttpd /etc/init.d chownroot /etc/init.d/httpd chmod744 /etc/init.d/httpd chkconfig--level 2345 httpd on 4. Configuração do apache – editar o arquivo /usr/local/apache/conf/httpd.conf: · Para o apache interpretar a extensão php, coloque em httpd.conf, logo após a linha AddType application/x-tar .tgz: AddType application/x-httpd-php .php · Para o apache interpretar index.php, coloque em httpd.conf na linha DirectoryIndex index.html: DirectoryIndexindex.html index.php 5. NÃOinicializar o serviçohttpdpor enquanto.
 2.6 Extensão TerraPHP Existem duas formas de instalar a extensão TerraPHP: interno ao PHP ou como módulo externo. 2.6.1 Construindo o TerraPHP junto com o PHP Descompactar a versão 4.3.11 disponível em http://www.php.net: cd/tmp/soft  tarxzf php-4.3.11.tar.gz cdphp-4.3.11  
1. Entrar no diretório “extda raiz de diretórios do PHP e criar o diretório” dentro terraweb: cdext mkdirterraweb cdterraweb 2. Criarlinkspara arquivos da extensão TerraPHP: ln–s /root/terralib cvs/extensions/terraphp/src/config.m4 . _ ln–s /root/terralib cvs/extensions/terraphp/src/php terraweb.h . _ _ ln-s /root/terralib cvs/extensions/terramanager/src/terraweb.cpp . _ 3. Compilação e instalação do PHP: cd../.. ./buildconf--force ./configure--with-apxs=/usr/local/apache/bin/apxs --enable-magic-quotes --enable-track-vars --enable-calendar --with-gettext --with-xml --with-gd --with-freetype-dir=/usr --enable- gd-native-ttf --enable-gd-imgstrttf --with-zlib --enable-ftp --enable-debugger --enable-inline-optimization --enable-memory-limit --enable-posix --enable-session --without-kerberos --enable-trans-sid --enable-safe-mode --with-exec-dir=/usr/bin--with-terraweb --with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql make make install cpphp.ini-dist /usr/local/lib/php.ini servicehttpd start  Os flagsqlys oc/l/mal-qs=lu/rsw-ti-hyme --with-pgsql=/usr/local/pgsql indicam que as extensões PostgreSQL e MySQL do PHP também deverão ser habilitadas. Nessa linha do configure você deverá habilitar os módulos de bancos compatíveis com osdriversselecionados durante a compilação do TerraManager.  2.6.2 Construindo o TerraPHP como um módulo externo (Recomendado)  Se vocênãopossui o PHP instalado, deverá descompactar a versão 4.3.11 disponível em http://www.php.net e realizar a instalação descrita a seguir: cd/tmp/soft  tarxzf php-4.3.11.tar.gz cdphp-4.3.11  
1. Entrar no diretório “extda raiz de diretórios do PHP e criar o diretório” dentro terraweb: cdext mkdirterraweb cdterraweb 2. Criarlinkspara arquivos da extensão TerraPHP: ln–s /root/terralib cvs/extensions/terraphp/src/config.m4 . _ ln–s _ _ /root/terralib cvs/extensions/terraphp/src/php terraweb.h . ln-s _ /root/terralib cvs/extensions/terramanager/src/terraweb.cpp . 3. Compilação e instalação do PHP: cd../.. ./buildconf--force ./configure--with-apxs=/usr/local/apache/bin/apxs --enable-magic-quotes --enable-track-vars --enable-calendar --with-gettext --with-xml --with-gd --with-freetype-dir=/usr --enable-gd-native-ttf --enable-gd-imgstrttf --with-zlib --enable-ftp --enable-debugger --enable-inline-optimization --enable-memory-limit --enable-posix --enable-session --without-kerberos --enable-trans-sid --enable-safe-mode --with-exec-dir=/usr/bin ----with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql make make install cpphp.ini-dist /usr/local/lib/php.ini  A linha do configure acimanãodeve incluir diretivaebw-ti-rrwa-het. Se você já possui o PHP instalado, basta criar uma pasta terraweb e seguir os passos do item 2 (criando oslinkssimbólicos para os arquivos da extensão). Dirigindo-se à pastaterraweb, onde estão os fontes da extensão TerraPHP, podemos iniciar a construção do módulo terraweb.so. 1. Digite o seguinte comando na pasta da extensão: phpize O comando acima irá gerar os arquivos necessários para a compilação do módulo terraweb.so. 2. Em seguida execute: ./configure –with-terraweb 3. Compilando a extensão: make 4. Se tudo ocorreu bem, basta copiar o módulo terraweb.so que deverá ter sido criado na pasta modules para o diretório /usr/local/lib/php/extensions.
 Após a criação da extensão é importante alterar o arquivo php.ini (geralmente em /usr/local/lib) e acrescentar o caminho onde os módulos do PHP serão encontrados (/usr/local/lib/php/extensions) além de habilitar a extensão terraweb.so. Depois disso, é só reiniciar o servidor Apache e seguir as dicas da seção de teste da instalação.  3. Instalação e Configuração Automáticas do TerraPHP no Linux Outra forma de realizar a instalação da extensão TerraPHP é através de scripts que encontram-se disponíveis no site do TerraPHP. Você deverá baixar o arquivozipcontendo estes scripts (terrainstallx.zip). Descompacte este arquivo em um diretório apropriado, como por exemplo: /root/terraphpinstall. Os seguintes arquivos (scripts) deverão ser encontrados neste diretório: te_main_install, te_install_apa _ _g te_install_terralib, che, te install d, te_install_terramanager, te install terraphp, te_install terraview _ _ _ Ajuste o privilégio de execução para os arquivos de script se necessário (chmod 700 te_*deverá estar logado como usuário root para realizar a instalação. Executando o). Você comando:./te main install, será exibida uma tela como a da Figura 1. _ _
 Figura 1 – Tela principal de instalação Aqui você terá a opção de instalar cada um dos componentes necessários à extensão TerraPHP. Inicie a instalação através da opção 7 se você não possuir a biblioteca GD instalada. Neste caso, você terá que editar o arquivo te_install_gd e configurar a linha que indica o pacote onde se encontram os fontes da GD: _ _ TE GD SRC="gd-2.0.33.tar.gz"
TE GD SRC DIR="gd-2.0.33" _ _ _ A GD pode ser obtida no site http://www.boutell.com/gd/ e o arquivo com os fontes deverá ser colocado na pasta dos scripts de instalação.TE_GD_SRC_DIRindica o prefixo do pacote a ser instalado (omite-se a extensão .tar.gz). Se você não possuir o servidor Apache instalado, poderá escolher a opção 6. Assim como no caso da GD, você deverá baixar os fontes do Apache (http://apache.org) e editar o arquivo te_install_apache: TE APACHE SRC="apache 1.3.33.tar.gz" _ _ _ TE APACHE SRC DIR="apache 1.3.33" _ _ _ _ _ _ _ TE APACHE START SCRIPT="httpd" Se você optou por instalar o Apache a partir dos fontes, deverá ter em mãos o scripthttpd de inicialização do servidor. No site do TerraPHP você encontra um script padrão que pode ser utilizado (basta copiar para a pasta dos scripts de instalação). A opção 5, instalação do servidor MySQL, somente será necessária se você não possuir um servidor de bancos de dados ao qual tenha acesso. Não é um requisito obrigatório para instalação do TerraPHP. No caso de optar por instalar, edite o arquivo te_install_mysql: TE MYSQL SRC="mysql-standard-4.1.12-pc-linux-gnu-i686.tar.gz" _ _ TE MYSQL SRC DIR="mysql-standard-4.1.12-pc-linux-gnu-i686" _ _ _ TE MYSQL START SCRIPT="mysql" _ _ _ Indique o nome do pacote com os binários do servidor (disponíveis em http://www.mysql.com) e tenha em mãos o script de inicialização do servidor (disponível no site do TerraPHP). Tanto o arquivo com o binário quanto o scriptmysqldeverão ser copiados para a pasta onde se encontram os scripts de instalação do TerraPHP. Se você não possuir o PHP instalado, deverá editar o arquivo te_install_terraphp antes de prosseguir com as outras opções de instalação (1 a 4): TE PHP OPTIONS="--with-mysql=/usr/local/mysql " _ _ _ _ TE PHP SRC="php-4.3.11.tar.gz" _ _ _ TE PHP SRC DIR="php-4.3.11" _ _ PTIONS irá indicar q os módulos do PHP você deseja A variávelTE PHP Ouais habilitar. Por padrão, será habilitado somente o módulo MySQL. No caso da instalação do TerraManager, que é utilizado pela extensão TerraPHP, é necessário indicar quais os drivers de bancos de dados deverão estar presentes na extensão TerraPHP. Edite o arquivo te_install_terramanager e configure a seguinte variável: _ _ _ DATABASE 2 USE="HAS POSTGRESQL" Caso deseje instalar outrosdriversusar espaço para separar uma das seguintes, pode-se opções: HAS_POSTGRESQL, HAS_OCI, HAS MYSQL. _ Após configurar o script de instalação do TerraManager (te_install_terramanager), podemos iniciar a instalação dos módulos TerraLib (opções 1 a 4). Inicie instalando a própria
TerraLib. Caso você não tenha os fontes da TerraLib, não se preocupe, os scripts darão a possibilidade de baixar esses módulos automaticamente através do CVS, desde que você esteja conectado a Internet. Se você já possui os fontes da TerraLib, o script irá solicitar que você indique o caminho onde eles se encontram. Depois, basta seguir as instruções fornecidas pelo script (2 a 4). Após a execução dos passos 1 a 4, você deverá ter a extensão instalada. Siga para a próxima seção para testar se a extensão foi corretamente instalada.  4. Testando a Instalação do TerraPHP Se a extensão do TerraPHP foi instalada corretamente, podemos verificar se ela aparece na descrição dos módulos do PHP, montando um simples script que execute o comando phpinfo. 01<? 02phpinfo(); 03?>  
Script phpinfo.php  Este programa deverá exibir uma página como a mostrada na Figura 2:  
. Rolando a página podemos ver os módulos instalados no PHP, inclusive o TerraPHP, denominado de TerraWeb. A Figura 3 ilustra o texto que deverá ser apresentado caso a extensão TerraPHP esteja habilitada.
 
év staarmonaodc hpindo pfoiF– 2 aruga inág Pa idibex
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents