Para executar um arquivo PHP, abra um terminal na pasta dele e digite php index.php. O PHP executa o arquivo e imprime a saída no terminal. Para ver uma página PHP no navegador, inicie o servidor embutido com php -S localhost:8000 e abra http://localhost:8000.
php index.php
Um primeiro index.php pode ter uma linha só. Clique em Run: isto é exatamente o que php index.php imprime.
O código PHP vem depois da tag <?php. Tudo o que estiver antes dessa tag é impresso como texto puro, e é assim que o PHP mistura código com HTML.
Executar um arquivo PHP pela linha de comando
A CLI do PHP (interface de linha de comando) executa um script uma vez e termina. Você precisa ter o PHP instalado; se php -v mostrar um erro, veja primeiro instalar PHP.
cd ~/projects/hello
php index.php # run the file
php -l index.php # only check the syntax ("lint")
php index.php > out.txt # save the output to a file
php -l é útil antes de subir um arquivo: ele informa um erro de sintaxe com o número da linha, ou No syntax errors detected in index.php.
Passar argumentos com $argv
As palavras depois do nome do arquivo chegam em $argv. $argv[0] é sempre o nome do próprio script e $argc é a contagem, incluindo esse nome. Aqui o bloco roda sem argumentos extras, então só o nome está lá:
Na sua máquina, php index.php Ada 3 imprime a saudação três vezes. Os fallbacks com ?? mantêm o script funcionando quando falta um argumento. Para opções nomeadas como --name=Ada, use getopt:
<?php
// php index.php --name=Ada --verbose
$opts = getopt('', ['name:', 'verbose']);
echo "Hello, " . ($opts['name'] ?? 'world') . "\n";
if (isset($opts['verbose'])) {
echo "Verbose mode\n";
}
Executar PHP no navegador com php -S
O PHP tem um servidor web de desenvolvimento embutido. Inicie-o na pasta dos seus arquivos:
php -S localhost:8000
[Sat Oct 3 07:21:34 2026] PHP 8.3.19 Development Server (http://localhost:8000) started
Agora http://localhost:8000/ executa index.php, e http://localhost:8000/about.php executa about.php. Cada carregamento de página executa o arquivo de novo, com a query string em $_GET. O bloco abaixo se comporta do mesmo jeito: rode-o, clique num link, e o script roda de novo com $_GET['page'] definido.
Opções úteis:
php -S localhost:8000 -t public # serve the public/ folder as the web root
php -S 0.0.0.0:8000 # reachable from other devices on your network
php -S localhost:8000 router.php # send every request through router.php
O servidor embutido atende uma requisição por vez e serve só para desenvolvimento. Em produção, o PHP roda atrás do Nginx ou do Apache, normalmente via PHP-FPM.
Verificar como o script foi iniciado
PHP_SAPI diz qual "server API" executa o script: cli num terminal, cli-server com php -S, e fpm-fcgi ou apache2handler atrás de um servidor web de verdade. Scripts que só devem rodar pelo terminal verificam isso primeiro:
Executar uma única linha com php -r
Para um teste rápido você não precisa de arquivo. php -r executa o código que você passa, sem a tag <?php:
php -r 'echo date("Y-m-d"), PHP_EOL;'
php -r 'var_dump(0.1 + 0.2 == 0.3);'
No cmd do Windows, coloque o código entre aspas duplas e use aspas simples dentro dele. Para várias linhas, php -a abre um shell interativo em que cada instrução roda quando você aperta Enter.
Tornar um script executável no macOS e no Linux
Adicione uma linha shebang antes de <?php e marque o arquivo como executável. A linha shebang não é impressa:
#!/usr/bin/env php
<?php
echo "Backup started\n";
chmod +x backup.php
./backup.php
É assim que scripts PHP rodam pelo cron: 0 3 * * * /usr/bin/php /home/me/backup.php.
Códigos de saída para scripts
Um script de linha de comando informa sucesso ou falha pelo código de saída, que shell scripts e o cron podem verificar. exit(0) significa sucesso, qualquer outro número significa falha:
<?php
$file = $argv[1] ?? '';
if (!is_file($file)) {
fwrite(STDERR, "File not found: $file\n");
exit(1);
}
echo "Processing $file\n";
exit(0);
Erro comum: executar o arquivo ou a pasta errada
Could not open input file: index.php significa que o PHP não encontra o arquivo a partir de onde o terminal está. Confira a pasta atual com pwd (ou cd no Windows) e entre no projeto com cd ou passe o caminho completo: php ~/projects/hello/index.php. Com php -S, um 404 numa página que você sabe que existe normalmente significa que o servidor foi iniciado em outra pasta; pare-o com Ctrl+C e inicie de novo no lugar certo, ou passe a pasta com -t. Quando o arquivo roda mas mostra uma página em branco, ative a exibição de erros para ver o que deu errado.
Perguntas frequentes
Como executo um arquivo PHP no navegador?
Inicie o servidor embutido na pasta que contém o arquivo com php -S localhost:8000 e abra http://localhost:8000/yourfile.php. Abrir o arquivo direto do disco não funciona, porque nada executa o código PHP.
Como passo argumentos para um script PHP?
Escreva-os depois do nome do arquivo: php report.php 2026 sales. Dentro do script, $argv é o array ['report.php', '2026', 'sales'] e $argc vale 3. O primeiro elemento é sempre o nome do script.
Como executo uma linha de PHP sem arquivo?
Use php -r e deixe de fora a tag <?php: php -r 'echo strtoupper("hi"), PHP_EOL;'. Para várias linhas, php -a abre um shell interativo.
Como sei se o PHP está rodando pela linha de comando ou por um servidor web?
Verifique PHP_SAPI (ou php_sapi_name()). Ele vale "cli" num terminal, "cli-server" com php -S, e algo como "fpm-fcgi" ou "apache2handler" atrás de um servidor web.