Issuu on Google+

Jack D. Herrington

PHP

Hacks Tradução: ????? ?????????

Consultoria, supervisão e revisão técnica desta edição: ????? ?????????

2008

Herrington_Book.indb iii

17.10.07 13:57:59


1

Instalação e Fundamentos Dicas 1-2

Antes de começar a mexer com PHP, você precisa instalar a linguagem ou obter uma conta em uma máquina que já tenha a PHP instalado. Este capítulo aborda os fundamentos da instalação de PHP, assim como a instalação do segundo componente fundamental, o mecanismo de banco de dados MySQL, que é comumente usado para fornecer os dados utilizados nos aplicativos em PHP. Este capítulo também aborda a instalação dos módulos de código-fonte aberto PEAR, os quais você pode usar gratuitamente em seus próprios aplicativos em PHP. D IC A

#1

INSTALAÇÃO DO PHP Instalação da linguagem PHP no Windows, Mac OS X e Linux, e para Apache e Internet Information Server.

Instalar o PHP é o primeiro passo para utilizar este livro e, na maioria dos sistemas operacionais, é muito fácil fazer isso. A instalação da PHP começa com uma ida ao site da linguagem (http://www.php.net/) e fazendo-se o download do código-fonte ou dos binários, junto com a documentação.

Instalando o PHP no Windows No Windows, você precisa iniciar a instalação do PHP fazendo o download dos binários da versão 5 da linguagem. Use o instalador .msi para facilitar o processo e especifique o diretório de instalação como c:\php5. Com sua instalação do PHP realizada, você pode executar o interpretador do PHP a partir de um prompt do DOS no Windows: C:\> php -v PHP 5.0.4 (cli) (built: Mar 31 2005 02:45:00) Copyright ¬© 1997-2004 The PHP Group Zend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend Technologies

Se o executável php não for encontrado, você precisará adicionar c:\php5\bin em seu caminho. Use a guia Advanced do painel de controle do sistema e clique no botão Environment

Herrington_Book.indb 21

17.10.07 13:58:02


22

PHP Hacks

Variables. A partir de lá, edite a variável Path, adicionando c:\php5\bin no caminho que você já tiver estabelecido. Você precisará fechar todas as janelas de prompt de comando abertas e depois abrir uma nova janela de prompt de comando, para garantir que essas alterações entrem em vigor.

O acesso de linha de comando para o PHP é excelente, mas o PHP deve ser instalada e integrada em seu servidor da Web. No Windows, você tem duas opções para essa integração. A primeira é instalar o Apache Web Server e configurá-lo para o PHP; a segunda é instalar o servidor da Web IIS (Internet Information Services) e instalar o PHP nesse ambiente. Nos dois casos, você precisa copiar o arquivo php.ini para o diretório do Windows, c:\windows. Edite o arquivo c:\windows\php.ini e altere a linha extension_dir para o seguinte: extension_dir = "c:\php5\ext"

Além disso, retire a marca de comentário de linhas como a seguinte: extension=php_mysql.dll

Essa linha permite o acesso ao banco de dados MySQL. Talvez você queira retirar a marca de comentário de várias outras bibliotecas nesse arquivo, para ativar o acesso às outras bibliotecas; consulte a documentação do PHP para mais informações sobre bibliotecas específicas.

Agora, volte ao site do PHP (http://www.php.net/) e faça o download da coleção de módulos PECL. Salve esses arquivos de DLL no diretório c:\php5\ext (o mesmo diretório que você acabou de referenciar em php.ini). Essas extensões são exigidas, caso você queira acessar bancos de dados SQL ou usar funções gráficas (você desejará usar ambas em algum momento). Instalando PHP no Apache. Vá até o site do Apache (http://www.apache.org/) e faça o download da versão 1.3 do servidor, que é previamente compilada para Windows. Ela vem como um instalador MSI e essa é a maneira mais fácil de instalar o Apache. Uma vez que o Apache esteja instalado, o próximo passo é configurar o arquivo http.conf no diretório conf do Apache (c:\Program Files\Apache Group\Apache\conf, se você instalou o Apache no local padrão).

Adicione as seguintes linhas no final do arquivo httpd.conf: LoadModule php5_module "c:/php5/php5apache.dll" AddModule mod_php5.c AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

Em seguida, inicie o servidor Apache, executando apache.exe: C:\Program Files\Apache Group\Apache> apache Apache/1.3.33 (Win32) PHP/5.0.4 running...

O diretório de documentos para essa instalação é htdocs (tornando o caminho completo c:\ Program Files\Apache Group\Apache\htdocs). Para testar, crie um arquivo test.php no diretório htdocs e coloque o código a seguir no arquivo: <?php phpinfo( ); ?>

Herrington_Book.indb 22

17.10.07 13:58:02


Capítulo 1 • Instalação e Fundamentos

25

Se você usar o botão Browse quando criar um novo mapeamento, precisará alterar o tipo de arquivo para a configuração de DLL, para que possa ver o arquivo.

Configure a extensão como .php. O resultado deve ser como a Figura 1-5.

Figura 1-5 As configurações de mapeamento para PHP 5.

Clique em OK (e confirme todos as caixas de diálogos pelo caminho). Em seguida, navegue até o diretório de documentos que você especificou quando criou o diretório virtual. Crie um novo arquivo, chamado test.php, com o seguinte conteúdo: <?php phpinfo( ); ?>

Em seguida, vá com seu navegador até esse arquivo em localhost; você deverá ver algo parecido com a Figura 1-1.

Instalando a PHP no Mac OS X O PHP vem instalado em todas as versões de OS X. Tudo que você precisa fazer é ativá-lo. Esse processo começa com você se tornando o superusuário, usando o comando sudo: % sudo tcsh

No shell do superusuário, você pode modificar arquivos de sistema. O próximo passo é editar o arquivo httpd.conf em /etc/httpd, usando seu editor de textos predileto (vi, emacs etc.). Encontre e retire a marca de comentário da seguinte linha: LoadModule php4_module

libexec/httpd/libphp4.so

Além disso, retire a marca de comentário da seguinte linha: AddModule mod_php4.c

Em seguida, salve o arquivo e reinicie o servidor Apache: % apachectl restart

O diretório de documentos padrão para o Apache Web Server no Mac OS X é /Library/WebServer/Documents. Para testar se o PHP está respondendo corretamente, crie um script de teste no diretório de documentos: <?php phpinfo( ); ?>

Herrington_Book.indb 25

17.10.07 13:58:03


28

PHP Hacks

Uma vez instalado o Apache, o próximo passo é verificar a existência de uma instalação de PHP. Crie um arquivo chamado index.php e coloque-o no diretório de documentos do Apache. O conteúdo do arquivo deve ser o seguinte: <?php phpinfo( ); ?>

Vá até a máquina que tem seu navegador da Web e examine o arquivo index.php. Se você vir algo como a Figura 1-7, então tem uma instalação de PHP funcionando. Se vir apenas o texto do arquivo index.php, o PHP não está instalado ou não está habilitado. Verifique o arquivo de configuração httpd.conf do Apache. Se você vir linhas como a seguinte: # LoadModule php4_module

libexec/httpd/libphp4.so

ative-as, removendo o sinal numérico do início da linha. Se o arquivo não contiver nenhuma linha que seja relevante para o PHP, você terá de instalar o PHP a partir do código-fonte. Instalar a partir do código-fonte significa fazer o download do arquivo .tgz que se encontra no endereço http://www.php.net/. Siga as instruções de instalação contidas no site do PHP. Você já tem o Linux funcionando; portanto, isso deverá ser muito fácil. Recomendamos instalar o PHP 5, pois é a versão mais recente e tem recursos de linguagem que suportam a escrita de aplicativos mais robustos.

Com o PHP instalado, você poderá navegar até a página index.php que construiu anteriormente neste processo e ver uma saída como a Figura 1-7.

Verificando a instalação de seu ISP* Para verificar os detalhes da instalação do PHP de seu ISP, você precisa criar uma página de teste no servidor do ISP e navegar por ela com seu navegador. O conteúdo da página de teste deve ser o seguinte: <?php phpinfo( ); ?>

Com esse arquivo em seu servidor, você poderá navegar até ele em seu navegador e ver algo parecido com a Figura 1-7. Isso fornecerá uma listagem completa de como o interpretador do PHP foi compilado, assim como quais módulos estão instalados. Dois dos problemas mais comuns são a falta de uma interface com banco de dados e de ferramentas gráficas. Você precisa certificar-se de que sua conta no ISP tenha isso instalado. Se você não tiver essas bibliotecas instaladas, peça para seu ISP para que adicione esses recursos (você não deverá encontrar muita resistência; essas bibliotecas de PHP são padrão e úteis para todos os programadores de PHP). Se você ainda não tem um ISP, certifique-se de que os possíveis ISPs tenham o que precisa instalado, antes de se inscrever. Um pequeno levantamento dos sites de hospedagem, reali-

* N. de R.T.: Internet Service Provider, que seria o seu provedor de internet. Neste caso indicando o provedor de serviço de hosting, onde o seu site será hospedado.

Herrington_Book.indb 28

17.10.07 13:58:03


Capítulo 1 • Instalação e Fundamentos

29

zado durante a escrita deste livro, indicou que a maioria dos sites suporta PHP 4 e PHP 5, mas que muitos deles suportam PHP 5 como uma extensão CGI, que é mais lento do que tê-lo instalado diretamente no Apache. Se o PHP 5 é importante para você, certifique-se de que o site suporte o PHP 5 diretamente, como um plug-in do Apache e não por meio de CGI.

Instalando o MySQL O PHP é apenas uma parte do que se chama arquitetura LAMP. LAMP significa Linux, Apache, PHP (Python, Perl ou Ruby) e MySQL. A arquitetura LAMP é extremamente popular, pois é fácil de instalar e de aprender, é muito estável e, o melhor de tudo, é gratuita. Cada peça do quebra-cabeça LAMP contribui com uma parte importante do todo. O Linux é o sistema operacional no qual todas as partes funcionam. O Apache é o servidor da Web super estável. O PHP é a linguagem de script fácil de usar e o MySQL é onde todos os dados são armazenados. Como qualquer aplicativo da Web razoavelmente complexo terá alguns requisitos de armazenamento de dados estruturados, a maioria dos ISPs que usam Unix ofere Apache, PHP e MySQL, o que significa que seu código não apenas será fácil de desenvolver, mas também será executado em praticamente qualquer lugar. Instalar o MySQL é muito fácil. Estão disponíveis instaladores binários para Windows, Mac OS X e algumas versões de Linux; eles são as maneiras mais fáceis para se ter o MySQL executando rapidamente. Além disso, o código-fonte é compilado facilmente em todas as plataformas Unix. Para construir o MySQL a partir do código-fonte, primeiro faça o download do arquivo de código-fonte .tgz mais recente do site oficial do MySQL (http://www.mysql.com/). Descompacte esse arquivo e siga as instruções da documentação sobre a compilação do código-fonte e sua instalação. Isso exige acesso de superusuário e acesso à linha de comando.

Gerenciando os bancos de dados Uma vez instalada o MySQL, você desejará criar um banco de dados para armazenar as tabelas de seu aplicativo da Web. Para criar um novo banco de dados, use o comando a seguir: % mysqladmin --user=root --password=password create dbname

Você terá que alterar o nome de usuário e a senha para o que for apropriado para sua instalação. dbname precisa mudar para o nome desejado para seu banco de dados. A maioria das dicas deste livro cria um banco de dados. Esses bancos de dados recebem diferentes nomes para não haver confusão. De preferência, cada aplicativo em PHP deve usar um banco de dados MySQL diferente. Remover um banco de dados também é fácil: % mysqladmin --user=root --password=password drop foo Dropping the database is potentially a very bad thing to do. Any data stored in the database will be destroyed. Do you really want to drop the 'foo' database [y/N] y Database "foo" dropped %

Nesse caso, estamos removendo o banco de dados chamado foo. Por padrão, o MySQL pergunta se você deseja realmente excluir o banco de dados. Você pode desativar o aviso adicionando a diretiva -f:

Herrington_Book.indb 29

17.10.07 13:58:04


30

PHP Hacks % mysqladmin --user=root --password=password drop -f foo Database "foo" dropped

Essa diretiva é particularmente útil ao se automatizar atualizações de banco de dados.

Após criar um banco de dados, o próximo passo é adicionar tabelas e dados nele. A maneira mais fácil de fazer isso é simplesmente redirecionar o arquivo SQL que possui o esquema de banco de dados para o aplicativo cliente mysql. Aqui está um exemplo: % mysqladmin --user=root --password=password create btest % mysql --user=root --password=password btest < books.sql

O primeiro comando cria um banco de dados chamado btest e o segundo o carrega com as definições de tabela e dados presentes em books.sql. Você pode carregar esse esquema e esses dados de várias maneiras, mas achamos esse processo mais conveniente. Se você não gosta de usar linhas de comando, sempre pode gerenciar o banco de dados por meio do aplicativo da Web phpMyAdmin (http://www.phpmyadmin.net). Esse aplicativo fácil de usar permite adicionar e remover bancos de dados, criar e alterar tabelas, consultar dados e até inserir e atualizar dados por meio da interface da Web.

Consulte também • “Instalação do módulos PEAR” [Dica #2] D IC A

#2

INSTALAÇÃO DOS MÓDULOS PEAR Acesse o amplo repositório de código-fonte PEAR para encontrar funcionalidades excelentes para adicionar em seus aplicativos em PHP.

A biblioteca PEAR é um conjunto de módulos PHP desenvolvido com contribuições de usuários, estruturados de uma maneira comum para que possam ser obtidos por download, instalados e organizados por versão consistentemente. O PEAR é tão fundamental para o PHP que agora vem como uma parte padrão da instalação da linguagem. Para saber o que está disponível na biblioteca PEAR, vá para o site da biblioteca (http://pear. php.net/). Lá, você poderá encontrar a lista de módulos ou pesquisar pelo nome do módulo. Quando você encontrar um módulo que queira instalar, basta executar o programa pear em sua linha de comando. No Windows, a ativação é como segue: C:\> pear install DB downloading DB-1.7.6.tgz ... Starting to download DB-1.7.6.tgz (124,807 bytes) ............................done: 124,807 bytes install ok: DB 1.7.6

Nesse caso, estamos instalando o módulo PEAR chamado DB [Dica 35], um wrapper* de banco de dados orientado a objetos, usado extensivamente neste livro.

* N. de R.T.: Wrapper é um componente de software que converte dados de um modelo para outro.

Herrington_Book.indb 30

17.10.07 13:58:04


Capítulo 1 • Instalação e Fundamentos

31

No Windows, talvez você precise certificar-se de que o arquivo de lote pear. bat, localizado no diretório bin do diretório de instalação do PHP, esteja no path*. Além disso, o diretório onde os módulos PEAR são instalados, freqüentemente não é criado por padrão. Nesse caso, talvez você precise usar o Windows Explorer ou a linha de comando para criar o diretório PEAR. Se você instalou o PHP em c:\php5, o diretório PEAR é c:\php5\pear. Talvez você também precise adicionar esse diretório no path dos módulos no arquivo c:\windows\php.ini.

Nos sistemas Unix, incluindo o Mac OS X, também é fácil executar o programa pear: % sudo pear install HTTP_Client downloading HTTP_Client-1.0.0.tgz ... Starting to download HTTP_Client-1.0.0.tgz (6,396 bytes) .....done: 6,396 bytes install ok: HTTP_Client 1.0.0 %

Aqui, estamos instalando o módulo PEAR HTTP_Client [Dica 84]. Você terá que usar o comando sudo, pois o módulo PEAR será instalado no sistema. Para obter uma lista dos módulos PEAR disponíveis, execute o comando list-all: % pear list-all All packages: ============= Package APC Cache Cache_Lite apd memcache parsekit ...

Latest 3.0.3 1.5.4 1.4.1 1.0.1 1.4 1.0

Local 1.5.4

Como isso não está fazendo alterações em arquivos do sistema, não é necessário acesso de superusuário.

Alguns módulos PEAR são listados como instáveis. Isso significa que eles estão em desenvolvimento. Pedir ao PEAR para instalá-los resultará em uma mensagem de erro: % sudo pear install Services_Amazon No release with state equal to: 'stable' found for 'Services_Amazon'

Aqui, o módulo Amazon Web Services é tão novo—e possivelmente instável—que é marcado como alpha ou beta. Portanto, você precisa obrigar o PEAR a instalar o módulo usando a diretiva -f: % sudo pear install -f Services_Amazon Warning: Services_Amazon is state 'beta' which is less stable than state 'stable' downloading Services_Amazon-0.2.0.tgz ...

* N. de R.T.: Path é uma lista de diretórios onde o sistema operacional procura os binários dos comandos digitados.

Herrington_Book.indb 31

17.10.07 13:58:04


32

PHP Hacks Starting to download Services_Amazon-0.2.0.tgz (8,086 bytes) done: 8,086 bytes install ok: Services_Amazon 0.2.0

Outra opção é solicitar uma versão específica do módulo: % sudo pear downloading Starting to done: 8,086 install ok:

install Services_Amazon-0.2.0 Services_Amazon-0.2.0.tgz ... download Services_Amazon-0.2.0.tgz (8,086 bytes) bytes Services_Amazon 0.2.0

Isso ignorará qualquer verificação de estabilidade e é útil quando você quer voltar para uma versão anterior de um módulo, no caso de uma versão posterior não funcionar. Você pode descobrir quais módulos PEAR já estão instalados em seu sistema, usando o comando list: % pear list Installed packages: =================== Package Archive_Tar Benchmark Cache Console_Getopt DB HTML_Template_IT http HTTP_Client HTTP_Request Image_Barcode Log Net_Curl Net_SmartIRC Net_Socket Net_URL Net_UserAgent_Detect PEAR PHPUnit PHPUnit2 SOAP Services_Amazon Services_Google Services_Weather Services_Yahoo XML_Parser XML_RPC XML_RSS XML_Serializer XML_Tree XML_Util

Version 1.1 1.2.3 1.5.4 1.2 1.7.6 1.1 1.3.6 1.0.0 1.2.4 1.0.4 1.8.7 0.2 1.0.0 1.0.6 1.0.14 2.0.1 1.3.5 1.2.3 2.2.1 0.9.1 0.2.0 0.1.1 1.3.1 0.1.0 1.2.6 1.2.2 0.9.2 0.16.0 1.1 1.1.1

State stable stable stable stable stable stable stable stable stable stable stable stable stable stable stable stable stable stable stable beta beta alpha stable alpha stable stable stable beta stable stable

Não confunda list com list-all; o primeiro lista os módulos instalados e o segundo lista os módulos disponíveis.

Herrington_Book.indb 32

17.10.07 13:58:04


Capítulo 1 • Instalação e Fundamentos

33

Tornar-se fluente em PEAR é fundamental para fazer o melhor uso do PHP. As bibliotecas construídas no PHP são ótimas, mas os módulos PEAR adicionais tornam o PHP um verdadeiro ambiente de desenvolvimento rápido de aplicativos.

Instalando módulos PEAR em seu ISP Como você não tem acesso de superusuário no servidor de um ISP, precisará ser um pouco mais inteligente a respeito de como instalar módulos PEAR. O primeiro passo é definir um diretório de biblioteca onde os módulos PEAR ficarão. Você faz isso criando o diretório no servidor de seu ISP. Em seguida, você usa o comando ini_set para adicionar o diretório no caminho de inclusão, como mostrado no trecho de código a seguir: <?php ini_set( 'include_path', ini_get( 'include_path' ).PATH_SEPARATOR."/users/jherr/mylibs" ); ?>

Esse código deve ficar em sua página PHP ou em um cabeçalho PHP comum que seja incluído em cada página.

Isso adiciona o diretório /users/jherr/mylibs na lista de caminhos que as diretivas include e require pesquisarão. Você deve fazer isso antes de tentar require ou include com quaisquer módulos PEAR instalados. Após criar o diretório de biblioteca e mexer no caminho de inclusão, você pode fazer o download do módulo PEAR que deseja instalar, a partir do site do PEAR (http://pear.php.net/). Descompacte-o e coloque os arquivos de código-fonte no diretório de biblioteca que você acabou de especificar (/users/jherr/mylibs, neste exemplo).

Herrington_Book.indb 33

17.10.07 13:58:04


Editoração PHP Hacks