Você está na página 1de 17

PHP Prossional

APRENDA A DESENVOLVER SISTEMAS PROFISSIONAIS ORIENTADOS A OBJETOS COM PADRES DE PROJETO

Alexandre Altair de Melo Mauricio G. F. Nascimento

Novatec

CAPTULO 1

Apresentao do PHP

Este captulo e o seguinte tm como objetivos servir como reviso para aqueles que j conhecem PHP, e como guia inicial para aqueles que esto sendo apresentados linguagem pela primeira vez. Apesar de este livro abordar contedos avanados e no ter o propsito de ensinar princpios da linguagem, uma explanao bsica da mesma se faz necessrio. Se este for o seu caso, parabns pela deciso em aprender e aprofundar seus conhecimentos em uma das linguagens web que mais cresce em utilizao no mundo. Siga adiante por este captulo. Caso contrrio, se o leitor j tiver conhecimentos prvios, pode se sentir vontade para avanar nestes dois captulos iniciais e partir diretamente para o Captulo 3. Nas linhas a seguir entenda o porqu do PHP ter se tornado uma das linguagens mais utilizadas na web, e como ele vem sendo usado nos mais diferentes projetos de diversas magnitudes.

1.1 Comeando com PHP


Anal o que PHP? PHP a abreviao de Hypertext Preprocessor ou em traduo livre Pr-processador de Hipertexto . uma linguagem de script de cdigo aberto que tem como objetivo primrio a gerao de contedo dinmico para pginas da internet. Isto quer dizer que ao invs de criar um programa para gerar e imprimir HTML, voc pode escrever HTML com o cdigo PHP embutido para gerar contedo dinmico. Como as tags HTML so estticas, cabe ao PHP ou outra linguagem como ASP ou Java a criao do contedo dinmico que vemos na web. Outra vantagem do PHP que por ser executado no lado do servidor, seu cdigo-fonte no exibido ao internauta, que apenas ter acesso ao seu HTML resultante.

20

Captulo 1 Apresentao do PHP

21

1.2 Histrico da linguagem


No nal de 1994, Rasmus Lerdorf criou uma srie de utilitrios para monitorar sua pgina pessoal e obter informaes sobre seus visitantes. Com o passar do tempo, mais funcionalidades foram requeridas. Rasmus escreveu ento uma implementao na linguagem C destes utilitrios, que deu origem ao ncleo do que cou conhecido como PHP/FI. Este pacote foi o incio do PHP como o conhecemos hoje. Originalmente, o nome PHP era um acrnimo para Personal Home Page Tools / Forms Interpreter (Ferramentas para Pgina Pessoal / Interpretador de Formulrios). Assim como ocorreu com o sistema operacional Linux, diversos entusiastas do software livre tomaram conhecimento do pacote PHP/FI, os quais passaram a contribuir e acrescentar suas idias ao mesmo. Entre elas estavam, por exemplo, a conexo a banco de dados e exibio de resultados dinmicos. De 1994 at o ano de escrita deste livro, mais de dez anos se passaram e o PHP est em sua quinta verso, com previso do lanamento da verso 6 em breve. No decorrer desses anos podemos vericar que cada verso do PHP teve o seu papel fundamental para ajudar a propagar e difundir sua linguagem. A seguir, veremos de uma maneira geral o que cada uma delas fez pela evoluo do PHP:

Verso 2 Em 1997, o PHP/FI 2.0, segunda verso da implementao C, obteve o apoio e reconhecimento de milhares de usurios ao redor do mundo. Aproximadamente 50.000 domnios reportavam sua instalao e uso, constituindo assim uma base de 1% dos domnios da internet. Enquanto isso, havia milhares de pessoas contribuindo com pequenos trechos de cdigos para o projeto. Apesar disto, ele foi apenas lanado ocialmente em Novembro de 1997, aps demandar a maior parte de sua vida em verses betas. Foi rapidamente substitudo pelas releases alfas do PHP 3.0.

Verso 3 Criada por Andi Gutmans e Zeev Suraski em 1997, o PHP 3.0 foi a primeira verso da linguagem que se assemelha ao PHP como conhecemos hoje. Esta verso foi totalmente reescrita, aps seus autores descobrirem que o PHP/FI 2.0 era uma linguagem verstil e que poderia ser utilizada para seus projetos acadmicos de comrcio eletrnico. Num esforo conjunto a partir da base de usurios PHP/FI j existente, Andi, Rasmus e Zeev decidiram se unir e anunciaram o PHP 3.0 como uma verso ocial e sucessora do PHP/FI 2.0, cujo desenvolvimento foi totalmente descontinuado. Nasceu assim o PHP 3.0, que alm de oferecer aos usurios nais uma infra-estrutura slida para diversos bancos de dados, protocolos e APIs, a extensibilidade apresentada pela verso atraiu dezenas de desenvolvedores que se juntaram com o propsito de submeter novos mdulos.

22

PHP Prossional

A possibilidade de ser extensvel foi, alis, a chave do tremendo sucesso do PHP 3.0. Outra caracterstica chave introduzida nesta verso foi o suporte sintaxe para Orientao a Objetos, ainda que bastante limitada. Para realar a reestruturao da linguagem, suas verses foram lanadas sob um novo nome, que removeu a impresso do limitado uso pessoal que o PHP/FI possua at ento. Seu nome foi nomeado simplesmente para PHP , com o signicado para o acrnimo PHP: Hypertext Preprocessor. No nal de 1998, o PHP contava com uma base de dezenas de milhares de usurios e centenas de milhares de pginas na internet relatando sua instalao. Em seu auge, o PHP 3.0 foi instalado em aproximadamente 10% dos servidores web da internet. Esta verso foi ocialmente lanada em Junho de 1998, depois de ter passado aproximadamente nove meses em testes pblicos. Verso 4 O desenvolvimento de aplicaes robustas apenas se tornou vivel por causa das novas caractersticas do PHP 3.0 e o suporte a uma variedade de banco de dados de terceiros e APIs. Entretanto, esta verso no foi projetada para trabalhar com aplicaes muito complexas de forma eciente. Uma nova engine, criada e lanada em meados de 1999, denominada Zend Engine (reduo dos nomes de Zeev e Andi), foi desenvolvida tendo como objetivo a melhoria dos pontos crticos apresentados at ento pela linguagem. O PHP verso 4.0, baseado nesta engine, e acompanhado de uma srie de novas caractersticas, foi ocialmente lanado em Maio de 2000, quase dois anos aps o seu predecessor. Alm da melhora do desempenho, o PHP 4.0 incluiu outras caractersticas chave, como o suporte para vrios servidores web, sesses HTTP, buffer de sada, maneiras mais seguras de manipulao de dados de entrada de usurios, dentre outras melhorias. Nesta verso tambm foi includo um dgito intermedirio para um controle mais granular de verso, a exemplo das verses 4.1.X da linguagem. At ento, em suas verses anteriores, era adotado apenas o padro 3.X. Na verso 4.1.0 apareceram as variveis superglobais $_GET e $_POST permitindo que a diretiva register_globals fosse desabilitada. A ltima alterao signicativa da verso foi apresentada na 4.3.0, que introduziu a interface de linha de comando CLI Command Line Interface. Verso 5 Verso que signicou uma quebra de paradigmas da linguagem, em que nalmente ela passa a suportar a Orientao a Objetos de forma consistente. Baseada na Zend Engine 2, essa verso foi lanada ocialmente em Julho de 2004. Tambm trouxe como novidades o suporte melhorado da manipulao de arquivos XML (via extenso SimpleXML), manipulao de webservices SOAP e REST, suporte melhorado ao MySQL via extenso

Captulo 1 Apresentao do PHP

23

MySQLi, novas bibliotecas SQLite, Tidy e aperfeioamento com a integrao entre a linguagem Perl. Alm disso, melhorou o gerenciamento de memria e descontinuou o suporte ao sistema operacional Windows 95.

Verso 6 O futuro est em dar suporte ao Unicode para ajudar na interpretao de vrios caracteres, a m de facilitar o desenvolvimento e manuteno de sistemas globais e com suporte a multiidiomas. Alm disso, a nova verso ter caractersticas como: 1. O m das diretivas register_globals e da famlia magic_quotes_*. 2. Possvel remoo da diretiva safe_mode. 3. O lanamento de erro do tipo objetos. 4. Fim do suporte a Zend Engine I. 5. A descontinuidade ao suporte s variveis da famlia HTTP_*_VARS.
E_STRICT

para o retorno por referncia a

Essas so algumas das futuras novidades que viro nesta nova verso, sendo que sua data de lanamento ainda no est denida. Outras alteraes durante o desenvolvimento do PHP 6 podero ser consultadas (em ingls) na ntegra no site http://php.net/~derick/meeting-notes.html.

1.3 Benefcios do PHP


O objetivo da linguagem no s gerar contedo dinmico para a internet. Ela pode fazer muito mais do que isso, como pode ser comprovado nos tpicos a seguir.

1.3.1 Custo
O PHP no tem custo de licena justamente por ser um software livre. Isto signica que ele pode ser instalado em qualquer mquina, para qualquer nmero de usurios, sem que isto denote a violao de alguma lei de direito autoral. Seu modelo de licenciamento o da GPL General Public License (Licena Pblica Geral), largamente utilizado em softwares livres. Para maiores detalhes, consulte o site http://php.net/license. Seu suporte feito pelas comunidades que crescem dia a dia, tanto no Brasil quanto ao redor do mundo. Estas comunidades so uma das melhores maneiras de se obter suporte, trocar experincias e discutir idias sobre a linguagem. Ao nal do livro so fornecidos links de pginas da internet das principais comunidades em atividades em diversos pases.

24

PHP Prossional

Apesar de o PHP ser um software livre, a Zend, que empresa criada por Andi e Zeev, fornece ferramentas como IDE Integrated Development Environment (Ambiente Integrado de Desenvolvimento), servidores e outros produtos a m de facilitar o contato com a linguagem. Alm disso, ela tambm oferece a certicao ocial da linguagem, a Zend Certication. A Borland e sua subsidiria, denominada CodeGear, tambm possuem um IDE proprietrio, chamado Delphi para PHP . Para os programadores Delphi, essa ferramenta pode facilitar o desenvolvimento, j que seu IDE conta com componentes conhecidos destes programadores, como DBGrid, DBNavigator etc. Alm disso, o projeto Eclipse da IBM fornece um IDE para desenvolvimento totalmente gratuito, no mesmo estilo do IDE Eclipse para Java. Este ltimo, denominado Eclipse PDT (PHP Development Tools), em nada ca devendo aos melhores IDEs pagos do mercado.

1.3.2 O cdigo PHP embutido no HTML


O PHP fcil de utilizar, seja para gerar HTML ou para ser inserido dentro deste. Veja um exemplo prtico a seguir:

ola.php
<html> <head>

<title> <title>

Testando o PHP </head> <body>

<?php ?>

echo '<b>Al Mundo. Seja bem-vindo ao PHP.</b>';

</html>

</body>

Resultado:
Al Mundo. Seja bem-vindo ao PHP.

Quando um servidor solicita a pgina ola.php, o usurio ver impresso no navegador a mensagem mostrada anteriormente como resultado. Nada de impressionante at aqui: uma pgina HTML tradicional contendo uma mensagem. Se usurio visse o cdigo-fonte da pgina, o navegador mostraria algo como demonstrado na Figura1.1.

Captulo 1 Apresentao do PHP

25

Figura 1.1 Marcao HTML: o cdigo PHP no mostrado.

Aqui est a grande sacada! Por ser pr-interpretado no servidor como descrito no incio do captulo, o usurio s consegue ler as tags HTML e no o cdigo PHP em si.

1.3.3 Outras vantagens da linguagem


Alm do custo e de trabalhar perfeitamente com HTML, podemos ainda citar sobre o PHP os seguintes benefcios:

Manipulao de arquivos como texto plano, do tipo PDF, documentos DOC, entre outros, incluindo sua criao, excluso, alterao etc. Gerao de imagens dinmicas para validao de formulrios. Criptograa de dados. Denio de cookies e sesses. Denio de interfaces para webservices. Manipulao de arquivos XML. Suporte a vrios bancos com acesso nativo como: DB2, Firebird, Informix, Interbase, MySQL, Oracle, PostgreSQL, SQL Server etc. Suporte a vrios padres e interfaces como: COM, CORBA, POP3, IMAP etc.

26

PHP Prossional

Alm das caractersticas citadas anteriormente (que tambm podem ser encontradas em outras linguagens), listamos a seguir alguns pontos que podem ajud-lo na escolha do PHP como sua plataforma de desenvolvimento:

Independncia de plataforma: roda em Windows, Linux, Unix, Mac etc. Suporte a Orientao a Objetos consistente na verso 5. Curva de aprendizado reduzida para quem est aprendendo a linguagem. Sintaxe semelhante com a de linguagens consagradas como C e Java. Integrao com vrios servidores web como Apache, IIS, Xitami, entre outros. Servidores de hospedagem tanto gratuitos como pagos em grande quantidade no Brasil e no mundo. Documentao ocial em portugus. Possibilidade do desenvolvimento tambm para desktop, usando a mesma linguagem. Hoje j possvel desenvolver com PHP em modo visual utilizando janelas a exemplo do Java, Delphi, C++, Visual Basic etc. Podemos criar aplicaes para trabalhar tanto em rede ou stand-alone independente do sistema operacional. Isso s foi possvel graas evoluo da linguagem e incluso da biblioteca GTK. Para conferir o que o PHP pode oferecer neste sentido, tome como ponto de partida a pgina http://gtk.php.net. Este endereo tambm conta com diversos exemplos disponveis.

Estes so alguns fatores adicionais que o PHP pode oferecer e que podem inuenciar sua deciso na adoo desta linguagem. Os fatos esto a e mostram que a linguagem amadureceu e est pronta para o seu prximo projeto. Quanto utilizao do PHP como plataforma de desenvolvimento, veja a Figura 1.2 auditada pela Netcraft, que mostra que mais de 19 milhes de domnios utilizam a linguagem. A Netcraft uma empresa inglesa que realiza monitorias e pesquisas de mercados relacionadas com a internet, incluindo sistemas operacionais, servidores web, entre outros. Seus relatrios e artigos, considerados benchmarks pelo mercado, so publicados em seu site http://netcraft.com com regularidade.

Captulo 1 Apresentao do PHP

27

Figura 1.2 Nmeros do PHP no mundo. Fonte Netcraft Abril/2007.

1.4 Ambiente do PHP


Como j foi dito, o PHP amplamente utilizado principalmente para desenvolvimento web, seja na plataforma Unix/Linux quanto na Windows. Vamos descrever a seguir os ambientes de congurao da linguagem nessas duas plataformas.

1.4.1 Introduo sobre LAMP e WAMP


Os termos LAMP e WAMP sero amplamente utilizados no decorrer deste livro. De forma simplicada, eles especicam padres de ambientes freqentemente congurados para a linguagem PHP. Apesar da inexistncia de um modelo rgido para sua constituio, estes modelos contm alguns itens bsicos como: servidor web Apache, servidor de banco de dados MySQL e um interpretador para uma ou mais linguagens de programao, entre elas o PHP, Python ou Perl. Justamente a partir da juno destes componentes com a escolha do sistema operacional da mquina (Windows ou Linux) que so originados os referidos acrnimos LAMP e WAMP. Especicamente neste livro, trataremos sobre a linguagem PHP. De forma concisa temos:

LAMP juno das iniciais de Linux, Apache, MySQL e PHP. WAMP juno das iniciais de Windows, Apache, MySQL e PHP.

28

PHP Prossional

Por serem constitudos a partir de diferentes aplicativos, todos eles independentes entre si, pode-se armar que estes ambientes so modulares por essncia. Tais componentes sero descritos detalhadamente mais adiante. Por ora destacamos a origem destes termos. Apesar de serem constitudos a partir da mesma base de aplicativos, no existe uma regra explcita para sua distribuio na mquina, como, por exemplo, uma estrutura de arquivos e diretrios padronizada, tampouco detalhes de suas conguraes internas. Na prtica, os termos LAMP e WAMP referem-se a modelos estruturais lgicos para o ambiente PHP. Isto quer dizer que duas mquinas que contenham cada uma seu prprio LAMP, por exemplo, no necessariamente tero as mesmas estruturas internas de arquivos e parametrizaes. No to comum como estes dois termos, um terceiro, chamado AMP (ou XAMP), tambm pode ser encontrado em sites da internet e livros: nada mais do que uma generalizao dos anteriores. Refere-se a um ambiente com o servidor web Apache, banco de dados MySQL, linguagem PHP, sem especicar seu sistema operacional. Como descrito, em se tratando de um ambiente com tais caractersticas, podemos tomar a liberdade de no explicitar este sistema, visto que na maior parte das aplicaes no haver diferenas na utilizao do ambiente, sendo ele baseado no Windows ou Linux. o que se chama de abstrao do sistema da mquina. importante ressaltar que os componentes do termo AMP so disponibilizados individualmente na internet e de forma gratuita, sem a necessidade da aquisio de licenas proprietrias de seus respectivos softwares. Isto quer dizer que seus componentes de base representam custo zero de compra e utilizao. Especicamente o LAMP, constitudo com base no sistema operacional Linux (tambm disponibilizado livremente na internet), forma um ambiente genuinamente livre de licenas proprietrias comerciais. Justamente por este e outros motivos que o ambiente mais freqentemente utilizado para a linguagem PHP, sendo tambm o adotado como padro para a elaborao dos exemplos prticos deste livro e recomendado aos leitores pelos seus autores. A escolha dos componentes AMP no devido unicamente a sua disponibilidade gratuita na internet. principalmente pelo fato de que todos estes itens j foram (e ainda so) constantemente testados a exausto, corrigidos e melhorados ao longo de suas existncias. Pode-se com certeza armar que eles so robustos, consistentes e j passaram e foram aprovados pelos mais diferentes testes de performance, em diversas conguraes de mquinas e de sistemas. Alm disso, so continuamente discutidos e aperfeioados por suas respectivas comunidades, desenvolvedores e programadores distribudos ao redor do mundo.

Captulo 1 Apresentao do PHP

29

Mais adiante ser feita uma exposio completa sobre as diferentes formas de instalao e congurao deste ambiente. Ser adotada uma congurao de um ambiente bsico para o desenvolvimento do PHP, que ser utilizada para todos os exemplos e prticas descritas no decorrer do livro.

1.4.2 Papel de cada componente envolvido no ambiente


Sistema operacional Windows ou Linux Formam a camada de base dos demais aplicativos instalados na mquina. Em se tratando dos ambientes LAMP e WAMP, o mais comumente utilizado (inclusive neste livro) o primeiro deles, baseado no sistema Linux. Muitos fatores justicam esta escolha, entre eles: apresenta timos ndices de performances para este tipo de ambiente; pode ser congurado com grande exibilidade a partir de suas distribuies, de diversas maneiras distintas, de acordo com os requisitos da mquina e dos sistemas; possui uma vasta gama de comunidades que o apiam e o mantm; seguro; pode ser administrado remotamente; pode ser instalado com ou sem um ambiente grco (este ltimo no necessrio ao LAMP). disponibilizado na internet pela licena GNU GPL, em diversas distribuies ou sabores , entre eles: Red Hat, Debian, Suse Linux, Slackware, Ubuntu, Fedora etc. Servidor web Apache Desenvolvido pela Apache Software Foundation, um servidor web de cdigo aberto, disponibilizado livremente na internet. De acordo com a Netcraft, o servidor web Apache detinha no incio de 2007 um market share de aproximadamente 60% para o mercado de servidores web. Atualmente conta com verses para as principais plataformas existentes, entre elas o Linux e o Windows, sendo altamente recomendado para o primeiro sistema por questes de desempenho. Possui uma vasta gama de caractersticas, conguraes e ferramentas, entre elas: um poderoso sistema de registro de logs, alto nvel de segurana, na granularidade de congurao, implementao de hosts virtuais, suporte a SSL (Secure Sockets Layer), entre outros. Seu site ocial http://httpd.apache.org. MySQL Desenvolvido pela MySQL AB, um servidor de banco de dados de cdigo aberto, disponibilizado a partir de diferentes formas de licenas na internet, incluindo verses gratuitas. A mais recente delas, a 5.0, bastante robusta e possui as principais funcionalidades esperadas deste tipo de servio, incluindo: integridade referencial, stored procedures, triggers, views, suporte a campos BLOB (Binary Large Objects) etc. Seu site ocial http://mysql.org.

30

PHP Prossional

PHP uma das linguagens de scripts mais utilizadas para os ambientes de sistemas para a internet. Possui atualmente inmeras comunidades, grupos de discusses e entusiastas ao redor do mundo. Sua mais recente verso recebeu incremento de novas funcionalidades e suporte mais consistente ao paradigma da programao Orientada a Objetos, extenses para webservices, novas bibliotecas internas etc. Seu site ocial http://php.net.

1.4.3 Juntando todas as partes


A Figura 1.3 ilustra um tpico ambiente para um servidor LAMP / WAMP. Repare que todos os componentes listados no tpico anterior podem car residentes dentro deste servidor.

Figura 1.3 Estrutura bsica de um servidor LAMP / WAMP .

O nico componente deste servidor que visvel ao mundo externo o servidor web Apache. ele quem escuta, trata de todas as requisies do tipo HTTP e HTTPS geradas pelos navegadores clientes e gerencia todo o seu processamento e resposta. Por ser teoricamente a nica porta de entrada aos sistemas externos, sua segurana torna-se fator crtico de ateno aos administradores de sistemas, visto que grande parte dos ataques de crackers visa justamente descobrir uma maneira de burlar este servio e obter acesso ao servidor. Caso a requisio recebida pelo Apache seja um arquivo do tipo HTML ou gura, ele consulta o seu sistema de arquivos e, se este estiver disponvel, retornado ao cliente. Por outro lado, se o tipo solicitado tiver uma extenso especial, que deva ser tratado por algum sistema externo ao Apache (como, por exemplo, arquivos do tipo

Captulo 1 Apresentao do PHP

31

CGI (Common Gateway Interface), PHP, Perl, Python etc.), esta requisio delegada ao seu responsvel. Este ir efetuar o devido tratamento, como, por exemplo, realizar um clculo aritmtico, e retornar a resposta ao Apache. Este por sua vez, de posse da requisio processada pelo sistema externo, entregar a resposta ao navegador do cliente. Eventualmente este agente necessitar realizar consultas a uma base de dados relacional, razo pela qual na Figura 1.3 o sistema do PHP apresenta uma conexo com o banco de dados MySQL.

1.5 Instalao bsica de um ambiente LAMP e WAMP


Existem diversas maneiras distintas para se instalar um ambiente LAMP ou WAMP. Este pode ser instalado desde forma rpida e prtica, a partir de pacotes totalmente pr-congurados, disponibilizados na internet, at a instalao e congurao manual de cada um de seus componentes. Como todo o restante do livro abordar exemplos prticos num servidor AMP, altamente recomendvel que o leitor possua um ambiente prprio para testes dos seus scripts e aplicativos. Ele pode estar disponvel em sua prpria mquina ou a partir de um servidor de sua rede, onde este possua acesso aos arquivos de scripts. Caso ainda no o possua, sero apresentados nos prximos tpicos exemplos prticos para sua instalao e congurao. A seguir sero descritas trs formas distintas para a realizao desta tarefa. Elas so sucientes para a utilizao e prtica de todos os exemplos propostos neste livro. importante ressaltar que, como boa prtica de segurana, tais ambientes nunca devero ser utilizados em ambientes de produo. Para isto, seriam necessrias conguraes e instalao de softwares adicionais neste servidor para sua segurana e manuteno, o que foge do escopo deste livro.

1.5.1 Pacote pr-congurado


Existem alguns projetos para manuteno e pr-congurao de ambientes LAMP e WAMP. Na grande maioria dos casos, eles podem ser baixados gratuitamente em seus sites ociais pela internet. A grande vantagem da instalao de um servidor por este mtodo em relao ao tempo demandado e a facilidade em sua execuo. a opo mais recomendada para usurios inexperientes no ambiente, ou para os que desejam montar um servidor para desenvolvimento em alguns minutos para alguma tarefa especca ou pessoal.

32

PHP Prossional

Ao invs de instalar e congurar cada um dos componentes envolvidos, estes pacotes oferecem ao usurio uma congurao bsica pr-montada. A desvantagem deste mtodo reside tambm justamente neste ponto: nem sempre o usurio poder alterar uma congurao com facilidade ou a atualizao individual de um componente nem sempre ser possvel. Neste caso, necessrio que os responsveis pelo projeto atualizem e disponibilizem uma nova verso de seu produto. Diversos exemplos de opes disponveis poderiam ser utilizados atualmente, tanto para plataformas Linux quanto Windows. A seguir, um breve comentrio sobre algumas delas:

XAMPP Interessante projeto AMP, que disponibiliza verses para mais de uma plataforma de seu pacote, entre elas: Windows, Linux, Mac OS X e Solaris. Possui uma srie de extenses pr-conguradas para o PHP e para o Apache. Contm atualmente o PHP 5.2, Apache 2.2, MySQL 5.0, SQLite, alm de uma srie de mdulos, extenses e aplicativos, como, por exemplo, para controle e gerenciamento do banco MySQL, o phpMyAdmin. Seu site ocial http://
apachefriends.org/en/xampp.html.

Vertrigo Verso disponvel apenas para Windows. Disponibiliza um ambiente completo e de fcil manuteno para o usurio. considerado um dos melhores pacotes para esta nalidade. Com um organizado painel de administrao, disponibiliza ao usurio ferramentas para congurao das principais diretivas do PHP, MySQL e Apache, atalhos para rpida visualizao e controle de seus arquivos de congurao, comandos de inicializao e encerramento de servios, entre outros. Contm atualmente o PHP 5.2, Apache 2.2, MySQL 5.0, alm de aplicativos de controle do banco MySQL, o phpMyAdmin e SQLite. Seu site ocial http://vertrigo.sourceforge.net. As guras 1.4 e 1.5 mostram algumas telas da ferramenta.

Figura 1.4 Painel de administrao do Vertrigo.

Captulo 1 Apresentao do PHP

33

Figura 1.5 Configurao das diretivas de cada componente.


EasyPHP Outra opo disponvel para a plataforma Windows que tambm contm os principais aplicativos encontrados anteriormente. Seu site ocial http://easyphp.org.

1.5.2 Mquina virtual pr-congurada


Esta opo baseia-se no conceito de virtualizao de mquinas. Ela consiste no procedimento de rodar um ou mais servidores em um ambiente totalmente isolado da mquina real. Estas mquinas podem contar com sistemas operacionais, aplicativos e conguraes distintas e independentes entre si, incluindo a mquina real (chamada de hospedeira ou host machine) que os suporta, atravs do aplicativo de virtualizao. Como diferentes mquinas e ambientes podem ser congurados atravs desta tcnica, ela interessante na medida em que um aplicativo pode ser testado em diversas combinaes diferentes de hardware e software, antes de ser disponibilizado em um ambiente de produo. No caso de sistemas criados com a linguagem PHP, tais testes podem ser efetuados inclusive entre sistemas operacionais distintos. Existem atualmente no mercado diversos softwares que oferecem esta funcionalidade, entre eles o Xen (http://xensource.com), o Microsoft Virtual PC (http://microsoft. com/windows/virtualpc) e o VMware Server (http://vmware.com). Uma das maiores vantagens na utilizao destas mquinas virtuais que algumas delas disponibilizam em seus sites mquinas virtuais pr-montadas e conguradas para inmeros propsitos diferentes. Um destes casos o VMware Server, que

34

PHP Prossional

oferece na pgina http://vmware.com/appliances algumas destas mquinas, chamadas Virtual Appliances, baseadas na plataforma Linux. Existe a possibilidade de baixar mquinas com ambientes LAMP completos, inclusive com aplicaes funcionais baseadas no PHP. Alguns exemplos so:

rPath LAMP Appliance oferece um ambiente enxuto , com o servidor web Apache, MySQL, PostgreSQL, PHP, Python, Perl, alm de uma interface web completa para administrao destes aplicativos. Disponvel em http://vmware. com/appliances/directory/465. Mambo Virtual Appliance ambiente web com o aplicativo Mambo Server CMS, escrito em PHP, voltado para gerenciamento de contedo de sites da internet. Disponvel em http://vmware.com/appliances/directory/520. SugarCRM Appliance ambiente web com o aplicativo SugarCRM, escrito em PHP, voltado para gesto comercial de clientes. Disponvel em http://vmware. com/appliances/directory/211. MediaWiki Appliance sistema Linux com distribuio Fedora 5, com o aplicativo MediaWiki, para gerenciamento colaborativo de contedo de sites da internet, entre eles a enciclopdia eletrnica Wikipdia. Disponvel em http://vmware. com/appliances/directory/180.

A desvantagem da tcnica de virtualizao com o uso de mquinas virtuais pr-montadas semelhante apresentada no item anterior. Nem sempre ser possvel atualizar ou modicar um de seus componentes de maneira individual. Geralmente estas atualizaes so feitas pelos respectivos responsveis por cada um destes projetos.

1.5.3 Instalao manual


Esta certamente a forma mais exvel de instalao do servidor, uma vez que cada componente do ambiente LAMP ou WAMP instalado e parametrizado de maneira manual e individual pelo prprio usurio. Ao contrrio das duas opes anteriores, cabe a esta pessoa a manuteno, integrao e atualizao deste ambiente. A seguir ser exposto um processo prtico de instalao de um ambiente LAMP a partir da distribuio Linux Debian Sarge verso 3.1, com a utilizao da interface de linha de comando. Considera-se j instalado um conjunto mnimo de utilitrios para a execuo desta tarefa, como, por exemplo: o APT (Advanced Package Tool) do Debian, para controle dos pacotes do sistema e o TAR para empacotamento de arquivos. Para o procedimento ser efetuado necessrio o acesso conta de supe-

Captulo 1 Apresentao do PHP

35

rusurio do sistema. Ao nal da operao, este ambiente LAMP contar com os seguintes componentes e verses: Apache 2.2.6, PHP 5.2.4 e MySQL 5.0.45. Tais verses so as mais recentes encontradas nos seus respectivos sites ociais no momento de escrita deste livro.

1.5.3.1 Preparao do ambiente


O usurio dever ter uma noo bsica sobre os principais comandos do Linux para efetivar o procedimento, pois como este assunto foge do escopo do livro, no sero tratados seus detalhes envolvidos. Caso seja necessrio, o leitor poder consultar livros e sites da internet que contenham documentao mais detalhada para esta nalidade. Esta instalao pode ser feita a partir de uma mquina real ou virtual (vericar tpico anterior, com a utilizao do VMware Server) com o Linux Debian. importante notar que, assim como os itens anteriores, esta mquina tem o propsito apenas para testes do ambiente. Ela nunca dever ser utilizada num ambiente real de produo. Alm disso, os procedimentos descritos so meramente ilustrativos para concepo do sistema, podem eventualmente variar de acordo com a verso do sistema e dos componentes utilizados e no abrangem por completo todas as opes disponveis para os seus mdulos. Para iniciarmos o procedimento de congurao do sistema, ser denida uma conta de usurio, identicado por desenv, associado ao grupo desenv, que ser responsvel pelo download dos pacotes, pr-congurao, compilao e utilizao do sistema. O superusurio root executar as rotinas de instalao destes pacotes e controle sobre a inicializao e encerramento de servios. Podero ser utilizados o navegador Lynx ou o utilitrio GNU Wget para realizar o download pela internet de todos os componentes. Os sites ociais destes dois utilitrios so, respectivamente, http://lynx.browser.org e http://gnu.org/software/wget. Caso seu sistema no os possua, eles podero ser baixados e instalados a partir do utilitrio apt-get, um dos componentes do pacote do APT do sistema Debian. Para efeito ilustrativo, os trechos de cdigos expostos neste livro utilizaro um prexo com o caractere cifro ($) para representar comandos do usurio. As demais linhas so representaes de sadas de texto do sistema. O diretrio base ser adotado com o nome de www. Ele ser criado no diretrio home, um dos padres na grande maioria dos sistemas Linux / Unix. Dentro do www, sero criados os diretrios public_html e sources, respectivamente para nossos cdigos-fonte e arquivos de componentes baixados pela internet. Em seguida, sero concedidos usurio e grupo desenv para toda a estrutura em www.

Você também pode gostar