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.
- Instalar o PHP 8.5 no Windows pelo
.zipoficial e colocá-lo noPATH. - Criar o
php.inie 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 -ve resolver os erros mais comuns.
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.
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.
| Sistema | Terminal | Como abrir |
|---|---|---|
| Windows 10 e 11 | Terminal (com o PowerShell) ou Prompt de Comando | Clique com o botão direito no menu Iniciar → Terminal; ou tecle Win, digite terminal e Enter. |
| macOS | Terminal | Cmd+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?
| Caminho | O que é | Bom para |
|---|---|---|
| Zip oficial | O PHP puro, do site oficial. Você descompacta e configura o PATH. | Entender o que está acontecendo; seguir este guia. Recomendado. |
| winget | O 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. |
| Laragon | Um pacote com PHP, Apache/nginx e MySQL, com painel gráfico. | Desenvolver sites com banco de dados sem configurar nada. |
| XAMPP | Pacote 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. |
| WSL | Um 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
- 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. - 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). - Descompacte numa pasta simples, sem espaços nem acentos no caminho:
C:\php. Dentro dela deve ficar o arquivophp.exe(e não uma subpasta com o nome do zip; se ficou, mova o conteúdo um nível acima). - Crie o
php.ini. Na pastaC:\phphá dois modelos:php.ini-developmentephp.ini-production. Faça uma cópia do development (ele mostra todos os erros, o que é bom para estudar) e renomeie a cópia paraphp.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 umphp.ini.txt. - Ligue as extensões. Abra o
php.inino 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
Oextension_dir = "ext"diz que as extensões estão na subpastaext. As outras linhas ligam as extensões usadas no guia. - Coloque o PHP no
PATH(explicado logo abaixo). - Abra um terminal novo (os que já estavam abertos não enxergam a mudança) e confira com
php -v.
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:
- Tecle Win, digite
variáveis de ambientee abra Editar as variáveis de ambiente do sistema. - Clique no botão Variáveis de Ambiente….
- Na parte de cima (Variáveis de usuário), selecione Path e clique em Editar….
- Clique em Novo, digite
C:\phpe 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\htdocse são abertos emhttp://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
| Comando | O que faz |
|---|---|
brew install php | Instala a versão mais nova (8.5). |
brew install php@8.4 | Instala uma versão específica (há também php@8.3 e php@8.2). |
brew upgrade php | Atualiza para a versão de correção mais nova. |
brew info php | Mostra a versão disponível e onde ficam os arquivos. |
brew services start php | Liga o PHP-FPM em segundo plano (só para usar com nginx ou Apache; para o guia, não precisa). |
brew uninstall php | Remove. |
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
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.
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.
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.
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 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
| Tarefa | Windows | macOS |
|---|---|---|
| Instalar | Zip oficial em C:\php + PATH, ou winget install --id PHP.PHP.8.5 -e | brew install php |
| Requisito | Visual C++ Redistributable 2015-2022 (x64) | Homebrew |
| Qual montagem | VS17 x64 Non Thread Safe | a do Homebrew |
| php.ini | Copiar 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ão | Tirar o ; de extension=… no php.ini | As comuns já vêm ligadas |
| Conferir | php -v · php -m · php --ini | |
| Qual PHP está sendo usado | where.exe php | which php |
| Atualizar | Baixar o zip novo e substituir (mantendo o seu php.ini), ou winget upgrade | brew 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:
Resumo
- Windows: Visual C++ 2015-2022 → zip VS17 x64 Non Thread Safe em
C:\php→php.ini-developmentcopiado paraphp.ini→ extensões sem;→C:\phpnoPATH→ 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 --iniephp -mfuncionam igual nos três sistemas.which php/where.exe phpmostram qual PHP está sendo usado.PHP_OS_FAMILY,DIRECTORY_SEPARATORePHP_EOLajudam o mesmo código a rodar em qualquer sistema.- Próximo passo: O Servidor Embutido.