PHP Instalar no Windows e macOS

No Windows e no macOS, o PHP não vem instalado, e não há um "instalador de duas cliques" oficial: no Windows você baixa um arquivo .zip e diz ao sistema onde ele está; no macOS, o caminho mais simples é o Homebrew. Nesta aula você vai ver os passos oficiais, as alternativas prontas (XAMPP, Laragon, WSL) e como conferir se deu certo.

Você vai aprender
  • Instalar o PHP 8.5 no Windows pelo .zip oficial e colocá-lo no PATH.
  • Criar o php.ini e ligar extensões no Windows.
  • Quando usar o winget, o XAMPP, o Laragon ou o WSL.
  • Instalar no macOS com o Homebrew (brew install php).
  • Conferir a instalação com php -v e resolver os erros mais comuns.
Esta aula é ilustrativa

O laboratório do guia é um Linux, então os passos e as telas do Windows e do macOS não puderam ser executados nele. Eles seguem as instruções oficiais (php.net e formulae.brew.sh, consultados em 16/10/2026); nomes de menus e números de versão podem variar um pouco no seu computador. Só as saídas da caixa Experimente e as do laboratório (marcadas) são reais.

Não precisa instalar para começar

As caixas Experimente rodam o PHP 8.5 no navegador, e o Nível 1 inteiro pode ser feito sem instalar nada. Instale quando quiser trabalhar com arquivos no seu computador.


Antes de tudo: o terminal

O PHP é um programa de linha de comando: você o usa digitando comandos numa janela de texto, o terminal. Não existe "ícone do PHP" para clicar.

SistemaTerminalComo abrir
Windows 10 e 11Terminal (com o PowerShell) ou Prompt de ComandoClique com o botão direito no menu Iniciar → Terminal; ou tecle Win, digite terminal e Enter.
macOSTerminalCmd+Espaço, digite terminal e Enter.

Nas aulas do guia, os comandos aparecem com o prompt ana@notebook:~$ da máquina fictícia (um Linux). No Windows o prompt é algo como PS C:\Users\Ana> e no macOS, ana@MacBook ~ %. Os comandos php são os mesmos nos três.


Windows

Qual caminho escolher?

CaminhoO que éBom para
Zip oficialO PHP puro, do site oficial. Você descompacta e configura o PATH.Entender o que está acontecendo; seguir este guia. Recomendado.
wingetO gerenciador de pacotes do próprio Windows. Baixa o mesmo zip oficial e configura o PATH sozinho.Quem já usa o winget e quer menos passos.
LaragonUm pacote com PHP, Apache/nginx e MySQL, com painel gráfico.Desenvolver sites com banco de dados sem configurar nada.
XAMPPPacote clássico com Apache, MariaDB e PHP.Muito citado em cursos antigos. Confira a versão do PHP que vem nele antes de baixar: o XAMPP costuma demorar a acompanhar as versões novas.
WSLUm Ubuntu de verdade rodando dentro do Windows.Ter o mesmo ambiente das aulas (e dos servidores). Depois de instalado, siga Instalar no Linux.

Caminho 1: o zip oficial, passo a passo

  1. Instale o Visual C++ Redistributable. O PHP para Windows é montado com o Visual Studio 2022 e precisa das bibliotecas dele. Baixe o "Visual C++ Redistributable for Visual Studio 2015-2022" para x64 (o link está na própria página de downloads do PHP, aka.ms/vs/17/release/vc_redist.x64.exe) e instale. Muitos computadores já têm; instalar de novo não faz mal.
  2. Baixe o PHP. Em php.net/downloads.php?os=windows, procure a seção do PHP 8.5 e baixe o Zip da linha VS17 x64 Non Thread Safe. Em outubro de 2026, o arquivo é o php-8.5.11-nts-Win32-vs17-x64.zip (cerca de 34 MB).
  3. Descompacte numa pasta simples, sem espaços nem acentos no caminho: C:\php. Dentro dela deve ficar o arquivo php.exe (e não uma subpasta com o nome do zip; se ficou, mova o conteúdo um nível acima).
  4. Crie o php.ini. Na pasta C:\php há dois modelos: php.ini-development e php.ini-production. Faça uma cópia do development (ele mostra todos os erros, o que é bom para estudar) e renomeie a cópia para php.ini. Se o Windows esconder as extensões dos arquivos, ative "Extensões de nomes de arquivos" no menu Exibir do Explorador, senão você pode acabar com um php.ini.txt.
  5. Ligue as extensões. Abra o php.ini no Bloco de Notas (ou no seu editor) e procure as linhas abaixo. Apague o ; do começo de cada uma (o ; transforma a linha em comentário, ou seja, desligada):
    extension_dir = "ext"
    extension=curl
    extension=mbstring
    extension=openssl
    extension=pdo_sqlite
    extension=sqlite3
    O extension_dir = "ext" diz que as extensões estão na subpasta ext. As outras linhas ligam as extensões usadas no guia.
  6. Coloque o PHP no PATH (explicado logo abaixo).
  7. Abra um terminal novo (os que já estavam abertos não enxergam a mudança) e confira com php -v.
Thread Safe ou Non Thread Safe?

A página oficial explica: as versões NTS (Non Thread Safe) são para o uso na linha de comando e com servidores que chamam o PHP por FastCGI; as TS (Thread Safe) são para quem vai carregar o PHP dentro do Apache como módulo. Para o guia, que usa o terminal e o php -S, escolha NTS. E escolha x64 (64 bits), que serve para praticamente todo Windows atual.

O que é o PATH e como configurar

Quando você digita php no terminal, o Windows não procura no disco inteiro: ele olha só numa lista de pastas, guardada numa variável chamada PATH ("caminho"). Se a pasta C:\php não estiver na lista, o Windows responde que não conhece o comando. Para acrescentar:

  1. Tecle Win, digite variáveis de ambiente e abra Editar as variáveis de ambiente do sistema.
  2. Clique no botão Variáveis de Ambiente….
  3. Na parte de cima (Variáveis de usuário), selecione Path e clique em Editar….
  4. Clique em Novo, digite C:\php e confirme com OK em todas as janelas.

Agora, num terminal novo:

PS C:\Users\Ana> php -v
PHP 8.5.11 (cli) (built: …) (NTS Visual C++ 2022 x64)
Copyright (c) The PHP Group
Zend Engine v4.5.11, Copyright (c) Zend Technologies
    with Zend OPcache v8.5.11, Copyright (c), by Zend Technologies

A primeira linha confirma a versão e que é a montagem NTS de 64 bits. Para ver qual php.ini foi carregado e quais extensões estão ligadas, use os mesmos comandos do Linux: php --ini (deve mostrar C:\php\php.ini em Loaded Configuration File) e php -m (deve listar mbstring, pdo_sqlite…).

Caminho 2: winget

O Windows 10 e 11 vêm com o winget, um gerenciador de pacotes de linha de comando. Ele baixa o zip oficial, descompacta e acerta o PATH sozinho. Primeiro, procure os pacotes do PHP; depois instale o da versão desejada:

winget search PHP.PHP
winget install --id PHP.PHP.8.5 -e

O --id diz o identificador exato e o -e (de exact) evita que o winget escolha outro pacote parecido. Os identificadores seguem o padrão PHP.PHP.8.5, PHP.PHP.8.4…; confira com o winget search o que aparece no seu computador. Depois, abra um terminal novo e confira com php -v. Você ainda vai precisar criar o php.ini e ligar as extensões (passos 4 e 5 acima), na pasta onde o winget instalou o PHP: o comando php --ini mostra qual é.

Caminho 3: Laragon ou XAMPP

São "pacotes completos": um instalador gráfico que coloca o PHP, um servidor web (Apache ou nginx) e um banco de dados (MySQL ou MariaDB) de uma vez, com um painel para ligar e desligar tudo. São práticos para quem quer criar sites com banco de dados logo, mas escondem as peças, e às vezes trazem uma versão mais antiga do PHP.

  • Laragon (laragon.org): leve e atualizado com frequência; permite trocar a versão do PHP pelo menu. Os sites ficam na pasta C:\laragon\www.
  • XAMPP (apachefriends.org): o mais conhecido. Os sites ficam em C:\xampp\htdocs e são abertos em http://localhost/. Antes de baixar, veja na página qual versão do PHP vem em cada instalador.

Com qualquer um deles, o comando php do terminal pode não funcionar até você acrescentar a pasta do PHP deles ao PATH (por exemplo, C:\xampp\php). Use php -v para confirmar qual PHP o terminal está usando.

Caminho 4: WSL, um Linux dentro do Windows

O WSL (Windows Subsystem for Linux) roda um Ubuntu de verdade dentro do Windows. É o caminho que deixa o seu ambiente mais parecido com o das aulas e com os servidores da internet. Num PowerShell aberto como administrador:

wsl --install

O Windows instala o WSL e o Ubuntu, pede para reiniciar e, na primeira abertura do Ubuntu, pede um nome de usuário e uma senha para o Linux. A partir daí, abra o Ubuntu pelo menu Iniciar e siga a aula Instalar no Linux (sudo apt install php-cli). Os seus arquivos do Windows ficam acessíveis em /mnt/c/.


macOS

O macOS trazia um PHP antigo de fábrica até a versão 11 (Big Sur); a Apple o removeu a partir do macOS 12 (Monterey). Hoje, o jeito mais usado de instalar é o Homebrew, o gerenciador de pacotes mais popular do Mac (o "apt do macOS").

1. Instale o Homebrew (se ainda não tiver)

Confira se ele já existe com brew --version. Se o terminal disser command not found: brew, instale com o comando publicado em brew.sh (copie de lá, para ter sempre a versão atual):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

O instalador pede a senha do Mac, pode pedir para instalar as "Ferramentas de Linha de Comando do Xcode" (aceite) e, no fim, mostra dois ou três comandos em Next steps para colocar o brew no PATH. Rode esses comandos exatamente como ele mostrar.

2. Instale o PHP

brew install php

O Homebrew baixa o PHP mais recente (em outubro de 2026, o 8.5.11) e as bibliotecas de que ele precisa. Ele já vem com as extensões mais usadas ligadas, inclusive mbstring, pdo_sqlite e curl. Confira:

ana@MacBook ~ % php -v
PHP 8.5.11 (cli) (built: …) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.5.11, Copyright (c) Zend Technologies
    with Zend OPcache v8.5.11, Copyright (c), by Zend Technologies

O php.ini fica em $HOMEBREW_PREFIX/etc/php/8.5/: em Macs com processador Apple (M1, M2…), /opt/homebrew/etc/php/8.5/php.ini; em Macs com Intel, /usr/local/etc/php/8.5/php.ini. Como no Linux, php --ini mostra o caminho exato.

Outras versões e atualizações

ComandoO que faz
brew install phpInstala a versão mais nova (8.5).
brew install php@8.4Instala uma versão específica (há também php@8.3 e php@8.2).
brew upgrade phpAtualiza para a versão de correção mais nova.
brew info phpMostra a versão disponível e onde ficam os arquivos.
brew services start phpLiga o PHP-FPM em segundo plano (só para usar com nginx ou Apache; para o guia, não precisa).
brew uninstall phpRemove.
Outras opções no Mac

O Laravel Herd (para macOS e Windows) e o MAMP são pacotes gráficos parecidos com o Laragon e o XAMPP. Funcionam, mas, como no Windows, escondem as peças. Para seguir o guia, o Homebrew é o mais direto.


Testando: o mesmo programa nos três sistemas

Com o PHP instalado, crie uma pasta site, salve nela um arquivo so.php com o conteúdo abaixo (num editor de código; veja Editores e IDEs) e rode com php so.php no terminal, dentro dessa pasta:

<?php
echo "Sistema: " . PHP_OS_FAMILY . "\n";
echo "Separador de pastas: " . DIRECTORY_SEPARATOR . "\n";
echo "Pasta deste arquivo: " . __DIR__ . "\n";

No laboratório do guia (Linux), a saída real é:

$ php so.php
Sistema: Linux
Separador de pastas: /
Pasta deste arquivo: /home/ana/t

No Windows, você veria Sistema: Windows, o separador \ e algo como C:\Users\Ana\site; no Mac, Sistema: Darwin (o nome do núcleo do macOS), / e /Users/ana/site. As constantes deixam o mesmo programa funcionar nos três sistemas:

PHP_OS_FAMILY
A família do sistema: Windows, Darwin (macOS), Linux, BSD…
DIRECTORY_SEPARATOR
O caractere que separa as pastas num caminho: \ no Windows, / nos outros. (Na prática, o PHP aceita / também no Windows.)
__DIR__
A pasta onde está o arquivo que está rodando. Começa e termina com dois sublinhados; é uma "constante mágica" (aula Constantes).

Rode o mesmo programa no PHP do navegador. Que sistema ele diz que é?

<?php
echo "Sistema: " . PHP_OS_FAMILY . "\n";
echo "Separador de pastas: " . DIRECTORY_SEPARATOR . "\n";
echo "Pasta deste arquivo: " . __DIR__ . "\n";
echo "Versão: " . PHP_VERSION . "\n";

O PHP do navegador responde Sistema: Unknown ("desconhecido"): ele roda num "computador de mentirinha" dentro da página, que não é Windows, nem macOS, nem Linux, com o seu próprio sistema de arquivos na memória. Por isso a pasta (/home/ana) não é nenhuma das suas. A aula O Editor do Guia explica.


Quando dá errado

Windows: "php não é reconhecido como nome de cmdlet…"
php : O termo 'php' não é reconhecido como nome de cmdlet, função, arquivo de script ou programa operável.

(No Prompt de Comando, a frase é 'php' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes.)

O que aconteceu: a pasta do PHP não está no PATH, ou o terminal foi aberto antes de você mudar o PATH.

Como resolver: feche e abra o terminal. Se continuar, confira se a pasta digitada no PATH é exatamente a que contém o php.exe (C:\php, e não C:\php\php-8.5.11-nts-Win32-vs17-x64). Para testar sem o PATH, rode com o caminho completo: C:\php\php.exe -v.

Windows: "VCRUNTIME140.dll não foi encontrado"

O que aconteceu: faltam as bibliotecas do Visual C++ que o PHP usa. O Windows mostra uma janela de erro em vez de rodar o php.exe.

Como resolver: instale o "Visual C++ Redistributable for Visual Studio 2015-2022" (x64), o passo 1 do caminho do zip.

"Call to undefined function mb_strtoupper()" ou "could not find driver"

O que aconteceu: a extensão não está ligada. No Windows, quase sempre é o php.ini: ele não existe (só os modelos php.ini-development e php.ini-production), ficou com o nome php.ini.txt, ou as linhas extension=… continuam com o ; na frente.

Como resolver: rode php --ini. Se Loaded Configuration File disser (none), o PHP não achou o seu php.ini: confira o nome e a pasta. Depois, php -m deve listar a extensão. Veja as mensagens completas em Instalar no Linux.

macOS: "command not found: brew" logo depois de instalar o Homebrew

O que aconteceu: faltou rodar os comandos de Next steps que o instalador mostrou, que colocam o brew no PATH.

Como resolver: rode os comandos que o instalador mostrou (em Macs com processador Apple, eles acrescentam /opt/homebrew/bin ao PATH no arquivo ~/.zprofile) e abra um terminal novo.

O terminal mostra uma versão do PHP diferente da que instalei

O que aconteceu: há mais de um PHP no computador (por exemplo, o do XAMPP e o do zip oficial, ou dois do Homebrew), e o terminal achou primeiro o outro.

Como resolver: descubra qual está sendo usado: where.exe php no Windows, which php no macOS e no Linux. Deixe só a pasta desejada no PATH (ou coloque-a acima das outras).


Referência

TarefaWindowsmacOS
InstalarZip oficial em C:\php + PATH, ou winget install --id PHP.PHP.8.5 -ebrew install php
RequisitoVisual C++ Redistributable 2015-2022 (x64)Homebrew
Qual montagemVS17 x64 Non Thread Safea do Homebrew
php.iniCopiar php.ini-development para php.ini/opt/homebrew/etc/php/8.5/php.ini (Apple) ou /usr/local/etc/php/8.5/php.ini (Intel)
Ligar extensãoTirar o ; de extension=… no php.iniAs comuns já vêm ligadas
Conferirphp -v · php -m · php --ini
Qual PHP está sendo usadowhere.exe phpwhich php
AtualizarBaixar o zip novo e substituir (mantendo o seu php.ini), ou winget upgradebrew upgrade php

Para fechar, uma missão sobre algo que muda entre os sistemas: a quebra de linha. O Linux e o macOS usam um caractere (\n); o Windows, tradicionalmente, dois (\r\n). A constante PHP_EOL (End Of Line, "fim de linha") vale a quebra certa para o sistema onde o PHP está rodando.

Missão: o programa escreve linha 1 e linha 2 grudadas. Coloque . PHP_EOL depois de cada texto, para cada um ficar na sua linha.

<?php
echo "linha 1";
echo "linha 2";
<?php
echo "linha 1" . PHP_EOL;
echo "linha 2" . PHP_EOL;

A aula echo e print compara "\n", PHP_EOL e <br>.


Exercícios

1. No Windows, qual zip do PHP 8.5 baixar para seguir o guia?

2. Você acrescentou C:\php ao PATH, mas o terminal ainda diz que não conhece o php. Qual a primeira coisa a fazer?

3. No php.ini, o que o ; no começo de ;extension=mbstring faz?

4. Homebrew

Complete o comando que instala o PHP no macOS com o Homebrew:

brew

Resumo

  • Windows: Visual C++ 2015-2022 → zip VS17 x64 Non Thread Safe em C:\php → php.ini-development copiado para php.ini → extensões sem ; → C:\php no PATH → terminal novo → php -v.
  • Atalhos no Windows: winget install --id PHP.PHP.8.5 -e; pacotes completos (Laragon, XAMPP); ou o WSL com Ubuntu.
  • macOS: Homebrew → brew install php (8.5.11 em out/2026) → php -v.
  • php --ini e php -m funcionam igual nos três sistemas. which php / where.exe php mostram qual PHP está sendo usado.
  • PHP_OS_FAMILY, DIRECTORY_SEPARATOR e PHP_EOL ajudam o mesmo código a rodar em qualquer sistema.
  • Próximo passo: O Servidor Embutido.