Instalando Apache PHP MySQL no Windows 2

Apache - PHP - MySQL

PHP  MySQL no Windows 2

O instalador do PHP 5 também pode ser encontrado no formato de pacote do Windows Installer (MSI). Prefira usar este, pois normalmente, é o mais fácil para instalar. Baixe-o em: (procure pela versão para win32): http://www.php.net/downloads.php

Assim como com o nome do arquivo do instalador do Apache, o instalador do PHP possuirá um nome parecido com php-x.x.x-Win32.zip, onde o x.x.x corresponde à versão. Neste tutorial estou usando a versão 5.2.1; as telas de instalação poderão ser diferentes em outras versões, mas as idéias serão basicamente as mesmas. O PHP é um módulo para o Apache. Ao processar uma página PHP, o Apache envia a página ao módulo PHP, que a processa e devolve o resultado ao Apache, que por sua vez, envia ao browser que fez a solicitação.

Para isso, a instalação do PHP consiste basicamente em colocar os arquivos numa pasta, e configurar o Apache para que “enxergue” os módulos PHP e chame-os sempre que encontrar um arquivo .php. Sem o PHP instalado, se você colocar um arquivo .php no site, ao acessá-lo pelo navegador ele será exibido como texto (com o código-fonte), ou o mais comum, o navegador pedirá para salvá-lo, como ao fazer o download de um arquivo qualquer. A definição do módulo do PHP no Apache vai no arquivo “httpd.conf”, e o tipo de arquivo .php, no “mimes.types”.

O instalador do PHP 5 é muito sofisticado, e possui uma boa configuração automática. Se você baixar o arquivo .zip em vez do instalador, deverá extrair os arquivos para uma pasta e então configurar o Apache manualmente. Com o instalador, a instalação pode ser automática, para diversas versões do Apache, e inclusive para outros servidores, como o IIS, Xitami, etc. Mas para que ela se dê de forma automática, você deve especificar as opções corretas na instalação. Não se esqueça de instalar primeiro o Apache 🙂

Na instalação do PHP, ele pedirá o tipo de servidor usado. No meu caso, escolhi Apache 2.2.x:

Então ele pede o local dos arquivos de configuração do Apache. Localize a pasta “conf”, dentro da pasta do Apache, senão a configuração não será automatizada (mas veremos também como fazê-la manualmente):

Janela Setup PHP

Ao final da instalação o instalador do PHP pergunta se você quer que ele atualize os arquivos de configuração do Apache. Se quiser a configuração automática, confirme 🙂

Se tudo ocorreu bem até aí, nenhuma mensagem de erro será exibida ao iniciar ou reiniciar o Apache, e as páginas .php serão processadas e entregues corretamente ao browser. Ainda não foi configurado um servidor de banco de dados, então apenas os recursos diretos do PHP funcionarão (e os dos outros módulos pré-instalados do Apache, é claro). Um ótimo meio de testar o PHP e ver diversas informações do servidor é criar uma página PHP, com o seguinte conteúdo:

Janela Setup PHP

<html><head><title>Informações do meu servidor</title></head>
<body>
<? phpinfo(); ?>
</body></html>

Salve-a na pasta “htdocs” do Apache, com a extensão .php, e abra no navegador:

Se a página não puder ser acessada, pode haver um erro de configuração, ou de instalação do PHP. Se nem o “http://localhost” puder ser acessado, então o problema deve ser com o Apache. Se tiver erros nas configurações do Apache, ele poderá não ser iniciado, deixando o “servidor” fora do ar. Vamos ver agora como rever e alterar a configuração manualmente, editando os arquivos, inclusive possibilitando a correção de problemas.

Janela Localhost PHP

Configurando o PHP manualmente

A configuração do PHP envolve a edição do arquivo php.ini, na pasta onde o PHP for instalado, e a inclusão de referências a ele nos arquivos do Apache. Se você aceitar a configuração automática, não precisará alterar nada (a menos que ocorram erros). Mas se preferir configurar manualmente, arregace as mangas e vamos à obra!

Para começar, instale o PHP usando somente os componentes padrões. Eu marquei todos os itens na instalação, e ele dava um erro no final, além do que eu não conseguia mais iniciar o Apache. Então desinstalei e instalei novamente, sem selecionar todos os componentes, até por desconhecer a função de vários deles. É melhor você fazer uma instalação enxuta, as possibilidades de erros são menores. Com mais componentes, fica mais difícil localizar o ponto do erro.

Pense na montagem de um computador, vá colocando os recursos aos poucos, e testando. Se funcionar, avance, caso contrário, páre e veja a última coisa até onde funcionava. Se você simplesmente instalar tudo, ficará muito mais complicado encontrar as causas dos erros, especialmente se você não tiver prática com todos os recursos oferecidos no instalador do PHP (ou do que for).

Para configurar manualmente o PHP, ou se a configuração automática falhar, são basicamente três passos. Vamos começar pela configuração do Apache. Abra o arquivo “httpd.conf”, da pasta “conf”, que está dentro da pasta do Apache. No final do arquivo, depois de tudo o que tiver nele, deverão existir estas linhas:

PHPIniDir “C:\\php5\\”
LoadModule php5_module “C:\\php5\\php5apache2_2.dll

Veja num editor de textos, para ter uma idéia melhor:

Janela editor de Texto
Neste screenshot a configuração destacada foi adicionada pelo instalador do PHP 5. Observe os comentários, pedindo para remover estas linhas apenas na desinstalação do PHP.

A linha PHPIniDir define a pasta do PHP, onde ele foi instalado (onde esta o php.ini original).

A linha LoadModule… Carrega o módulo do PHP no Apache, que se chama “php5_module”, e está no arquivo “C:\php5\php5apache2_2.dll”.

É recomendável instalar o PHP em uma pasta onde o nome do caminho dela não contenha espaços, mas isso não é obrigatório. Eu instalei em “C:\php5”, seguindo a idéia das versões mais antigas, mas o instalador sugeria por padrão uma subpasta da “Arquivos de programas”. Seguindo o exemplo, prefira usar duas barras invertidas (\\) em vez de uma só nos caminhos, e não se esqueça de colocar entre aspas se tiver espaços.

Agora vamos configurar o “mime.types”. Abra-o num editor de textos puro e adicione, também no final de tudo (tecnicamente, pode ser onde você quiser, mas não se confunda depois :), as linhas:

application/x-httpd-php php
application/x-httpd-php-source phps

Elas identificam os tipos de arquivo .php e .phps, para que o Apache saiba lidar com eles e então enviá-los corretamente aos browsers.

Agora falta configurar o arquivo “php.ini”. Ele deve ficar numa pasta que esteja cadastrada na variável de ambiente “path”, do Windows. Isso permite que qualquer programa chame este arquivo apenas pelo nome, sem precisar indicar o caminho completo.

Antigamente se editava o php.ini, e depois ele era copiado para a pasta do Windows (ou system32). Nada impede que você faça isso, mas na instalação do PHP5, com a configuração automatizada, ele adiciona à variável PATH o caminho da pasta do PHP. Para isso é preciso que a instalação seja feita por um administrador. Você pode confirmar se a pasta do PHP está ou não na variável de ambiente PATH indo nas propriedades do “Meu computador”, guia “Avançado”, botão “Variáveis de ambiente”:

Janela Propriedade do Sistema
Veja que a pasta do PHP foi adicionada automaticamente à variável PATH

Estando com o php.ini em uma pasta definida na variável de ambiente Path (se não estiver, copie-o para a pasta do Windows), vamos editá-lo. Abra-o num editor de textos puro (por padrão ele fica na pasta do PHP).

Uma configuração útil é ativar o uso dos delimitadores <? … ?>, muito usados, por serem mais simples. No php.ini localize a linha que começa com “short_open_tag”, e troque o Off por On (cuidado com as letras maiúsculas e minúsculas!). Ela deverá ficar:

short_open_tag = On

Sem fazer isso (se deixar Off), os scripts iniciados com <? não serão identificados como scripts PHP, mas apenas os que iniciarem com <?php ou <script language=”php”>. Aproveitando, você pode definir “On” para a linha mais abaixo, “asp_tags”, para permitir que os scripts que usem os delimitadores <% e %> sejam executados, caso esteja acostumado com ASP e prefira utilizar esta forma.

O php.ini vem bem comentado (em inglês), role a tela e leia-o com calma, para ver o que você pode alterar. É ideal ter conhecimentos avançados de PHP para alterá-lo por conta, e não se esqueça de manter um backup a cada alteração. No final da segunda parte deste tutorial comentarei sobre outras configurações necessárias a serem feitas no php.ini, para que os scripts PHP funcionem corretamente com os recursos mais usados.

Cuidado: se você instalar o PHP por cima de uma instalação existente, o instalador poderá adicionar uma nova configuração nos arquivos “httpd.conf” e “mime.types”, duplicando as configurações, causando um erro na inicialização do Apache. O ideal antes de instalar uma nova versão ou reinstalar, é remover manualmente as linhas adicionadas pelo PHP nos arquivos do Apache, e então usar o Adicionar ou remover programas, do painel de controle do Windows, para removê-lo. Após isso, instale normalmente a nova versão (ou a mesma :). Saiba ainda que, ao desinstalar o Apache e/ou o PHP, os arquivos de configuração deles não serão removidos por motivos de segurança, pois podem conter modificações suas. Se quiser “limpar” o sistema e iniciar a instalação do zero, desinstale o PHP e o Apache pelo painel de controle, e a seguir, apague as pastas deles. Se você copiou o php.ini para a pasta do Windows, remova-o de lá também.

Concluindo a primeira etapa

A configuração do Apache + PHP no Windows é basicamente esta. Agora é com você e suas páginas.

Tenha em mente que este tutorial foi escrito para desenvolvedores de sites que querem desenvolver páginas dinâmicas em PHP, mas que usam o Windows no desktop ou workstation, e precisam criar e testar as páginas off line, e/ou ainda para quem está estudando PHP e não assina um plano de hospedagem. A hospedagem dos sites propriamente ditos deverá ser feita em servidores web, normalmente basta carregar os arquivos da pasta “htdocs” do Apache via FTP.

A configuração de redes e servidores web foge ao objetivo deste tutorial, por isso não abordamos as outras configurações do Apache, como número máximo de sessões, alteração da pasta root do site, criação de “subsites”, domínios e DNS, etc.