O Laravel é o framework PHP mais usado no mundo, e não é por acaso: ele entrega rotas, banco de dados, autenticação, filas, e-mails e testes com uma sintaxe limpa e uma documentação excelente. Neste tutorial você vai sair do zero absoluto até um Laravel hello world funcionando — primeiro com uma rota simples, depois do jeito profissional, com controller e view Blade.
Não vamos pular etapas: começamos conferindo o PHP e o Composer, criamos o projeto, entendemos a estrutura de pastas e só então escrevemos código. Todos os passos têm prints para você comparar com o que aparece na sua tela.
O que você vai aprender
- Quais são os pré-requisitos para rodar o Laravel
- Como criar um projeto com Composer ou com o instalador oficial
- Para que serve cada pasta de um projeto Laravel
- Como subir o servidor de desenvolvimento com o Artisan
- Como criar uma rota, um controller e uma view Blade
- Como passar parâmetros da URL para a página
Se você ainda está chegando no mundo PHP, vale ler antes nossos artigos O que é PHP? e O que são os frameworks PHP?.
Pré-requisitos: PHP e Composer
A versão atual do Laravel (13, lançada em março de 2026) exige PHP 8.3 ou superior. Além do PHP, você precisa do Composer, o gerenciador de dependências do ecossistema PHP — é ele que baixa o Laravel e todas as bibliotecas que o framework usa.
Formas de instalar:
- Windows e macOS: a maneira mais simples é o Laravel Herd, que instala PHP, Composer e o instalador do Laravel de uma vez.
- Linux (Ubuntu/Debian): instale o PHP e as extensões pelo gerenciador de pacotes e o Composer pelo instalador oficial em getcomposer.org.
- Qualquer sistema: o script oficial
php.new(indicado na documentação do Laravel) instala PHP, Composer e o instalador em um comando.
No Ubuntu, por exemplo:
sudo apt update
sudo apt install php php-cli php-mbstring php-xml php-curl php-sqlite3 php-zip unzip
Com tudo instalado, confira as versões e as extensões principais:

As extensões mbstring, openssl, curl e pdo_sqlite precisam aparecer na lista. Se alguma faltar, instale o pacote correspondente (por exemplo php-sqlite3).
Criando o projeto Laravel
Existem dois caminhos, e ambos geram o mesmo resultado.
Com o Composer (funciona em qualquer máquina que tenha Composer):
composer create-project laravel/laravel hello-laravel
Com o instalador do Laravel, que oferece um assistente interativo para escolher starter kit, banco e framework de testes:
composer global require laravel/installer
laravel new hello-laravel
Neste tutorial usamos o Composer, que é o caminho mais universal:

Repare nas etapas automáticas ao final: o Composer copia o .env.example para .env, gera a APP_KEY (usada para criptografar sessões e cookies) e roda as migrations iniciais. Desde o Laravel 11, o banco padrão é o SQLite, gravado no arquivo database/database.sqlite — por isso você não precisa instalar MySQL para começar.
Entendendo a estrutura de pastas
Abra a pasta hello-laravel no seu editor. À primeira vista são muitas pastas, mas você só precisa conhecer algumas agora:
| Pasta / arquivo | Para que serve |
|---|---|
app/ |
O código da sua aplicação: controllers, models, regras de negócio |
app/Http/Controllers/ |
Controllers, que recebem a requisição e devolvem a resposta |
routes/web.php |
As rotas das páginas web (URL → código que responde) |
resources/views/ |
As views Blade, ou seja, o HTML das páginas |
database/ |
Migrations, seeders e o arquivo SQLite |
public/ |
A única pasta exposta para a internet; contém o index.php |
.env |
Configurações do ambiente: banco, e-mail, chaves de API |
vendor/ |
Dependências baixadas pelo Composer (nunca edite nada aqui) |
Um detalhe importante: o .env guarda informações sensíveis e não deve ir para o Git. O Laravel já traz um .gitignore que o ignora. Explicamos o motivo no tutorial Variáveis de ambiente e arquivo .env.
Subindo o servidor com php artisan serve
O Artisan é a linha de comando do Laravel. Com ele você cria arquivos, roda migrations, limpa cache e, claro, sobe um servidor de desenvolvimento:
cd hello-laravel
php artisan serve

Acesse http://127.0.0.1:8000 e você verá a página de boas-vindas do Laravel. O terminal fica “preso” mostrando cada requisição recebida; para parar o servidor, use Ctrl+C. Se a porta 8000 estiver ocupada, escolha outra com php artisan serve --port=8080.
Laravel hello world com uma rota simples
Agora sim, o primeiro código. Abra routes/web.php. Ele já contém a rota da página inicial. Adicione logo abaixo:
Route::get('/hello', function () {
return 'Hello World!';
});

O que está acontecendo:
Route::getregistra uma rota que responde a requisições GET (o que o navegador faz quando você digita uma URL).'/hello'é o caminho da URL.- A função anônima (closure) é executada quando alguém acessa esse caminho, e o que ela retorna vira a resposta.
Salve o arquivo e acesse http://127.0.0.1:8000/hello. Não é preciso reiniciar o servidor:

Parabéns, seu Laravel hello world está funcionando. Uma curiosidade: se a closure retornar um array, o Laravel converte automaticamente para JSON. Experimente return ['mensagem' => 'Hello World!']; — é o primeiro passo para construir APIs.
Fazendo do jeito profissional: controller
Closures em rotas são ótimas para testes rápidos, mas em projetos reais a lógica fica em controllers, que organizam o código e permitem usar cache de rotas em produção. Crie um com o Artisan:
php artisan make:controller HelloController
Edite o arquivo gerado em app/Http/Controllers/HelloController.php:

O método index responde à URL /hello, e o método show recebe um nome pela URL. Em ambos, a função view('hello', [...]) renderiza a view hello passando a variável $nome.
Agora troque as rotas em routes/web.php para apontar para o controller:
use App\Http\Controllers\HelloController;
Route::get('/hello', [HelloController::class, 'index']);
Route::get('/hello/{nome}', [HelloController::class, 'show']);
O trecho {nome} é um parâmetro de rota: tudo o que estiver nessa posição da URL é entregue ao método como argumento. Confira as rotas registradas com php artisan route:list:

Criando a view com Blade
O Blade é o motor de templates do Laravel. Ele permite misturar HTML com variáveis e estruturas de controle de forma segura. Crie o arquivo resources/views/hello.blade.php:

Os pontos-chave:
{{ $nome }}imprime a variável já escapada contra XSS. Se alguém passar HTML ou JavaScript pela URL, ele aparece como texto, não é executado.- Dentro das chaves você pode usar funções PHP, como
ucfirst()e o helpernow()do Laravel. - O Blade também oferece diretivas como
@if,@foreache@includepara lógica de apresentação.
Acesse http://127.0.0.1:8000/hello/jonathan:

Agora você tem o fluxo completo do Laravel: rota → controller → view. Esse é o mesmo caminho percorrido por qualquer página de um sistema grande feito com o framework.
Erros comuns na instalação do Laravel
“Your requirements could not be resolved” — a versão do seu PHP é mais antiga do que a exigida. Atualize para PHP 8.3+ ou crie um projeto de versão anterior (composer create-project laravel/laravel:^11.0 nome).
“could not find driver” ao rodar migrations — falta a extensão do banco. Para SQLite, instale php-sqlite3; para MySQL, php-mysql.
Tela “500 | Server Error” ou “No application encryption key has been specified” — o .env não existe ou está sem a APP_KEY. Rode cp .env.example .env e depois php artisan key:generate.
A rota nova retorna 404 — confira se salvou o arquivo e se não há cache de rotas ativo (php artisan route:clear).
Mudanças no .env não surtem efeito — limpe o cache de configuração com php artisan config:clear.
Próximos passos no Laravel
Com o hello world pronto, alguns caminhos naturais:
- Banco de dados: crie um model com migration usando
php artisan make:model Tarefa -me explore o Eloquent. - API: rode
php artisan install:apipara habilitar o arquivoroutes/api.phpe o Sanctum. - Consumir APIs externas: o client HTTP do Laravel (
Http::get()) facilita integrar serviços como consulta de CEP, CNPJ e envio de SMS. No tutorial Como enviar SMS com PHP usando a SDK da APIBrasil mostramos a SDK oficial, que funciona dentro de qualquer projeto Laravel. - Starter kits: para autenticação pronta, conheça os starter kits oficiais — falamos deles em Starter Kit Laravel: comece a desenvolver mais rápido.
- Docker: para rodar o projeto com MySQL em containers, veja Docker Compose com PHP e MySQL.
Perguntas frequentes sobre Laravel
Qual versão do PHP o Laravel precisa?
O Laravel 13 exige PHP 8.3 ou superior. Versões anteriores do framework aceitam PHP mais antigo, mas o ideal é sempre usar uma versão do PHP que ainda receba atualizações de segurança.
Preciso instalar MySQL para começar com Laravel?
Não. Desde o Laravel 11 o banco padrão é o SQLite, que é apenas um arquivo dentro do projeto. Você pode trocar para MySQL ou PostgreSQL depois, alterando as variáveis DB_* no .env.
Qual a diferença entre composer create-project e laravel new?
O resultado é o mesmo projeto. O laravel new é um assistente interativo que permite escolher starter kit, banco de dados e framework de testes durante a criação; o composer create-project cria o projeto padrão direto.
O php artisan serve pode ser usado em produção?
Não. Ele é um servidor de desenvolvimento. Em produção, use Nginx ou Apache com PHP-FPM, ou soluções como Laravel Forge, Laravel Cloud ou containers Docker.
Laravel é bom para iniciantes?
Sim. A documentação é uma das melhores do ecossistema, existe uma comunidade enorme em português e o framework incentiva boas práticas desde o início. Só vale ter uma base de PHP e orientação a objetos antes de mergulhar.
Conclusão
Você instalou o PHP e o Composer, criou um projeto Laravel, entendeu a estrutura de pastas, subiu o servidor com o Artisan e construiu um Laravel hello world em duas versões: com uma rota simples e com controller e view Blade. Esse fluxo de rota, controller e view é a base de tudo o que você vai construir com o framework.
Continue a série de tutoriais com Minha primeira API em Node.js com Express para comparar como outra stack resolve o mesmo problema, ou vá direto para a prática com envio de SMS em PHP usando a APIBrasil.
![]()









