Tema
Instalación de Laravel
En esta lección vas a dejar tu computadora lista para trabajar con Laravel y crearás tu primer proyecto. Verás tres caminos: Laravel Herd (el más fácil en Windows y macOS), Composer + PHP (instalación clásica) y Sail (Docker). Elige uno; no necesitas los tres.
Concepto
Para que una aplicación Laravel funcione necesitas:
| Pieza | Para qué |
|---|---|
| PHP 8.2+ (recomendado 8.3 o 8.4) | Ejecuta el código de Laravel |
| Composer | Descarga Laravel y sus dependencias |
| Base de datos | SQLite (viene por defecto), MySQL/MariaDB o PostgreSQL |
| Node.js + npm | Compila CSS/JS con Vite (necesario para Breeze y Tailwind) |
| Servidor web (opcional en local) | php artisan serve basta para desarrollar |
Piensa en ello como cocinar: PHP es la estufa, Composer es el súper donde compras los ingredientes, la base de datos es el refrigerador y Node es la batidora para el postre (el CSS y JS).
Opción 1: Laravel Herd (recomendada)
Herd es una aplicación gratuita que instala PHP, Composer, Nginx y el instalador de Laravel en un clic. Además te da dominios locales tipo http://mi-app.test sin configurar nada.
- Descarga Herd desde
https://herd.laravel.come instálalo. - Abre Herd. Por defecto "vigila" la carpeta
C:\Users\TU_USUARIO\Herd(en macOS~/Herd). - Abre una terminal (PowerShell) y crea el proyecto dentro de esa carpeta:
powershell
# Ve a la carpeta que vigila Herd
cd $HOME\Herd
# Crea un proyecto nuevo con el instalador de Laravel
laravel new mi-app- El instalador te hará algunas preguntas:
txt
Which starter kit would you like to install?
● None
React / Vue / Livewire / (Breeze en Laravel 11)
Which testing framework do you prefer?
● Pest
PHPUnit
Which database will your application use?
● SQLite
MySQL
...
Would you like to run the default database migrations? (yes/no) [yes]Para empezar elige None, Pest y SQLite. Más adelante instalarás Breeze en la lección de autenticación.
- Abre
http://mi-app.testen tu navegador. Verás la página de bienvenida de Laravel.
Buena práctica
Herd incluye un selector de versión de PHP por proyecto. Si un cliente tiene un proyecto viejo en PHP 8.1 y tú usas 8.3 para lo nuevo, Herd te deja cambiar la versión de cada sitio sin reinstalar nada.
Opción 2: PHP + Composer (instalación clásica)
Si ya tienes PHP (por ejemplo con Laragon o XAMPP, como en la lección de instalación de PHP):
- Verifica las versiones:
powershell
php -v # Debe ser 8.2 o superior
composer -V # Composer 2.x
node -v # Node 18 o superior (recomendado 20+)- Asegúrate de que estas extensiones de PHP estén activas en tu
php.ini(quita el;del inicio de la línea):openssl,pdo_mysql,pdo_sqlite,mbstring,fileinfo,curl,zip.
ini
; php.ini (fragmento)
extension=curl
extension=fileinfo
extension=mbstring
extension=openssl
extension=pdo_mysql
extension=pdo_sqlite
extension=zip- Crea el proyecto. Tienes dos formas:
powershell
# Forma A: con Composer directamente
composer create-project laravel/laravel mi-app
# Forma B: instalando primero el instalador global de Laravel
composer global require laravel/installer
laravel new mi-app- Levanta el servidor de desarrollo:
powershell
cd mi-app
php artisan servetxt
INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the serverAbre http://127.0.0.1:8000.
- En otra terminal, instala y compila los recursos de frontend:
powershell
npm install
npm run dev # deja corriendo Vite con recarga automáticaAtajo
Laravel 11+ trae el script composer run dev, que levanta a la vez el servidor, la cola, los logs y Vite en una sola terminal.
Opción 3: Laravel Sail (Docker)
Sail es una capa sobre Docker que te da PHP, MySQL, Redis y más en contenedores, igual en cualquier computadora. En Windows necesitas Docker Desktop con WSL2.
bash
# Dentro de WSL2 (Ubuntu), crea el proyecto con MySQL
curl -s "https://laravel.build/mi-app?with=mysql,redis" | bash
cd mi-app
./vendor/bin/sail up -d # levanta los contenedores en segundo plano
# A partir de aquí, antepone "sail" a los comandos
./vendor/bin/sail artisan migrate
./vendor/bin/sail npm install
./vendor/bin/sail npm run devAbre http://localhost. Para apagar todo: ./vendor/bin/sail down.
¿Cuál elijo?
- Herd: lo más rápido para empezar y para trabajo diario en Windows/macOS.
- Laragon/XAMPP + Composer: si ya los usas para PHP puro.
- Sail: si trabajas en equipo y quieren el mismo entorno exacto, o si tu servidor usa Docker.
Configurar MySQL en lugar de SQLite
SQLite guarda todo en el archivo database/database.sqlite; es perfecto para aprender. Para un proyecto de cliente lo normal es MySQL. Crea la base de datos (con HeidiSQL, phpMyAdmin o la terminal):
sql
CREATE DATABASE mi_app CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;Y edita el archivo .env en la raíz del proyecto:
env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mi_app
DB_USERNAME=root
DB_PASSWORD=Luego crea las tablas iniciales:
powershell
php artisan migratetxt
INFO Running migrations.
0001_01_01_000000_create_users_table .............. 12ms DONE
0001_01_01_000001_create_cache_table ............... 5ms DONE
0001_01_01_000002_create_jobs_table ................ 9ms DONETu primer cambio
Abre el proyecto en VS Code (code .) y edita routes/web.php:
php
<?php
use Illuminate\Support\Facades\Route;
// Ruta original: muestra la vista de bienvenida
Route::get('/', function () {
return view('welcome');
});
// Tu primera ruta: devuelve texto plano
Route::get('/hola', function () {
return '¡Hola desde Laravel!';
});Visita /hola y verás tu mensaje. ¡Ya tienes Laravel funcionando!
Extensiones recomendadas para VS Code
- Laravel (oficial): autocompletado de rutas, vistas y configuración.
- PHP Intelephense: autocompletado y análisis de PHP.
- Laravel Blade Snippets o el soporte Blade de la extensión oficial.
- Tailwind CSS IntelliSense si usarás Tailwind.
Error común
"could not find driver" al migrar: falta activar pdo_mysql (o pdo_sqlite) en php.ini. Ojo: en Windows puede haber varios php.ini. Ejecuta php --ini para ver cuál está usando la terminal y edita ese.
Error común
"No application encryption key has been specified": falta la clave APP_KEY en .env. Pasa cuando clonas un proyecto de Git. Solución:
powershell
copy .env.example .env
php artisan key:generateClonar un proyecto Laravel existente
Cuando recibes un proyecto de otra persona (o el tuyo desde GitHub), la carpeta vendor y el .env no vienen incluidos. El ritual es siempre el mismo:
powershell
git clone https://github.com/usuario/proyecto.git
cd proyecto
composer install # descarga las dependencias de PHP (vendor/)
copy .env.example .env # en Linux/macOS: cp .env.example .env
php artisan key:generate # genera APP_KEY
# edita .env con los datos de tu base de datos
php artisan migrate --seed # crea tablas y datos de prueba
npm install && npm run build
php artisan serveEjercicios
- Crea un proyecto llamado
blogcon el método que prefieras y comprueba que la página de bienvenida carga. - Cambia la base de datos a MySQL, crea la BD
blogy ejecuta las migraciones. - Agrega una ruta
/acercaque devuelva el texto "Blog creado por TU_NOMBRE".
Ver solución
- Con Herd:
powershell
cd $HOME\Herd
laravel new blog
# Abre http://blog.test- Crea la BD y ajusta
.env:
sql
CREATE DATABASE blog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=powershell
php artisan migrate- En
routes/web.php:
php
Route::get('/acerca', function () {
return 'Blog creado por Erick';
});Resumen
- Necesitas PHP 8.2+, Composer, una base de datos y Node.js.
- Herd es la forma más rápida en Windows/macOS; Sail usa Docker; también puedes usar Composer con Laragon/XAMPP.
laravel new mi-appocomposer create-project laravel/laravel mi-appcrean el proyecto.php artisan servelevanta el servidor local;npm run devcompila CSS/JS con Vite.- La configuración de la base de datos va en
.env; luegophp artisan migrate. - Al clonar un proyecto:
composer install, copiar.env,key:generate,migrate.