Tutorial Laravel 13 #1: instalar e configurar o projeto
verificado a 2 Setembro 2026 · 6 min
Instala o Laravel 13 com composer create-project laravel/laravel blog e depois lança o php artisan serve. O comando cria o ficheiro .env, gera a chave de aplicação e executa as migrações sozinho. O Laravel 13 exige PHP 8.3 no mínimo e usa SQLite por omissão.
Este primeiro capítulo instala o Laravel 13, explica para que serve cada pasta do projeto e arranca o servidor de desenvolvimento. No fim, a página de boas-vindas do Laravel aparece no teu navegador.
Do que precisas
O Laravel 13 exige PHP 8.3 no mínimo e aceita PHP 8.3, 8.4 e 8.5. Verifica a tua versão:
php -vSó conta a primeira linha. Tem de anunciar PHP 8.3, 8.4 ou 8.5:
PHP 8.4.25 (cli) (built: Aug 27 2026 20:19:39) (NTS)Se o comando não existir ou devolver uma versão mais antiga, instala o PHP. No Windows, o WampServer ou o Laragon, no macOS, o Homebrew com brew install php, no Linux, o pacote php-cli da tua distribuição.
Precisas também do Composer, o gestor de dependências do PHP. É ele que descarrega o Laravel e tudo aquilo de que depende.
composer --versionExtensões PHP
O Laravel precisa de algumas extensões PHP. A maioria das instalações já as traz. Duas merecem uma verificação, porque a sua ausência só bloqueia mais tarde:
php -m | grep -E "pdo_sqlite|intl"O pdo_sqlite serve para a base de dados deste tutorial. A intl vai ser exigida no capítulo 4 pelo painel de administração, instalá-la agora evita uma instalação falhada nessa altura.
Um editor
O VS Code é gratuito e chega perfeitamente, com a extensão «PHP Intelephense». O PhpStorm é pago e percebe o Laravel de raiz. O tutorial não pressupõe nenhum: tudo se faz no terminal.
Criar o projeto
Coloca-te na pasta onde arrumas os teus projetos e depois:
composer create-project laravel/laravel blogO Composer descarrega o Laravel e as suas dependências para uma pasta blog. A operação demora de um a três minutos, conforme a tua ligação.
Desde o Laravel 11, o create-project já não se limita a descarregar os ficheiros. Copia o .env.example para .env, gera a chave de aplicação, cria o ficheiro database/database.sqlite e executa as migrações iniciais. Os comandos php artisan key:generate e php artisan migrate que encontras nos tutoriais antigos deixaram de ser necessários num projeto novo.
Verifica a versão instalada:
cd blog
php artisan --versionLaravel Framework 13.30.1A alternativa: o instalador do Laravel
Existe um instalador global que encurta o comando e propõe escolher um kit de arranque:
composer global require laravel/installer
laravel new blogÉ prático se crias projetos com frequência, mas acrescenta uma dependência global à tua máquina e às vezes levanta um problema de PATH. Se obtiveres laravel: command not found, o artigo corrigir «laravel: command not found» explica a solução. Para este tutorial, o composer create-project chega e evita este desvio.
A árvore do projeto
Eis o que contém a pasta blog. O esqueleto do Laravel aligeirou-se bastante desde o Laravel 8: vários ficheiros descritos pelos tutoriais antigos já não existem.
Na raiz
app
O código da tua aplicação. Acabado de instalar, só contém três ficheiros: um controlador de base, o modelo User e um service provider. É aqui que vais acrescentar os teus controladores e os teus modelos.
bootstrap
O ficheiro bootstrap/app.php é o ponto de configuração da aplicação: é aí que se declaram as rotas, os middleware e o tratamento dos erros. No Laravel 8 e 9, esse papel estava repartido por app/Http/Kernel.php, app/Console/Kernel.php e app/Exceptions/Handler.php, que desapareceram.
config
Os ficheiros de configuração. O Laravel 13 só publica dez por omissão, contra cerca de vinte outrora: os restantes continuam a existir na framework com os seus valores por omissão. Para recuperares um e o modificares, usa o php artisan config:publish.
database
As migrações (a estrutura das tabelas), os seeders (os dados de partida) e as factories (objetos de teste). É também aí que está o database.sqlite, a tua base de dados.
public
A única pasta que o servidor web deve expor. Contém o index.php, o ponto de entrada de todos os pedidos, e os ficheiros compilados pelo Vite.
resources
As views Blade, as folhas de estilo CSS e os ficheiros JavaScript antes da compilação.
routes
As declarações de endereços. O Laravel 13 só cria dois ficheiros, o web.php e o console.php. Os ficheiros api.php e channels.php descritos pelos tutoriais escritos para o Laravel 8 já não são criados de origem: o php artisan install:api e o php artisan install:broadcasting acrescentam-nos se precisares deles. Este tutorial só usa o web.php.
Dentro da pasta app
Http/Controllers
Os controladores: o código que recebe um pedido, vai buscar os dados e escolhe a view a devolver.
Models
Os modelos Eloquent. Cada tabela da base tem um modelo correspondente, que serve para a ler e para a escrever. Esta pasta existe desde o Laravel 8, nas versões anteriores, os modelos ficavam diretamente em app.
Configurar o projeto
Toda a configuração que depende da máquina vive no ficheiro .env, na raiz. Os ficheiros de config leem-no através da função env(). Este ficheiro nunca deve ser versionado: contém as tuas palavras-passe.
O nome e o endereço do site
APP_NAME="Mon blog"
APP_URL=http://localhost:8000O APP_NAME vai aparecer no título das páginas. O APP_URL serve para construir as ligações absolutas, nomeadamente para as imagens carregadas.
A base de dados
O Laravel 13 usa SQLite por omissão:
DB_CONNECTION=sqliteO SQLite arruma toda a base num único ficheiro, o database/database.sqlite. Não há servidor para arrancar, nem utilizador para criar, nem palavra-passe para decorar. Para aprender, é a melhor escolha: apagas o ficheiro e recomeças do zero.
Se preferires MySQL ou MariaDB, cria a base e substitui estas linhas:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=O tutorial funciona com as duas. Uma diferença de comportamento aparece no capítulo 8, sobre o motor de pesquisa: é aí medida e explicada.
A ligação de armazenamento
Os ficheiros carregados a partir do back-office aterram em storage/app/public, que não é acessível pela web. Este comando cria a ligação simbólica que os torna visíveis:
php artisan storage:linkINFO The [public/storage] link has been connected to [storage/app/public].Arrancar o servidor
php artisan serve INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the serverAbre o http://127.0.0.1:8000. A página de boas-vindas do Laravel aparece. Deixa este terminal aberto: o servidor corre enquanto não o parares.
Se a porta 8000 já estiver ocupada, o Laravel não pára: tenta a seguinte e avisa-te. Lê o endereço apresentado em vez de o adivinhares.
Failed to listen on 127.0.0.1:8000 (reason: Address already in use)
INFO Server running on [http://127.0.0.1:8001].Também podes servir o projeto com Apache, Nginx, Docker ou Laravel Herd. Nesse caso, a raiz do servidor tem de apontar para a pasta public, nunca para a raiz do projeto: expor a raiz tornaria o teu ficheiro .env descarregável.
Verificar a instalação
Este comando resume o estado do projeto e confirma que está tudo no sítio:
php artisan aboutEnvironment ........................................................
Application Name .......................................... Mon blog
Laravel Version ........................................... 13.30.1
PHP Version ................................................ 8.4.25
Composer Version ........................................... 2.10.3
Environment ................................................. local
Debug Mode ................................................ ENABLED
Drivers ...........................................................
Cache .................................................... database
Database ................................................... sqlite
Queue .................................................... database
Session .................................................. databaseO projeto está pronto. O índice da série recorda o que cada capítulo traz. O capítulo seguinte explica como associar um endereço ao teu próprio código.