Tutorial PHP: Instalando o Apache

Blog Sobre tecnologia

Tutorial PHP: Instalando o Apache

Instalando o Apache

Servidor Web

O servidor web, é um tipo específico de software, o qual atende a requisições feitas por navegadores web padrão, geralmente através das portas 80 (http) ou 443 (https), e retorna uma resposta a esta requisição em forma de página de internet, instalando o Apache teremos então um servidor leve e flexível instalado em nosso ambiente de desenvolvimento.

Porém o apache sozinho somente trabalha com html, por isso precisamos fazer a instalação do interpretador do PHP descrito em nosso post anterior, e somente agora vamos instalar o servidor web, que ser irá receber a requisição, enviá-la ao PHP para que ele a execute e devolva o html gerado pela interpretação do código ao apache, e finalmente retorne o html para que o navegador do cliente o execute.

Antes de iniciar, gostaria de avisar que este post ficou um pouco extenso, pois tentei detalhar o máximo possível o passo a passo para a instalação, de forma que este possa ser um guia de consulta para quem desejar fazer a instalação manualmente.

Dito isso, mãos a obra…

Instalando o Apache

Primeiro Passo: Baixando o Apache

Lembrando que o Apache 2.4 para Windows precisa do Microsoft Visual C para rodar, caso não o tenhamos instalado seguindo os tutoriais anteriores, precisaremos usar os links do final da página e o instalar antes de prosseguirmos.

Precisaremos fazer o download do Apache, para isso podemos acessar o link http://www.apachelounge.com/download, ou para facilitar, seguem os links diretos para a versão 2.4.16:

Apache 32 bits | 64 bits

O PHP pode ser integrado ao Apache de duas formas distintas, através de FastCGI ou através do Módulo do apache.

Algumas características do módulo PHP para o Apache:

  • O código PHP é executado dentro do apache
  • Performance boa em sites/sistemas com processamento PHP pesado
  • Mais memória é usada por cada processo do Apache
  • Carrega o interpretador do PHP com muito conteúdo não-PHP
  • Arquivos criados por scripts PHP recebem como proprietário o web-server, trazendo inconvenientes em futuras edições via FTP.

Algumas características do FastCGI

  • Melhorias consideráveis relacionadas a segurança, visto que a execução do script é separada da execução do web server.
  • Conteúdo estático não é interpretado pelo PHP.
  • Permite gerenciar arquivos via ftp sem necessidade de alteração de permissões.

Neste post faremos a configuração via FastCGI, por não ser tão fácil quanto a configuração via módulo do apache, merece um pouco mais de atenção.

Para esta forma de instalação necessitaremos, além do Apache, do módulo FastCGI para o mesmo, que está disponível também no site apache lounge:

Módulo FastCGI: 32 bits | 64 bits

Uma vez baixados servidor web e módulo FastCGI precisaremos extrair os dados dos arquivos compactados para a pasta que criamos para receber o ambiente.

Ficaremos então com a seguinte estrutura de pastas:

Instalando o Apache: Estrutura de Diretórios

Estrutura de diretórios

Do arquivo compactado do FastCGI, utilizaremos somente o arquivo mod_fcgid.so, o extrairemos na pasta modules do apache, conforme imagem abaixo:

Instalando o Apache: mod_fcgid

mod_fcgid

Vamos criar também um diretório chamado projetos, que é onde iremos armazenar nossos scripts PHP.

Ficando com a estrutura final da imagem abaixo.

Instalando o Apache: Estrutura Final de Pastas

Estrutura Final de Pastas

Agora iremos realizar a configuração do apache e a instalação do serviço do mesmo.

Segundo passo: Configurar o path do sistema para incluir o caminho do apache

Assim como no post anterior precisaremos abrir as propriedades do sistema, este caminho pode ser feito de formas distintas dependendo da versão do Windows, novamente, para facilitar utilizemos as teclas de atalho (Windows + Pause Break).

Iremos então até Configurações Avançadas do Sistema Operacional, e depois em Avançado.

Nas lista de variáveis clicaremos duas vezes sobre a variável path, e lá iremos inserir o caminho até os binários de nosso apache, o qual ficou:

C:\dev\apache\bin

Abaixo temos a imagem que ilustra o caminho completo:

Instalando o Apache: Path

Caminho para alterar variável PATH

Arquivos de configuração do Apache

Assim como o PHP, o Apache utiliza arquivos de configuração para suas diretivas de funcionamento, o principal deles é o httpd.conf, que está localizado dentro do diretório conf, dentro da pasta do Apache, além dele, existem arquivos com configurações adicionais que podem ser incluídos no httpd.conf para complementar as configurações, ou deixar nosso arquivo de configuração melhor estruturado / organizado, geralmente estes arquivos adicionais estão dentro da pasta extra, também dentro de conf.

Diferentemente do php.ini, os arquivos de configuração do Apache utilizam como indicador de comentário o símbolo #, então, caso tenhamos que habilitar alguma linha comentada ou desativar alguma linha ativa basta fazermos uso deste símbolo.

Vamos começar acertando algumas configurações mais triviais do Apache:

Terceiro Passo: O Arquivo httpd.conf

Neste arquivo temos várias configurações, desde nomes que serão utilizados pelos logs de acesso e de erro, até comportamentos do Apache.

A primeira configuração que precisamos ajustar é o diretório onde o Apache se encontra, para ajustar esta configuração alteraremos a diretiva ServerRoot, alterando ela para o diretório onde nosso apache foi desconfigurado:

Instalando o Apache: ServerRoot

ServerRoot

A próxima etapa é ajustar o DocumentRoot, que nada mais é do que a pasta onde nossos sites ficarão armazenados, esta configuração inicial cria diretivas básicas para todos os sites, as quais podem ser sobrescritas futuramente em hosts virtuais, neste trecho iremos apontar para o diretório projetos que criamos no início do post.

Instalando o Apache: DocumentRoot

DocumentRoot

Vamos inserir os documentos index do php para ser interpretado pelo apache, procure pela diretiva DirectoryIndex e altere-a para que fique como a imagem abaixo:

Instalando o Apache: DirectoryIndex

DirectoryIndex

Para finalizarmos a configuração do httpd.conf ativaremos a inclusão de dois arquivos de configuração extra, estes arquivos serão utilizados para ativar os virtual hosts e o módulo fastcgi, procuraremos pela linha a seguir e removeremos o comentário do início da mesma:

Instalando o Apache: httpd-vhosts.conf

httpd-vhosts.conf

Também inseriremos a linha a seguir no arquivo para que o mesmo carregue as configurações do FastCGI;

Instalando o Apache: httpd-fastcgi.conf

httpd-fastcgi.conf

Permitiremos também a execução de programas CGI para toda pasta web do apache localizando a linha a seguir:

Instalando o Apache: Permitindo execução de CGI

Permitindo execução de CGI

Observe que nesta linha não haverá, a princípio, a palavra chave ExecCGI, a qual é a responsável pela permissão de execução do mesmo, então somente inseriríamos a mesma no final da linha.

Atenção: esta configuração é útil em ambiente de desenvolvimento, em servidores de produção não é recomendável permitir execução de programas CGI em pastas acessíveis publicamente, isso implicaria em uma vulnerabilidade muito grande!

Quarto Passo: Ativando o FastCGI

Após as configurações do arquivo httpd.conf, vamos criar o arquivo de configuração chamado httpd_fastcgi.conf dentro da pasta extra do diretório do apache com o conteúdo abaixo:

# Carrega o módulo
LoadModule fcgid_module modules/mod_fcgid.so

# Define algumas variáveis de ambiente
FcgidInitialEnv PATH "C:/dev/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
FcgidInitialEnv SystemRoot "C:/Windows"
FcgidInitialEnv SystemDrive "C:"
FcgidInitialEnv TEMP "C:/WINDOWS/Temp"
FcgidInitialEnv TMP "C:/WINDOWS/Temp"
FcgidInitialEnv windir "C:/WINDOWS"
#
# Timeout de leitura, tempo máximo que o script esperará até algo acontecer (um download, por exemplo)
FcgidIOTimeout 640
# Timout de conexão, tempo máximo que um script aguarda até acontecer uma conexão
FcgidConnectTimeout 160
# Quantidade máxima de requisições que um processo pode receber
FcgidMaxRequestsPerProcess 10000 
# Quantidade máxima de processos simultâneos em execuçÃo
FcgidMaxProcesses 500 
# Tamanho máximo de uma requisição
FcgidMaxRequestLen 8131072000
# Localização do php.ini:
FcgidInitialEnv PHPRC "C:/dev/php"

# Quantidade máxima de requisições que o FCGI irá tratar
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 100000


# Adiciona os manipuladores do PHP ao apache para tratar as requisições
<Files ~ "\.php$>"
  AddHandler fcgid-script .php
  AddHandler fcgid-script .phtml
  FcgidWrapper "C:/dev/php/php-cgi.exe" .php
</Files>

 

O nosso arquivo de configuração final ficará semelhante a isso:

Instalando o Apache: httpd_fastcgi.conf

httpd_fastcgi.conf

Quinto Passo: Configurando os Hosts Virtuais

Para finalizar a configuração, vamos configurar dois hosts virtuais no nosso servidor, o padrão que responderá por todas as requisições não tratadas por um host virtual, e um host virtual que responderá por si próprio.

Para estas configurações abriremos o arquivo httpd-vhosts.conf dentro da pasta extra, o primeiro virtual host é responsável pelas requisições não tratadas por nenhum virtual host, altere-o para o seguinte:

Instalando o Apache: localhost

localhost

O segundo bloco <VirtualHost> é utilizado para configurar o virtual host em si, vamos configurar um virtual host chamado teste, para isso nosso segundo bloco deve se parecer com o abaixo:

Instalando o Apache: teste.localhost

teste.localhost

Para finalizar a configuração, precisamos acessar o arquivo do sistema hosts, este arquivo é responsável por associação de endereços de IP a nome de servidores desconhecidos por nosso servidor DNS configurado, para alterá-lo é necessário que executemos o editor de texto com privilégios de administrador, procuremos pelo ícone do nosso editor de textos preferido, então clicaremos com o botão direito do mouse e depois executar como administrador.

Iremos no comando abrir e abriremos o seguinte caminho:

%windir%\System32\drivers\etc\hosts

Vamos inserir no final do arquivo a seguinte linha:

127.0.0.1       teste.localhost.com // Endereço do nosso virtual host

Sexto Passo: Testando as configurações e instalando o serviço

Neste momento nosso servidor deve estar pronto para ser testado, o primeiro teste será feito via terminal, através do comando:

httpd -t

 

O resultado deve ser algo como:

Instalando o Apache: httpd -t

httpd -t

Se o resultado for um erro ou algo muito diferente disso, reveja algum dos passos anteriores, caso tenha sido este o resultado, instalaremos o serviço.
Ainda no prompt de comandos, utilizaremos o comando:

httpd -k install

 

O comando httpd é o servidor web propriamente dito, vem de HTTP Daemon, juntamente com parâmetro -k, “dizemos” ao apache algumas tarefas que este pode executar, as mais comuns são:

httpd -k install → Instala o serviço

httpd -k uninstall → Desinstala o serviço

httpd -k start→ Inicia o serviço

httpd -k stop → Para o serviço

httpd -k restart → Reinicia o serviço

 

Novamente nosso resultado deverá se parecer ao seguinte:

Instalando o Apache: Instalando o serviço

Instalando o serviço

Se observarmos a imagem acima, notaremos que o firewall do Windows pede permissão para a execução do arquivo, é um comportamento normal, pois este programa liberará uma porta em seu computador, a princípio para acesso somente local, porém é possível liberá-la futuramente para a rede local, ou até mesmo para internet.

E o teste final será criarmos com nosso editor de textos preferido um arquivo info.php dentro de nosso diretório projetos, com o seguinte conteúdo, para que possamos testar a integração  com o PHP.

<?php phpinfo();

 

Após salvarmos este arquivo, iremos chamá-lo no nosso navegador através da url:

http://localhost/info.php

O mesmo deverá nos retornar uma tela semelhante a seguinte:

Instalando o Apache: php_info()

php_info()

E, para finalizar a instalação, criaremos um atalho em nossa área de trabalho, isso nos facilitará o acesso ao apache monitor, que é uma interface simples para inicializar ou parar o serviço do apache sem a necessidade de digitar comandos.

Para isso iremos navegar até a pasta bin do Apache (no nosso caso C:\dev\apache\bin), dentro dela procuraremos pelo arquivo ApacheMonitor.exe, clicaremos com o botão direito sobre ele, depois Enviar para e para finalizar, Área de Trabalho.

Abaixo uma imagem com o processo indicado acima, juntamente com uma imagem do nosso Apache Monitor rodando:

Instalando o Apache: Apache Monitor

Apache Monitor

Bem, com isso concluímos a instalação do web-server, que não é demorada, porém tem mais detalhes, espero que o tópico tenha ficado claro, porém, qualquer dúvida, podem colocar nos comentários.

Continuando a instalação!!!

  1. Tutorial PHP: O Ambiente de desenvolvimento
  2. Tutorial PHP: Instalando o interpretador PHP
  3. Tutorial PHP: Instalando o Apache + FastCGI
  4. Tutorial PHP: Instalando o MySQL
  5. Tutorial PHP: Escolhendo um IDE

Compilado com os links para download deste post

Microsoft Visual C

Versões anteriores

Apache

Sobre Rodrigo Teixeira Andreotti

Técnico em Informática formado pela ETE Lauro Gomes Cursando atualmente o curso de Análise e Desenvolvimento de sistemas. Atuo como programador PHP há, pelo menos, 6 anos, sendo os dois últimos em empresas e os demais como Freelancer.