O Apache

O Apache é um servidor open source, muito estável e seguro, pois vem sendo desenvolvido há eras. Problemas de segurança são corrigidos num tempo menor, diferentemente do concorrente, IIS (Internet Information Services), da Microsoft. Há versão do Apache para Windows também, mas como o Linux é comprovadamente melhor para servidores web, a idéia de usar um servidor rodando no Windows é apenas para testar suas páginas, em tempo de desenvolvimento. Você cria o site, acessa-o localmente, como se estivesse usando a Internet. Seu próprio computador executa o servidor. Na hora do "vamos ver", você transfere seus arquivos para um servidor web e pronto.

A questão mais difícil no Apache for Windows é a configuração inicial (no Linux também :P). Depois que o servidor está rodando a contento, é muito difícil dar problemas; os problemas podem ocorrer nos scripts usados, mas aí já é de responsabilidade do webmaster/programador. Muita gente se bate para colocar o Apache para funcionar no próprio micro, não encontra os arquivos compatíveis e trava numa mensagem de erro, ou seja, fica um tempão tentando colocar o servidor web para funcionar. Eu desenvolvo pequenos sites, e não avançava mais no PHP simplesmente porque não conseguia fazê-lo funcionar :(. Agora que consegui (ufa!), escrevi este tutorial para tentar ajudar muitas, muitas pessoas que também estejam tentando.

O Apache hoje está na versão 2.x, e o PHP, na versão 5. Estou usando o Apache 2.2.4, e o PHP 5.2.1. Vamos instalar primeiro o Apache, depois o PHP (deixando o MySQL para uma outra oportunidade). Como este é um tutorial para webmasters que entendem da programação em PHP, deixaremos de lado características especiais dessa linguagem. A função é deixar o servidor pronto para rodar PHP localmente, depois é com você.


Instalando o Apache

Baixe o Apache para Windows em:

[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

Ele é fornecido compactado, num executável ou num pacote do Windows Installer. Este último é o mais recomendado. Desde que você use as versões recentes do Windows (2000, XP, etc), não encontrará problemas para instalá-lo. Prefira então o pacote "msi". O nome é algo como "apache_x.x.xx-win32-x86.msi", onde x.x.x.x é o número da versão.

Importante: ao instalar servidores e/ou módulos para o Apache, execute o instalador usando uma conta com direitos administrativos no Windows.


Ao baixá-lo, inicie a instalação, como você faria com qualquer programa para Windows com um bom instalador. Durante a instalação ele pedirá o domínio da rede (Network Domain), o nome do servidor (Server Name) e o e-mail do administrador do sistema. Como a instalação é para um servidor local, para desenvolvimento, preencha com "localdomain" no campo "Network Domain", "localhost" no campo "Server Name" e seu e-mail no último campo. Veja:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]

Finalizada a instalação, o apache deverá estar funcionando. No Windows 2000/XP ele é instalado como um serviço que pode ser inicializado/desativado/reiniciado usando o console de serviços, o "services.msc". Por padrão, ele se configura para ser iniciado sempre junto com o Windows (veja na imagem de tela acima a opção na instalação para mudar isso, além de mudar a porta para 8080). Ao fazer alguma alteração num arquivo de configuração do Apache ou ao instalar um módulo, por exemplo, deve-se reiniciar o servidor (não o computador, mas sim o serviço do Apache). Isso pode ser feito com o "Apache Service Monitor", que ficará ativo na área de notificação (bandeja do sistema, próximo ao relógio):
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Com esta interface pode-se parar, iniciar ou reiniciar o servidor do Apache no Windows

Com ele instalado, abra qualquer navegador e digite o nome do seu computador, ou, de preferência, o nome "localhost", que sempre se refere ao computador local. Se preferir, acesse [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] o IP da máquina local. Se tudo deu certo até aqui, você deverá ver uma mensagem "It works" ("Ele trabalha", "Ele funciona"). Veja:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]

As versões mais antigas do Apache exibiam outras informações, mas a 2.2 mostra só isso. Ok, o servidor está funcionando. As páginas ficam por padrão na pasta "htdocs", dentro da pasta onde o Apache foi instalado. No meu caso, seria "C:\Arquivos de programas\Apache Software Foundation\Apache\2.2\htdocs". Basta substituir o arquivo "index.html" pelo do seu site, e colocar suas páginas e subpastas aí. Assim você poderá acessar as subpastas da pasta "htdocs" digitando [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] em qualquer navegador no micro local.

Se o navegador ficar procurando o servidor, abrir uma página de busca ou dizer que não foi encontrado (exatamente como ocorre quando cai a conexão com a Internet), significa que o servidor web não foi iniciado corretamente. Nos itens básicos não há o que dar errado, se for o caso, desinstale e instale novamente o Apache, tomando o cuidado de definir as opções da instalação como comentadas mais acima.

Instalado o Apache, ele lê basicamente HTML puro. Porém, é diferente a forma de acesso, usando o endereço "http://localhost/index.html" de "C:\meu site\index.html". No primeiro caso, o navegador solicita a página ao computador "localhost" (que é o seu computador!), recebe-a do servidor, armazena-a no cache, para depois exibi-la. Ele trata como se fosse um site da Internet; como o servidor do site está na rede local (ou mesmo no seu próprio PC, um computador só), trata-se de uma Intranet. No segundo caso, você está acessando o arquivo diretamente no seu HD. O navegador pode até armazenar algum dado no cache, mas não há nenhuma comunicação com nenhum servidor. Ele lê o arquivo como qualquer programa leria qualquer arquivo.

A configuração do Apache vai em alguns arquivos de texto puro, no estilo dos arquivos ".ini", e fica na pasta "conf", dentro da pasta do Apache. Ao editá-los e salvá-los, reinicie o servidor do apache para que as alterações entrem em vigor (usando o ícone do Apache na área de notificação, ou o services.msc, ou ainda o comando net stop apache2, e net start apache2, num prompt de comando). Os mais usados na versão Windows do Apache são o "httpd.conf" e o "mime.types".

O "httpd.conf" é o principal, abordando diversas características do Apache. O "mime.types" define os tipos mime, tipos de arquivos e suas extensões, para que o Apache saiba como tratá-los. Por exemplo, ele deve saber que deve enviar arquivos HTML diretamente, sem processá-los, mas deve processar os arquivos PHP, antes de entregar o resultado ao browser. É importante que você faça backup destes arquivos, para restaurá-los, se você editar algo e der errado. Em ambos as linhas iniciadas com o caractere # são comentários, e são ignoradas. Para desativar um item ou colocar explicações, basta iniciar a linha com #.

Um possível problema: se você mantiver outro servidor web ativo na máquina, poderá receber um erro do Apache ao tentar iniciá-lo. Isso pode ser por causa da porta 80: se você mantém o IIS ativo, ele normalmente é iniciado antes, e ocupa a porta 80 (praticamente qualquer servidor web se configura para usar a porta 80, que é dada como padrão). Para contornar isso e manter os dois servidores ativos, você deve trocar a porta de pelo menos um deles. No arquivo "httpd.conf" do Apache, localize o item "Listen 80", e troque o valor 80 por outro número que não esteja sendo usado por nenhuma outra porta. Por exemplo, 8080, 8081, etc. Localize mais para frente "ServerName localhost:80", e troque o 80 daí também.

Se quiser, use o recurso de pesquisa do seu editor de textos para localizar as ocorrências do número 80. Salve o arquivo e reinicie o servidor. Agora, você deve acessar os sites digitando ":80" após o "domínio". Como é local, você deverá digitar: "http://localhost:8080", trocando é claro, 8080 pela porta escolhida por você. Se entrar sem definir a porta, o navegador muito provavelmente irá usar a 80, o que resultará que o site aberto será o do outro servidor (como o IIS, por exemplo). Sempre use o número da porta separado por dois pontos do nome do domínio. Assim, o certo é "http://localhost:8080/teste.htm", e não "http://localhost/teste.htm:8080". Preocupe-se com isso apenas se você manter mais de um servidor web na mesma máquina Instalando o Apache  3666372071.

por Carlos E. Morimoto