Laravel
Descripción general
Laravel es un framework de aplicaciones web PHP con una sintaxis expresiva y elegante. Esta guía te acompañará en el despliegue de una aplicación Laravel en la plataforma NStrim de principio a fin.
Inicio rápido
Crear repositorio desde plantilla
En tu panel, ve a la pestaña Tools & Deployment. Haz clic en el botón "New Repository", selecciona la plantilla de Laravel del menú desplegable, introduce un nombre de repositorio y un subdominio, y luego haz clic en "Create Repository".
Clona tu repositorio
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Instala las dependencias
composer install
Configura el entorno
Copia el archivo de entorno de ejemplo y configura tu base de datos (consulta las instrucciones detalladas más abajo):
cp .env.example .env
php artisan key:generate
Ejecuta migraciones y haz push
php artisan migrate
git add .
git commit -m "Initial setup"
git push origin main
Desarrollo local con Docker
Si no tienes PHP instalado localmente, puedes usar Docker para ejecutar comandos de Laravel. El proyecto incluye un Dockerfile que configura todo lo que necesitas.
Requisitos previos
Instala Docker Desktop para tu sistema operativo (Windows, Mac o Linux).
Ejecutar comandos con Docker
En lugar de ejecutar php artisan migrate directamente, lo ejecutas dentro de un contenedor Docker:
# Build the Docker image (only needed once)
docker build -t laravel-app .
# Run any artisan command
docker run --rm laravel-app php artisan migrate
# Run composer install
docker run --rm -v $(pwd):/var/www/html laravel-app composer install
# Interactive shell inside container
docker run --rm -it -v $(pwd):/var/www/html laravel-app bash
Configuración de la base de datos
La plataforma NStrim te proporciona una base de datos MySQL/MariaDB. Necesitas configurar tu archivo .env con las credenciales correctas para conectar.
¿Por qué configurar la base de datos?
Laravel utiliza un archivo .env para guardar la configuración específica del entorno. Por defecto, la plantilla usa SQLite (una base de datos basada en archivos), pero NStrim ofrece MySQL para un mejor rendimiento y compatibilidad con escenarios reales.
Configuración paso a paso
Abre tu archivo .env
Abre el archivo .env en la raíz de tu proyecto con tu editor de código.
Encuentra la sección de la base de datos
Busca estas líneas (normalmente alrededor de la línea 23):
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
Actualiza con tus credenciales
Sustituye con las credenciales de tu panel:
DB_CONNECTION=mysql
DB_HOST=db.<session-domain>
DB_PORT=3306
DB_DATABASE=<your-username>
DB_USERNAME=<your-username>
DB_PASSWORD=<your-password>
student01). Consulta la sección de credenciales de tu panel para los valores exactos.Ejemplo de configuración
Si tu nombre de usuario es student01 y el dominio de la sesión es demo.nstrim.app:
DB_CONNECTION=mysql
DB_HOST=db.demo.nstrim.app
DB_PORT=3306
DB_DATABASE=student01
DB_USERNAME=student01
DB_PASSWORD=your-password-from-dashboard
Ejecutar migraciones
Las migraciones son la forma que tiene Laravel de crear tablas en la base de datos. Tras configurar tu base de datos, ejecuta las migraciones para crear las tablas necesarias:
php artisan migrate
Si necesitas reiniciar y volver a ejecutar todas las migraciones (esto eliminará todos los datos):
php artisan migrate:fresh
Para ejecutar las migraciones con datos de seed (si tu proyecto tiene seeders):
php artisan migrate:fresh --seed
Estructura del proyecto
Entender dónde se ubican los archivos:
├── app/ # Código de la aplicación
│ ├── Http/
│ │ └── Controllers/ # Aquí van tus controladores
│ └── Models/ # Modelos Eloquent
├── config/ # Archivos de configuración
├── database/
│ ├── migrations/ # Migraciones de la base de datos
│ └── seeders/ # Seeders de la base de datos
├── public/ # Recursos públicos (CSS, JS, imágenes)
├── resources/
│ └── views/ # Plantillas Blade
├── routes/
│ └── web.php # Rutas web (URL → Controlador)
├── .env # Configuración del entorno (BD, etc.)
└── composer.json # Dependencias PHP
Tareas comunes
Crear un nuevo controlador
php artisan make:controller ProductController
Crear un nuevo modelo con migración
php artisan make:model Product -m
Añadir una ruta
Edita routes/web.php:
Route::get('/products', [ProductController::class, 'index']);
Limpiar la caché
php artisan cache:clear
php artisan config:clear
php artisan view:clear
Comandos útiles
php artisan serve
Iniciar el servidor de desarrollo local
php artisan migrate
Ejecutar migraciones de la base de datos
php artisan migrate:status
Comprobar el estado de las migraciones
php artisan make:controller
Crear un nuevo controlador
php artisan make:model -m
Crear un modelo con migración
php artisan route:list
Listar todas las rutas registradas
php artisan tinker
Shell PHP interactivo para pruebas
Resolución de problemas
SQLSTATE[HY000] [2002] Connection refused
Causa: El host de la base de datos es incorrecto o el servidor de la base de datos no es accesible.
Solución: Comprueba que DB_HOST en tu archivo .env coincide con el host de la base de datos de tu panel (normalmente db.<session-domain>).
SQLSTATE[HY000] [1045] Access denied for user
Causa: Nombre de usuario o contraseña incorrectos.
Solución: Comprueba dos veces que DB_USERNAME y DB_PASSWORD coinciden exactamente con lo que se muestra en tu panel. ¡Las contraseñas distinguen entre mayúsculas y minúsculas!
SQLSTATE[HY000] [1049] Unknown database
Causa: El nombre de la base de datos no existe.
Solución: Verifica que DB_DATABASE esté establecido como tu nombre de usuario (por ejemplo, student01). Tu base de datos se crea con el mismo nombre que tu usuario.
No application encryption key has been specified
Causa: Falta APP_KEY en el archivo .env.
Solución: Ejecuta php artisan key:generate para generar una clave nueva.
Class 'App\Http\Controllers\...' not found
Causa: El autoloader no conoce tu clase nueva.
Solución: Ejecuta composer dump-autoload para regenerar el autoloader.
La página muestra contenido antiguo tras los cambios
Causa: Laravel está cacheando vistas o configuración.
Solución: Limpia todas las cachés:
php artisan cache:clear
php artisan config:clear
php artisan view:clear
Error 500 del servidor tras el despliegue
Causa: Normalmente un problema de configuración o dependencias faltantes.
Solución: Comprueba que:
- El archivo
.envexiste y tiene los valores correctos - APP_KEY está establecida (ejecuta
php artisan key:generate) - Todas las dependencias están instaladas (
composer install) - Las credenciales de la base de datos son correctas
Comprobar tu base de datos
Puedes acceder a phpMyAdmin para gestionar visualmente tu base de datos. Haz clic en el botón MySQL de tu panel para abrir phpMyAdmin. Inicia sesión con las mismas credenciales que se muestran en tu panel.
Desde phpMyAdmin puedes:
- Ver todas las tablas creadas por las migraciones
- Navegar y editar datos directamente
- Ejecutar consultas SQL personalizadas
- Exportar/importar datos de la base de datos
Flujo de despliegue
Cada vez que haces push de tu código a Git, tu aplicación se despliega automáticamente:
La URL de tu aplicación desplegada sigue este formato:
https://<your-subdomain>-<repo-name>.<session-domain>
Ejemplo: https://student01-module-a.demo.nstrim.app