Apache + PHP + MySQL no Windows

Featured image

Como montar um servidor web com Apache com suporte ao PHP e MySQL sem usar pacotes prontos como o WAMP e XAMP?

Aqui iremos tratar somente as instalações e configurações iniciais para funcionamento padrão, não entraremos nas demais configurações que cada ferramenta possui.
Antes de tudo, recomendo a leitura das documentações oficiais de cada ferramenta/solução:

Apache: http://httpd.apache.org/docs/current/platform/windows.html
PHP: https://www.php.net/manual/en/index.php
MySQL: https://dev.mysql.com/doc

Apache

O Apache não fornece binários para Windows, porém existem várias opções de terceiros disponíveis para download, como por exemplo o Apache Lounge e Apache Haus.
Baixe a versão correta para o seu sistema operacional, x86 (32 bits) ou x64 (64 bits):

32 bits: https://www.apachelounge.com/download/VS16/binaries/httpd-2.4.46-win32-VS16.zip
64 bits: https://www.apachelounge.com/download/VS16/binaries/httpd-2.4.46-win64-VS16.zip

Baixe e instale também o Visual C ++ Redistributable para Visual Studio 2015-2019, caso seu sistema não o tenha. Também escolha a versão apropriada.

32 bits: https://aka.ms/vs/16/release/VC_redist.x86.exe
64 bits: https://aka.ms/vs/16/release/VC_redist.x64.exe

Descompacte o apache baixado na raiz do seu disco (geralmente C:). Você terá algo como C:\Apache24 .
Abra o CMD (Prompt de comando) e vá até o diretório C:\Apache24\bin.
Execute:
httpd.exe

O firewall do Windows pode pedir permissão para o Apache se comunique em específicas redes. Sugiro aceitar em redes domésticas e corporativas e não permitir em redes públicas.
O Apache já está instalado. Para conferir abra um navegador e acesse http://localhost. Se aparecer a página com os dizeres It Works! significa que o Apache está funcionando corretamente.
Caso receba algum aviso sobre não poder determinar o nome do domínio totalmente qualificado, faça o seguinte:

Para executar o Apache automaticamente sempre que o sistema for iniciado, sem a necessidade de fazer login ou executar o serviço manualmente, vamos transformá-lo em um serviço do Windows.

Pronto! Agora você tem o Apache instalado como serviço do Windows o qual poderá gerenciar no Serviços (services.msc).

PHP

Baixe o PHP versão TS (Thread Safe) correspondente ao seu sistema (x86 ou x64), na página oficial de download do PHP para Windows. Sugiro a versão mais recente disponível, porém fica a critério dos seus requisitos.

Crie uma pasta nomeada como php na raiz do seu disco C:\php.
Extraia o arquivo baixado anteriormente nesta pasta.

Acesse o diretório C:\php e renomeie o php.ini-production ou php.ini-development (somente um desses) para php.ini, levando em consideração se está instalando para produção ou em ambiente de desenvolvimento/testes.

Abra esse php.ini com um editor de textos (recomendo o Notepad++) e pesquise por extension_dir = “ext”. Será necessário desmarcar essa linha como comentário, para isso remova o ; (ponto e vírgula) que inicia a sentença. Isso é pra definir o diretório padrão de extensões para C:\php\ext.

Agora vamos configurar o Apache para usar esse PHP. Primeiro vamos parar o serviço do Apache. Abra o Serviços do Windows (win + R e digite services.msc), encontre o serviço do Apache e clique em Parar.

Abra o arquivo httpd.conf, existente no diretório C:\Apache24\conf com um editor de texto e adicione o seguinte:

Para o PHP 7

LoadModule php7_module "c:\php\php7apache2_4.dll"
  <IfModule php7_module>
    AddHandler application/x-httpd-php .php
    AddType application/x-httpd-php .php .html
    PHPIniDir "c:\php"
  </IfModule>

Para o PHP 5

LoadModule php5_module C:/PHP/php5apache2_4.dll
  <IfModule php5_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
  </IfModule>

Agora execute o Apache manualmente utilizando o CMD.

Se não houver erros quer dizer que ocorreu tudo bem com sua configuração e você poderá testar o PHP.
Crie um arquivo nomeado como phpinfo.php

Se seguiu exatamente como neste tutorial, o CMD ainda estará aberto com o serviço do Apache iniciado. Encerre o serviço com Crtl + C.

Agora você pode iniciar o serviço do Apache no Serviços do Windows e pronto!

MySQL (ou MariaDB)

Primeiramente já recomendo habilitar as extensões que permitirão o acesso ao banco de dados utilizando o PHP:

Baixe o MySQL ou MariaDB na página oficial de download.

MySQL: https://dev.mysql.com/downloads/installer
MariaDB: https://mariadb.org/download

Execute o instalador .msi baixado, seguindo as instruções e melhores práticas de instalação. Não irei entrar em outras considerações de configurações do MySQL neste momento, pois é uma assunto extenso e caberá em um post a parte.

Pronto, agora você tem um servidor web Apache com PHP e MySQL configurado. Bora pro desenvolvimento!