Instalación de Laravel en un entorno real
Generación de claves SSH y configuración en GitLab
Para poder clonar el repositorio de GitLab mediante SSH (y evitar tener que introducir usuario/contraseña constantemente), es necesario generar un par de claves SSH y registrar la clave pública en GitLab.
1. Generar claves SSH
Desde la máquina local ejecutamos el siguiente comando:
ssh-keygen -t ed25519 -C "a231698dj@correu.escoladeltreball.org"
-t ed25519
: especifica el tipo de clave (más segura y moderna que RSA).-C
: comentario para identificar la clave (usualmente tu email).
Presionamos Enter para aceptar la ruta por defecto (~/.ssh/id_ed25519
).
2. Copiar la clave pública
cat ~/.ssh/id_ed25519.pub
Esto mostrará el contenido de nuestra clave pública. Lo copiamos completamente.
3. Añadir la clave a GitLab
- Iniciamos sesión en GitLab.
- Vamos a Preferences → SSH Keys.
- Pegamos la clave pública en el campo.
- Pulsa Add key.
4. Clonamos nuestro proyecto a la máquina real
Antes de empezar, debemos conectarnos a la máquina real de la escuela.
ssh root@10.1.1.109
# Contraseña: password
Este comando nos conecta como usuario root
al servidor con la IP 10.1.1.109
, utilizando la contraseña proporcionada. Una vez conectados, ya podremos ejecutar todos los comandos necesarios directamente sobre el entorno de producción.
Para desplegar Laravel en un entorno real, el primer paso es obtener el código fuente del proyecto desde el repositorio remoto. Utilizaremos el sistema de control de versiones git
, una conexión segura mediante SSH.
Ejecutamos los siguientes comandos:
cd /var/www/html
git clone ssh://git@gitlab.inf.edt.cat:5505/a232221gc/proyecto-laravel.git
cd proyecto-laravel
Explicación detallada:
cd /var/www/html
: este es el directorio estándar donde NGINX busca servir contenido web. Laravel se alojará aquí.git clone ssh://git@gitlab.inf.edt.cat:5505/a232221gc/proyecto-laravel.git
:- Clona el proyecto desde el repositorio de GitLab del centro educativo.
cd proyecto-laravel
: accede al directorio recién clonado.
5. Instalar dependencias PHP con Composer
Una vez clonado el proyecto, instalamos todas las dependencias necesarias de Laravel.
composer install
¿Qué hace este comando?
- Lee el archivo
composer.json
, que define todas las librerías y versiones que el proyecto necesita (como Laravel, Symfony, Carbon, etc.). - Descarga e instala esas dependencias en la carpeta
vendor/
. - Crea también el archivo
composer.lock
(si no existe ya) que fija las versiones exactas de cada dependencia.
Este paso es obligatorio para que Laravel pueda funcionar. Si no se ejecuta composer install
, no tendremos acceso a las clases, helpers y comandos esenciales del framework.
6. Configurar el archivo .env
Una vez instaladas las dependencias del proyecto, necesitamos configurar las variables de entorno. Laravel gestiona esta configuración a través del archivo .env
.
cp .env.example .env
nano .env
Explicación:
cp .env.example .env
: crea una copia del archivo de ejemplo que Laravel proporciona como base.nano .env
: abre el archivo en el editor de texto para editarlo manualmente.
Dentro del archivo .env
es fundamental configurar correctamente:
APP_NAME
,APP_ENV
,APP_DEBUG
: nombre del proyecto, entorno (local
,production
) y si se mostrarán errores.APP_URL
: la URL base de tu aplicación, por ejemplohttp://10.1.1.109
.DB_CONNECTION
,DB_HOST
,DB_PORT
,DB_DATABASE
,DB_USERNAME
,DB_PASSWORD
: los datos de conexión a tu base de datos MariaDB.- Otros servicios como correo, colas, almacenamiento si aplica.
⚠️ Importante: estamos trabajando en un entorno real, así que nos aseguramos de que DB_HOST=localhost
o 127.0.0.1
y no mysql
o db
, como suele estar en Docker.
7. Generar la clave de la aplicación
Laravel necesita una clave segura para cifrar datos sensibles, como sesiones o tokens.
php artisan key:generate
¿Qué hace este comando?
- Genera automáticamente una clave única.
- La guarda en el archivo
.env
como valor deAPP_KEY
. - Esta clave es fundamental para la seguridad de la aplicación.
8. Migrar base de datos
Con la base de datos correctamente creada y configurada en el .env
, podemos crear las tablas necesarias ejecutando las migraciones de Laravel.
php artisan migrate
¿Qué hace?
- Ejecuta los archivos de migración ubicados en
database/migrations
. - Crea las tablas básicas necesarias como
users
,password_resets
, etc., y las que hemos definido enn nuestro proyecto.
9. Configurar permisos
Laravel necesita permisos de escritura en ciertas carpetas para almacenar logs, archivos temporales, caché, etc.
chown -R www-data:www-data /var/www/html/laravel
chmod -R 775 storage bootstrap/cache
Explicación:
chown -R www-data:www-data /var/www/html/laravel
: cambia la propiedad de todo el proyecto al usuario y grupowww-data
, que es el que utiliza NGINX y PHP-FPM para servir la web.chmod -R 775
: otorga permisos de lectura, escritura y ejecución al propietario y grupo en los directoriosstorage
ybootstrap/cache
, esenciales para el funcionamiento de Laravel.
📸 Verificamos los permisos con:
ls -la /var/www/html/proyecto-laravel
La aplicación Laravel ya está funcional y conectada a la base de datos.
📸 Ver imagen de referencia de permisos: permisos_proyecto.png