Cómo preparar Debian 13 para desarrollar con Laravel 13: alternativa a Laravel Herd

Laravel Herd facilita muchísimo el desarrollo de Laravel en Windows y macOS porque instala y configura varias herramientas automáticamente. Sin embargo, Herd no es necesario para desarrollar con Laravel en Linux.
En Debian 13 podemos preparar manualmente un entorno equivalente y, de paso, entender para qué sirve cada componente.
Al terminar tendremos:
Debian 13
│
├── Apache2
├── PHP 8.4
├── Composer
├── Laravel Installer
├── Node.js
├── npm
├── MySQL / MariaDB
├── TablePlus
├── Git
│
└── Laravel 13
├── React 19
├── Inertia
├── TypeScript
├── Tailwind
├── Vite
└── Authentication
Debian 13 “Trixie” incluye PHP 8.4, Apache 2.4 y MariaDB 11.8 en sus repositorios oficiales.
Laravel 13 necesita PHP, Composer y Laravel Installer para crear aplicaciones mediante laravel new. Para compilar el frontend también necesitamos Node.js y npm o Bun.
1. Actualizar Debian
Partimos de una instalación completamente limpia de Debian 13.
Primero actualizamos la información de los repositorios:
sudo apt update
Es importante comprender que:
sudo apt update
no actualiza los programas instalados.
Solamente actualiza la lista de paquetes disponibles.
Después podemos actualizar los paquetes que ya tenga Debian:
sudo apt upgrade
2. Instalar herramientas básicas
Instalaremos algunas herramientas que utilizaremos posteriormente:
sudo apt install curl git unzip
Git será especialmente importante cuando comencemos a trabajar con proyectos reales.
Comprobamos:
git --version
3. Instalar Apache2
Laravel no necesita obligatoriamente Apache para desarrollarse, pero resulta útil tener un servidor web completo instalado en nuestro entorno.
Instalamos Apache:
sudo apt install apache2
Después lo arrancamos:
sudo systemctl enable --now apache2
Este comando es interesante.
sudo
└── permisos administrativos
systemctl
└── administra servicios controlados por systemd
enable
└── hace que Apache se inicie automáticamente al arrancar Debian
--now
└── además de habilitarlo, lo inicia inmediatamente
apache2
└── servicio que queremos administrar
Por tanto:
sudo systemctl enable --now apache2
significa aproximadamente:
Habilita Apache para que arranque automáticamente y arráncalo ahora mismo.
Podemos comprobar su estado:
systemctl status apache2
Deberíamos encontrar:
active (running)
También podemos abrir:
http://localhost
y debería aparecer la página predeterminada de Apache.
4. Instalar PHP
Debian 13 incluye PHP 8.4.
Vamos a instalar PHP junto con varias extensiones muy utilizadas por Laravel:
sudo apt install php php-cli libapache2-mod-php php-mbstring php-xml php-curl php-zip php-mysql php-bcmath
php
└── PHP
php-cli
└── permite ejecutar PHP desde la terminal
libapache2-mod-php
└── permite que Apache procese PHP
php-mbstring
└── manejo avanzado de cadenas de texto
php-xml
└── soporte XML, DOM, SimpleXML, etc.
php-curl
└── permite que PHP realice peticiones mediante cURL
php-zip
└── manejo de archivos ZIP
php-mysql
└── permite que PHP se conecte con MySQL/MariaDB
php-bcmath
└── operaciones matemáticas de precisión arbitraria
Debian 13 proporciona módulos PHP como php-mysql, php-mbstring, php-curl, php-xml y php-zip mediante sus paquetes oficiales.
Comprobamos la versión:
php -v
Deberíamos obtener algo parecido a:
PHP 8.4.x
Podemos comprobar las extensiones:
php -m
Por ejemplo:
php -m | grep mysql
Aquí aparece otro concepto de Linux.
php -m
│
└── muestra los módulos PHP cargados
|
│
└── pasa el resultado al siguiente comando
grep mysql
│
└── muestra únicamente las líneas que contienen "mysql"
Deberíamos encontrar algo parecido a:
mysqli
mysqlnd
pdo_mysql
pdo_mysql será especialmente importante porque Laravel puede utilizarlo para comunicarse con MySQL/MariaDB.
5. Instalar Composer
Composer es el administrador de dependencias de PHP.
Una comparación sencilla sería:
PHP JavaScript
Composer ←→ npm
composer.json ←→ package.json
vendor/ ←→ node_modules/
Podemos instalar Composer desde Debian:
sudo apt install composer
Después comprobamos:
composer --version
Composer se encargará de descargar y administrar las dependencias PHP que utilizan Laravel y nuestros proyectos.
6. Instalar Node.js y npm
Laravel utiliza herramientas modernas de frontend como Vite. Para eso necesitamos Node.js y npm.
Laravel indica que debemos disponer de Node/npm o Bun para compilar los recursos frontend.
Instalamos:
sudo apt install nodejs npm
npm
└── administrador de paquetes JavaScript
Comprobamos:
node --version
y:
npm --version
Debian 13 proporciona Node.js y npm desde sus repositorios.
7. Instalar MySQL en Debian 13
Aquí hay algo importante que debemos entender.
En Debian, el servidor compatible con MySQL proporcionado por defecto es MariaDB.
Debian 13 incluye MariaDB 11.8.
Podemos instalar el metapaquete de MySQL predeterminado de Debian:
sudo apt install default-mysql-server default-mysql-client
Estos paquetes instalan la implementación MySQL predeterminada de Debian.
En Debian 13 esto utilizará MariaDB.
Desde el punto de vista de nuestro proyecto Laravel tendremos:
Laravel
│
│ DB_CONNECTION=mysql
▼
MariaDB
No debemos confundir:
MySQL
con:
MariaDB
Son proyectos diferentes, pero mantienen una gran compatibilidad.
Para un entorno de aprendizaje Laravel podemos utilizar perfectamente MariaDB mediante el driver MySQL.
8. Iniciar el servidor de base de datos
Ejecutamos:
sudo systemctl enable --now mariadb
sudo
└── permisos administrativos
systemctl
└── administra servicios
enable
└── inicia automáticamente MariaDB al arrancar Debian
--now
└── también lo inicia inmediatamente
mariadb
└── nombre del servicio
Comprobamos:
systemctl status mariadb
Deberíamos encontrar:
active (running)
9. Entrar a MariaDB
Podemos entrar como administrador mediante:
sudo mariadb
Aquí:
sudo
└── permisos administrativos
mariadb
└── abre el cliente de MariaDB
Nos aparecerá algo parecido a:
MariaDB [(none)]>
Ahora ya no estamos escribiendo comandos Linux.
Estamos dentro del servidor SQL.
Por ejemplo:
SHOW DATABASES;
significa:
SHOW
└── mostrar
DATABASES
└── las bases de datos existentes
Para salir:
exit;
10. Base de datos y tabla no son lo mismo
Esta diferencia es fundamental.
Una base de datos contiene tablas.
Por ejemplo:
curso_laravel ← BASE DE DATOS
│
├── users ← TABLA
├── posts ← TABLA
├── migrations ← TABLA
├── sessions ← TABLA
└── password_reset_tokens ← TABLA
Podemos imaginarlo así:
Base de datos = archivador
Tabla = una carpeta dentro del archivador
Fila = un registro
Columna = una propiedad del registro
Por ejemplo:
BASE DE DATOS:
curso_laravel
TABLA:
users
COLUMNAS:
id
name
email
password
FILAS:
1 | Andres | correo@ejemplo.com | ...
2 | Pedro | otro@ejemplo.com | ...
Laravel puede crear automáticamente tablas mediante migraciones, pero cuando utilizamos MySQL/MariaDB normalmente tenemos que crear primero la base de datos donde esas tablas serán almacenadas.
Laravel explica que, si utilizamos una base de datos diferente de SQLite, debemos crearla y ejecutar las migraciones.
11. Crear un usuario para Laravel
No es buena práctica utilizar el usuario administrativo root desde nuestra aplicación.
Entramos:
sudo mariadb
Y creamos un usuario:
CREATE USER 'laravel'@'localhost' IDENTIFIED BY 'UnaPasswordSegura';
¿Qué significa?
CREATE USER
└── crea un usuario
'laravel'
└── nombre del usuario
@'localhost'
└── solamente podrá conectarse desde esta máquina
IDENTIFIED BY
└── establece su contraseña
'UnaPasswordSegura'
└── contraseña del usuario
Todavía no le hemos dado acceso a ninguna base de datos.
Eso lo haremos después.
12. Crear nuestra base de datos
Supongamos que nuestro proyecto se llamará:
curso-laravel
Los nombres de bases de datos suelen evitar guiones para simplificar determinadas situaciones, así que podemos llamarla:
curso_laravel
Dentro de MariaDB:
CREATE DATABASE curso_laravel CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE
└── crea una base de datos
curso_laravel
└── nombre de la base de datos
CHARACTER SET utf8mb4
└── permite almacenar caracteres Unicode completos
COLLATE utf8mb4_unicode_ci
└── define cómo se comparan y ordenan esos caracteres
Ahora damos al usuario laravel acceso únicamente a esa base:
GRANT ALL PRIVILEGES ON curso_laravel.* TO 'laravel'@'localhost';
GRANT ALL PRIVILEGES
└── concede permisos
ON curso_laravel.*
└── sobre todas las tablas de curso_laravel
TO
└── al usuario
'laravel'@'localhost'
└── usuario Laravel local
Observa:
curso_laravel.*
↑
El * significa:
Todas las tablas dentro de
curso_laravel.
Después:
FLUSH PRIVILEGES;
y:
exit;
13. Probar nuestro usuario MySQL/MariaDB
Ejecutamos:
mariadb -u laravel -p
mariadb
└── cliente de base de datos
-u
└── indica usuario
laravel
└── nombre del usuario
-p
└── solicita la contraseña
Nos pedirá:
Enter password:
Escribimos nuestra contraseña.
Podemos comprobar:
SHOW DATABASES;
Deberíamos poder ver:
curso_laravel
Salimos:
exit;
14. Instalar TablePlus (OPCIONAL)
TablePlus NO ES NECESARIAMENTE ALGO QUE OCUPEMOS esta es una aplicación gráfica para administrar bases de datos, si quieres verlo de forma gráfica una alternativa podría ser TablePlus
Es importante entender:
TablePlus ≠ MySQL
Nuestra estructura realmente es:
TablePlus
│
│ interfaz gráfica
▼
MariaDB/MySQL
│
▼
curso_laravel
│
├── users
├── migrations
├── posts
└── ...
TablePlus dispone actualmente de una versión AppImage oficial para Linux x86_64 y ARM64.
Descargamos desde la página oficial la versión:
TablePlus-x64.AppImage
para una computadora Intel/AMD de 64 bits.
Después nos dirigimos a nuestra carpeta de descargas.
Dependiendo del idioma del sistema:
cd ~/Descargas
o:
cd ~/Downloads
¿Qué significa cd?
cd
└── Change Directory
cambiar de directorio
Ahora damos permiso de ejecución:
chmod +x TablePlus-x64.AppImage
TablePlus indica oficialmente este procedimiento para ejecutar su AppImage.
chmod
└── cambia permisos de un archivo
+x
└── agrega permiso de ejecución
TablePlus-x64.AppImage
└── archivo al que aplicamos el permiso
Ahora ejecutamos:
./TablePlus-x64.AppImage
Aquí:
./
└── significa "ejecuta este archivo desde el directorio actual"
TablePlus-x64.AppImage
└── aplicación que queremos ejecutar
Si alguna AppImage antigua solicitara FUSE, Debian 13 dispone del paquete libfuse2t64.
Podemos instalarlo mediante:
sudo apt install libfuse2t64
solamente si fuera necesario.
15. Conectar TablePlus
Abrimos TablePlus y creamos una conexión nueva.
Seleccionamos:
MySQL
Podemos utilizar:
Name:
Laravel Local
Host:
127.0.0.1
Port:
3306
User:
laravel
Password:
nuestra contraseña
Database:
curso_laravel
Probamos la conexión.
Si funciona, tendremos:
TablePlus
│
▼
127.0.0.1:3306
│
▼
MariaDB
│
▼
curso_laravel
Por ahora la base puede aparecer vacía.
Eso es normal.
Todavía Laravel no ha creado ninguna tabla.
16. Instalar Laravel Installer
Ahora tenemos:
PHP ✅
Apache ✅
Composer ✅
Node ✅
npm ✅
MySQL ✅
TablePlus ✅
Nos falta el comando:
laravel
Laravel permite instalar su CLI mediante Composer con:
composer global require laravel/installer
Vamos a entenderlo.
composer
└── utilizamos Composer
global
└── queremos instalar algo para nuestro usuario,
no únicamente dentro de un proyecto
require
└── agrega/instala una dependencia
laravel/installer
└── paquete que contiene el comando `laravel`
En otras palabras:
Composer, instala globalmente el instalador de Laravel.
Comprobamos:
laravel --version
17. ¿Qué pasa si aparece “laravel: orden no encontrada”?
Puede suceder:
bash: laravel: orden no encontrada
Eso no significa necesariamente que Laravel Installer no se haya instalado.
Composer puede haberlo guardado en una carpeta que Bash todavía no conoce.
Primero preguntamos a Composer dónde guarda sus ejecutables:
composer global config bin-dir --absolute
composer
└── Composer
global
└── configuración global
config
└── consultar/configurar opciones
bin-dir
└── directorio de ejecutables
--absolute
└── mostrar la ruta completa
Puede devolver algo parecido a:
/home/usuario/.config/composer/vendor/bin
Podemos comprobar:
ls ~/.config/composer/vendor/bin
y deberíamos encontrar:
laravel
18. Añadir Laravel al PATH
Solo lo haremos si no funciona al poner el comando $laravel
PATH es una variable especial de Linux.
Contiene las carpetas donde Bash busca programas cuando escribimos algo como:
php
o:
composer
Si Laravel está instalado aquí:
/home/usuario/.config/composer/vendor/bin/laravel
pero esa carpeta no está en PATH, escribir:
laravel
no funcionará.
Añadimos la carpeta:
echo 'export PATH="$HOME/.config/composer/vendor/bin:$PATH"' >> ~/.bashrc
Este comando merece ser desglosado.
echo
└── imprime texto
'export PATH="..."'
└── texto que queremos guardar
>>
└── agrega ese texto al final de un archivo
~/.bashrc
└── archivo de configuración de Bash de nuestro usuario
Dentro de la línea:
export PATH="$HOME/.config/composer/vendor/bin:$PATH"
tenemos:
export
└── crea/exporta una variable de entorno
PATH
└── rutas donde Linux busca comandos
$HOME
└── nuestra carpeta personal
$PATH
└── conserva las rutas que ya existían
Después recargamos Bash:
source ~/.bashrc
source significa:
Lee nuevamente este archivo y aplica sus configuraciones en la terminal actual.
Probamos:
laravel --version
Ahora debería funcionar.
19. Dos maneras de crear un proyecto Laravel
Aquí hay una diferencia muy importante.
Podemos crear un proyecto Laravel de varias maneras.
Opción A — Laravel limpio
Podemos utilizar Composer:
composer create-project laravel/laravel curso-laravel
composer
└── administrador de paquetes PHP
create-project
└── crea un proyecto a partir de un paquete existente
laravel/laravel
└── plantilla base oficial de Laravel
curso-laravel
└── carpeta donde será creado
Traducido:
Composer, crea un proyecto utilizando Laravel como base y colócalo en una carpeta llamada
curso-laravel.
Esto crea un Laravel relativamente limpio.
Es ideal si queremos construir nosotros mismos la aplicación desde cero.
20. Opción B — Laravel con Starter Kit
Si queremos que Laravel nos prepare tecnologías adicionales como:
React
Authentication
Inertia
TypeScript
Tailwind
Vite
es mucho más conveniente utilizar:
laravel new curso-laravel
laravel
└── Laravel Installer
new
└── crear una aplicación nueva
curso-laravel
└── nombre/carpeta de nuestra aplicación
El instalador de Laravel puede preguntarnos qué Starter Kit queremos instalar.
Laravel 13 dispone actualmente de Starter Kits oficiales para React, Vue, Svelte y Livewire.
21. Crear Laravel 13 con React y autenticación
Entramos primero a nuestra carpeta de proyectos.
Por ejemplo:
mkdir -p ~/Documentos/Web/Laravel
mkdir
└── Make Directory: crear directorio
-p
└── crea también directorios intermedios si hacen falta
~/Documentos/Web/Laravel
└── ruta que queremos crear
Entramos:
cd ~/Documentos/Web/Laravel
Ahora:
laravel new curso-laravel
Laravel nos mostrará un asistente interactivo.
Cuando pregunte qué Starter Kit queremos utilizar, seleccionamos:
React
Los Starter Kits oficiales proporcionan frontend y backend para autenticación.
El Starter Kit React actual de Laravel 13 utiliza:
React 19
Inertia
TypeScript
Tailwind
shadcn/ui
Cuando aparezca la elección de autenticación, podemos utilizar la autenticación integrada de Laravel.
Finalmente, cuando pregunte qué base de datos queremos utilizar:
MySQL
22. Configurar .env
Cada proyecto Laravel contiene un archivo:
.env
El .env almacena configuraciones que pueden cambiar dependiendo de la computadora o servidor.
Laravel utiliza este archivo para información como:
base de datos
contraseñas
correo
URL
entorno
claves de APIs
Laravel recomienda no subir .env al repositorio porque puede contener credenciales sensibles.
Para nuestra base de datos tendremos:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=curso_laravel
DB_USERNAME=laravel
DB_PASSWORD=UnaPasswordSegura
Vamos línea por línea.
DB_CONNECTION=mysql
DB_CONNECTION
└── tipo de conexión de base de datos
mysql
└── utilizaremos el driver MySQL
Aunque Debian utilice MariaDB, mantenemos:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
Significa:
El servidor de base de datos está en nuestra propia computadora.
127.0.0.1
es la dirección loopback local.
DB_PORT=3306
3306
es el puerto utilizado habitualmente por MySQL/MariaDB.
DB_DATABASE=curso_laravel
Es la base de datos que creamos anteriormente.
DB_USERNAME=laravel
Es nuestro usuario de base de datos.
DB_PASSWORD=...
Es la contraseña de ese usuario.
Laravel muestra precisamente esta estructura DB_CONNECTION=mysql, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME y DB_PASSWORD en su configuración oficial para MySQL.
23. Crear las tablas con las migraciones
Ahora Laravel ya sabe:
Dónde está MySQL
Qué base utilizar
Qué usuario utilizar
Qué contraseña utilizar
Entramos al proyecto:
cd curso-laravel
Ejecutamos:
php artisan migrate
Desglose:
php
└── ejecuta PHP
artisan
└── consola de comandos incluida dentro de Laravel
migrate
└── ejecuta las migraciones pendientes
Conceptualmente:
php artisan migrate
↓
Laravel lee:
database/migrations/
↓
envía instrucciones SQL
↓
MySQL/MariaDB
↓
curso_laravel
↓
crea tablas
Por ejemplo:
curso_laravel
│
├── users
├── migrations
├── jobs
├── cache
└── ...
Laravel especifica que al utilizar MySQL debemos crear la base de datos y ejecutar posteriormente php artisan migrate.
Ahora podemos abrir TablePlus y actualizar la conexión.
Las tablas deberían aparecer.
24. ¿Qué hizo realmente php artisan migrate?
No creó necesariamente la base de datos.
La base:
curso_laravel
ya existía.
Lo que hizo Laravel fue crear las tablas dentro de ella.
Antes:
curso_laravel
│
└── vacío
Después:
curso_laravel
│
├── users
├── migrations
├── jobs
├── cache
└── ...
Esta diferencia es fundamental:
CREATE DATABASE
↓
crea el contenedor
php artisan migrate
↓
crea/modifica las tablas
25. Instalar las dependencias de React
Dentro del proyecto abre otra terminal:
npm install
Desglose:
npm
└── administrador de paquetes JavaScript
install
└── instala las dependencias del proyecto
npm lee:
package.json
y descarga los paquetes necesarios dentro de:
node_modules/
26. Arrancar Laravel
Actualmente Laravel recomienda utilizar:
composer run dev
para arrancar el entorno de desarrollo.
composer
└── utiliza Composer
run
└── ejecuta un script definido en composer.json
dev
└── nombre del script de desarrollo
Este comando puede coordinar varias herramientas necesarias para desarrollar.
La aplicación estará disponible normalmente en:
http://localhost:8000
27. ¿Entonces para qué existe php artisan serve?
También podemos ejecutar:
php artisan serve
php
└── PHP
artisan
└── consola de Laravel
serve
└── inicia el servidor de desarrollo
Normalmente tendremos:
http://127.0.0.1:8000
Esto arranca el servidor PHP/Laravel.
Sin embargo, si nuestro proyecto utiliza React + Vite, normalmente necesitaremos también ejecutar:
npm run dev
en otra terminal.
Por eso en este caso de usar Laravel, React + autenticación mejor usamos solamente:
composer run dev
resulta especialmente cómodo durante el desarrollo moderno de Laravel.
Laravel documenta actualmente composer run dev como la forma de iniciar el servidor local, el worker de colas y Vite después de preparar el proyecto.
Cuando termines tu aplicaciones Laravel recomienda ejecutar, después de crear una aplicación con Starter Kit:
npm install && npm run build
Aquí tenemos un operador nuevo:
&&
Significa:
Ejecuta el segundo comando solamente si el primero terminó correctamente.
Así:
npm install && npm run build
significa:
npm install
↓
si funciona
↓
npm run build
28. ¿Si tenemos Apache necesitamos php artisan serve?
No.
Tenemos varias posibilidades.
Opción 1 — Desarrollo rápido
composer run dev
Es la opción más sencilla mientras aprendemos Laravel.
Opción 2 — Servidor sencillo Laravel
php artisan serve
y, si necesitamos Vite:
npm run dev
Opción 3 — Apache
Podemos configurar Apache para servir directamente:
curso-laravel/public/
Laravel indica que el servidor web debe apuntar a la raíz web pública de Laravel y no a la raíz completa del proyecto.
Apache resulta útil cuando queremos un entorno local más parecido a un servidor web tradicional.
Pero no es necesario configurarlo para comenzar a aprender Laravel, pero podemos verlo en otros tutoriales futuros.
29. ¿Por qué un Laravel limpio no muestra Login y Register?
Si creamos:
composer create-project laravel/laravel curso-laravel
estamos creando una aplicación Laravel base.
Por eso podemos ver solamente la página inicial de Laravel.
Eso no significa que exista un error.
Si queremos:
Login
Register
Forgot Password
Reset Password
Email verification
Dashboard
conviene utilizar uno de los Starter Kits.
Laravel explica que sus Starter Kits proporcionan la estructura de autenticación tanto del backend como del frontend.
Por eso:
laravel new curso-laravel
y seleccionar:
React
+
Laravel Authentication
produce una aplicación mucho más completa.
30. Qué contiene el Starter Kit React
Conceptualmente tendremos:
Laravel
│
├── PHP
│
├── Routes
│
├── Controllers
│
├── Models
│
├── Eloquent
│
├── Authentication
│
│
├── Inertia
│
└── React
│
├── TypeScript
├── Tailwind
├── Vite
└── componentes
Laravel 13 utiliza actualmente React 19, Inertia 3, Tailwind 4 y shadcn/ui en su Starter Kit React.
La mayoría del código frontend se encuentra en:
resources/js/
y contiene carpetas como:
resources/js/
├── components/
├── hooks/
├── layouts/
├── lib/
├── pages/
└── types/
31. Qué ocurre cuando un usuario se registra
Una vez que tenemos autenticación podemos entender todo el flujo:
Usuario
│
▼
React
│
│ formulario
▼
Inertia
│
▼
Laravel
│
│ valida los datos
▼
Eloquent
│
▼
MySQL/MariaDB
│
▼
tabla users
Después podemos abrir TablePlus.
Por ejemplo:
curso_laravel
└── users
id | name | email
---|--------|-----------------------
1 | Andres | usuario@ejemplo.com
TablePlus solamente nos permite visualizar y administrar esos datos.
No es TablePlus quien los almacena.
Los almacena MariaDB/MySQL.
32. El entorno completo
Nuestro Debian queda aproximadamente así:
DEBIAN 13
│
┌───────────────┼────────────────┐
│ │ │
▼ ▼ ▼
PHP Node.js MariaDB
│ │ ▲
│ │ │
Composer npm TablePlus
│ │
└───────┬───────┘
│
▼
Laravel
│
┌───────┴───────┐
│ │
▼ ▼
Backend React
Laravel Inertia
│
▼
Eloquent
│
▼
MySQL/MariaDB
33. Comandos que utilizaremos todos los días
Entrar al proyecto:
cd ~/Documentos/Web/Laravel/curso-laravel
Abrirlo en Visual Studio Code:
code .
El punto:
.
significa:
Directorio actual.
Por tanto:
code .
significa:
Abre el directorio donde estoy actualmente en VS Code.
Arrancar el entorno:
composer run dev
Migraciones:
php artisan migrate
Ver rutas:
php artisan route:list
Crear controlador:
php artisan make:controller ProductoController
Crear modelo:
php artisan make:model Producto
Crear modelo y migración:
php artisan make:model Producto -m
En este último comando:
php
└── ejecuta PHP
artisan
└── consola Laravel
make:model
└── crear modelo
Producto
└── nombre del modelo
-m
└── también crear su migración
34. Resumen: Laravel limpio o Laravel completo
Quiero Laravel limpio
Utiliza:
composer create-project laravel/laravel mi-proyecto
Obtendremos:
Laravel
└── estructura base
Es útil cuando queremos decidir manualmente qué tecnologías añadir.
Quiero Laravel con React y autenticación
Utiliza:
laravel new mi-proyecto
Selecciona:
React
Laravel Authentication
MySQL
Después:
cd mi-proyecto
npm install
php artisan migrate
composer run dev
Y tendremos aproximadamente:
Laravel 13
├── React
├── Inertia
├── TypeScript
├── Tailwind
├── Vite
├── Login
├── Register
├── recuperación de contraseña
└── conexión MySQL/MariaDB
Los Starter Kits oficiales están diseñados precisamente para proporcionar este punto de partida completo.
35. Instalación resumida desde Debian 13 limpio
Una vez entendido qué hace cada cosa, los comandos principales son:
sudo apt update
sudo apt upgrade
sudo apt install curl git unzip
sudo apt install apache2
sudo systemctl enable --now apache2
sudo apt install php php-cli libapache2-mod-php php-mbstring php-xml php-curl php-zip php-mysql php-bcmath
sudo apt install composer
sudo apt install nodejs npm
sudo apt install default-mysql-server default-mysql-client
sudo systemctl enable --now mariadb
Crear usuario y base de datos:
sudo mariadb
CREATE USER 'laravel'@'localhost' IDENTIFIED BY 'UnaPasswordSegura';
CREATE DATABASE curso_laravel
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES
ON curso_laravel.*
TO 'laravel'@'localhost';
FLUSH PRIVILEGES;
exit;
Instalar Laravel Installer:
composer global require laravel/installer
Comprobar dónde está:
composer global config bin-dir --absolute
Si fuera necesario, agregarlo a PATH:
echo 'export PATH="$HOME/.config/composer/vendor/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Comprobar:
laravel --version
Crear el proyecto:
laravel new curso-laravel
Seleccionar:
React
Laravel Authentication
MySQL
Entrar:
cd curso-laravel
Configurar .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=curso_laravel
DB_USERNAME=laravel
DB_PASSWORD=UnaPasswordSegura
Instalar frontend:
npm install
Crear tablas:
php artisan migrate
Arrancar:
composer run dev
Abrir:
http://localhost:8000
Y con eso tendremos Debian 13 preparado completamente para comenzar a desarrollar aplicaciones modernas con Laravel 13, React, autenticación y MySQL/MariaDB sin depender de Laravel Herd.



